如何画架构图
前言 有意义且具备一致性(coherence)的架构图有助于为不同的利益相关者(stakeholder)澄清(illustrate)事实,并达成共识-反之,图表杂乱无章。 有意义的图表胜过建模(建模指的是With modelling, you're building up a non-visual model of something (e.g. the software architecture of a software system), and then creating different views (e.g. diagrams) on top of that model. ),在架构沟通上,visualization 胜过千言万语。 一致性要求我们有足够好的指导原则,让我们知道标准的图元是什么。 “架构是一项复杂的工作,只使用单个图表来表示架构很容易造成莫名其妙的语义混乱”。 在同一个架构图里添加不同层级的抽象可能会导致冲突的出现,因为它们是从不同的角度描述问题的。 应该在架构图旁边加上图例(legend),沟通者应该懂得图元(key)是什么。key 和 legen...
MySQL 存储引擎 InnoDB 技术内幕
这本书的电子版的一个博客。 InnoDB.xmind 前言 MySQL 是处理海量数据(尤其 是OLTP 写入)时仍能获得最佳性能的最佳选择之一,它的 CPU 效率可能其他任何基于磁盘的关系型数据库所不能匹敌的-但它应该能够匹敌 Redis。 Think Different 而不是 Think Differently,这意味着要思考不同的东西,而不只是思考不同的方式。 不要相信网上的传言,去做测试,根据自己的实践做决定。很多伟大的作者写的伟大的书里面,关于性能的说法都来源于他们个人的随身电脑的直观测试。 change buffer 是 inert buffer 的升级版本。 MySQL 体系结构和存储引擎 定义数据库和实例 数据库:物理操作系统文件或其他形式文件类型的集合。 实例:操作系统后台进程(线程和一堆共享内存)。 存储引擎:基于表而不是基于库的,所以一个库可以有不同的表使用不同的存储引擎。 InnoDB 将数据存储在逻辑的表空间中,这个表空间就像黑盒一样。 存储引擎不一定需要事务。比如没有 ETL 的操作,单纯的查询操作不需要考虑并发控制问题,不需要产生一致性视图。...
数据库容灾体系的演变
什么是容灾 备份的分类 备份方式 说明 逻辑备份 数据库对象级备份,备份内容是表、索引、存储过程等数据库对象,如MySQL mysqldump、Oracle exp/imp。 物理备份 数据库文件级备份,备份内容是操作系统上数据库文件,如MySQL XtraBackup、Oracle RMAN。 快照备份 基于快照技术获取指定数据集合的一个完全可用拷贝,随后可以选择仅在本机上维护快照,或者对快照进行数据跨机备份,如文件系统Veritas File System,卷管理器Linux LVM,存储子系统NetApp NAS。 规划 要结合业务,产生多维立体的解决方案。
从美元周期看大国经济战
FROM: https://mp.weixin.qq.com/s/0gusyuzn3TFuXjtuTcOAog https://mp.weixin.qq.com/s?__biz=MzU4OTQyNTAyNw==&mid=2247485531&idx=1&sn=2b835832db2b44cea3f6aad657b9bcdd 一个新的世界秩序通常在国家内部(通过革命)和国家之间(通过战争)发生根本变化之后开始。通常在爆发战争(热战)之前,通常会有一场经济战争。 严重的经济衰退、巨大的贫富差距、巨额债务以及无效的货币政策,构成了一种易燃的组合,通常会导致国家内部的重大冲突和革命性变革。 在大冲突时期有一种趋势,即走向更专制的领导,导致原有世界秩序混乱。 典型的萧条期现象 专制、民粹主义和民族主义:在经济极度紧张的时期,转向更加专制、民粹主义和民族主义的领导人和政策是很典型的,因为人们希望强有力的领导能给混乱带来秩序,并强有力地对付外部敌人。 扩张的货币政策:通货紧缩或者萧条是由于债务人手中没有足够的钱来偿还债务而导致的危机。这不可避免地...
MySQL 压缩
压缩算法 Table Compression InnoDB存储引擎是按照索引组织表(index-organized table)的方式组织数据的,数据存储在B-tree索引(clustered index/primary key & secondary index)中。Table Compression是针对整个表,和相关索引进行的,而不是单独的数据行。 B-tree页经常被更新,InnoDB会尽量减少B-tree节点的分裂(split),减少不必要的压缩和解压页。为此,InnoDB在每个B-tree页中都预留了未压缩的“modification log”空间,记录页的变更。对于update和insert的数据量较小时,会先写入“modification log”,不用立刻重构整个页。当“modification log”空间用完了,InnoDB解压该页,应用变更(apply),然后重新压缩。如果压缩失败,该B-tree叶节点就要进行分裂了。在写入量比较大的场景,比如某些OLTP应用,为了避免频繁压缩失败,InnoDB会在页中保留一些额外空间(padding),在“mod...
分库分表
业界方案问题 垂直拆分 优点:降低负载,提高可用性 缺点: 无法降低单表数据量 不能无限扩容 存在单点故障 join 等多表操作受限 存在跨库事务 水平拆分 优点: 降低单表数据量 理论上可无限扩容(NoSQL 通常采取这种方案) 不存在单点故障 缺点: join 等多表操作进一步受限 存在跨库事务 扩容成本高 如何分 hash 分表 常见的分表方案。 range 分表 建立时间 range,按 range 分表。 混合分表 先 hash,再 range。 怎么查 SQL 路由(route)和结果合并(merge) 多表 join 多维度查询 跨库事务 路由要定义 dsl,用语言解析表达式。 做广播表的查询的结果就是一张逻辑表查询转成多张表查询。 如果要做无分表键的查询,不如做影子表做侧维度。但影子表依赖于数据迁移服务。数据迁移服务的存在在日常的数据库运维中非常重要,它可以支持任意的 etl 的形式来同步异构数据。但这会带来成本上的坑。
货币价值的变迁
FROM:https://mp.weixin.qq.com/s/QynjLKnXsix4apKn4RWh5g 1. 摆脱债务危机最简单的做法就是印钱并使其贬值 决策者可以利用以下四种杠杆来使得债务和偿债水平相对于偿债所需要的收入和现金流水平显著下降: 紧缩(减少支出) 债务违约和重组 将资金和信贷从富余方转移到短缺方(例如提高税收) 印钱并引发贬值 紧缩会造成通缩,同时由于其过于痛苦,所以不可能持久。债务违约和重组也是一个通缩和痛苦的过程,因为被抹去或贬值的债务是另一个人原本的资产。结果,违约和重组对破产债务人、和资产被剥夺债权人以及本来富有却不得不减记资产的债权人来说都是痛苦的。将资金和信贷从富余方转移到短缺方(例如:提高税收以重新分配财富)在政治上具有挑战性,但比前两种方法都更容易被接受,这通常也是解决方案的一部分。与上面其他几项措施相比,印钞是最方便,最不被大众理解,也是最普遍的债务重组方式。实际上,它看上去对大多数人其实是利大于弊,因为它有助于缓冲债务挤兑的局面,那些财富被通胀掠夺的受害方也难以分辨(尽管他们是货币和债务资产的所有者)在大多数情况下,它...
货币、信贷与债务
FROM:https://mp.weixin.qq.com/s/h14q5BVSSWsNgU5K6bMEVw 货币系统:大多数货币和信贷(尤其是现存的法币)并无内在价值。所有货币要么被摧毁,要么贬值。而当这发生时,财富就会以一种浩荡的方式转移,从而在经济和市场中产生巨大的反响。然而,拥有储备货币的国家更容易摆脱大量借贷(即创造信贷和债务)或者发行巨额货币的窘境,因为储备货币可用于世界各地的支出,所以其他国家倾向于持有这些债务。 经济周期由短期债务周期和长期债务周期构成 短期债务周期:通常持续8年左右,或多或少。时机取决于“兴奋剂”将需求提高到实体经济生产能力极限所需的时间。与短期债务周期相比,长债务周期需花费我们一生时间才会完成,因此大部分经济学家在内的大众根本没有意识到长期债务周期的存在。 长期债务周期:通常持续约50至75年。 拥有储备货币地位对国家意义重大,相对于美国经济规模而言,其规模是巨大的。 2008年以来,央行在MP2(QE)的基础上开启了MP3的新范式 ,这意味着具有储备货币的中央银行创造货币和信贷的能力几乎没有或没有限制。 当一...
世界财富与权力大转移背后的规律
FROM:https://mp.weixin.qq.com/s/o1lxndz0UtI_Websf-WDPw 财富和权力的大幅波动是由多达17种主要因素引起的,最重要的是货币和信贷周期,贫富差距周期和全球地缘政治周期。这些强大的力量通常以经典的周期汇聚在一起,这些经典的周期以相互补充的方式趋向于形成一个非常大的起伏周期,并在整个历史中反复出现。这个庞大的周期范式(archetypical cycle)控制着帝国的兴衰。 在多种因素引导着历史更迭和全球周期起伏,暗中发生着国家间财富和权力转移。这种转移往往会被人忽略,因为虽然财富和权力的转移在历史长河中属于白驹过隙,但对个体有限的寿命而言是长达十余年潜移默化的改变。我们如今正在经历相对财富和权力的范式迁移(archetypical big shift in relative wealth and power),并且随着这种变化,我们将见证世界秩序的深刻变化给所有国家造成的影响。 历史上,几乎所有大国都经历了崛起期、全盛期和衰弱期。而在每一个国家的周期中,不同因素的影响总是相辅相成,其中教育永远是领先指标,而储备货币地位的...
Ray Dalio - 变化的世界格局与宏观周期
FROM:https://mp.weixin.qq.com/s/zdF7d-MvpmNAj4tnxD2Cdg 为什么要关注全球历史的大趋势:每个人一生都只能够经历宏观周期中一小部分,因此时而会对长达50-70年大周期视而不见。而通常人生中最大机遇和失误,往往来自于错过了“人生中没有发生过,但在历史当中反复重演”的市场信号。 历史上重要事件由三大力量所驱动:长期货币和债务周期、国内财富与权力周期、国际财富与权力周期。三种力量往往相互融合、相互促进,共同决定了国家和全球的经济政治走势。 本系列重点关注世界舞台上长袖善舞的大国:主要包括3个储备货币国家:荷兰,英国和美国,以及其他6个重要大国:德国,法国,俄罗斯,印度,日本和中国。这些具体个例将提炼出历史反复发生的典型范例。 回看历史,有3个对经济整体趋势至关重要的事件: 经济增长困局:全球经济体的高负债率(high level of indebtedness)+低利率,将会极大程度限制全球各大央行刺激经济增长的能力; 内部冲突:各国家内部巨大的贫富差距与相应的政治分歧,带来了不断恶化的内部社会与政治冲突; ...















