从美元周期看大国经济战
...
MySQL 压缩
压缩算法Table CompressionInnoDB存储引擎是按照索引组织表(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...
分库分表
业界方案问题垂直拆分优点:降低负载,提高可用性 缺点: 无法降低单表数据量 不能无限扩容 存在单点故障 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...
Ray Dalio - 变化的世界格局与宏观周期
FROM:https://mp.weixin.qq.com/s/zdF7d-MvpmNAj4tnxD2Cdg 为什么要关注全球历史的大趋势:每个人一生都只能够经历宏观周期中一小部分,因此时而会对长达50-70年大周期视而不见。而通常人生中最大机遇和失误,往往来自于错过了“人生中没有发生过,但在历史当中反复重演”的市场信号。 历史上重要事件由三大力量所驱动:长期货币和债务周期、国内财富与权力周期、国际财富与权力周期。三种力量往往相互融合、相互促进,共同决定了国家和全球的经济政治走势。 本系列重点关注世界舞台上长袖善舞的大国:主要包括3个储备货币国家:荷兰,英国和美国,以及其他6个重要大国:德国,法国,俄罗斯,印度,日本和中国。这些具体个例将提炼出历史反复发生的典型范例。 回看历史,有3个对经济整体趋势至关重要的事件: 经济增长困局:全球经济体的高负债率(high level of...
MySQL 的 MGR
MySQL 高可用架构的历史MySQL 自带的主从复制机制,本身并不能实现自动高可用。 早期使用开源组件来搭 MySQL 集群的方案,使用 MMHA。当代 MySQL 官方自己主推的方案是 MySQL cluster。这些老的方案,优先保证MySQL服务的持续可用,在异常切换情况下,可能出现主机上部分数据未能及时同步到从库,造成主从切换后数据丢失。但是包括金融支付在内的一些业务,对于数据库服务既要求持续可用、也要求数据强一致(可以在性能上做出一些让步)。 因此,当代的 MySQL 官方提供了组复制(MySQL Group Replication)的方案,构建了新一代的 MySQL 高可用强一致服务。 Master-Slave(MS)架构高可用概述MS架构高可用基础高可用MySQL是依赖复制(Replication)技术实现的,复制解决的基本问题就是,让一台数据库服务器的数据同步到其它服务器上。MySQL数据库的复制有如下三个步骤。 在主库上把数据更改记录到二进制日志(Binary...
秒杀通用解决方案
秒杀的实质秒杀的实质,是围绕库存管理展开的并发读写如果架构设计里面包含商品系统,包含库存,秒杀就要解决库存热点行高并发读写问题。 秒杀的底线是:不能超卖。qty库存 ≥ qty卖出 && qty库存 - qty卖出 ≈ 0。秒杀能够容忍的一些思路:渐进趋于一致,允许漏卖。 秒杀架构的特性 高性能:秒杀架构要承载的访问流量比平时高出许多倍,涉及大量的并发读和并发写,因此支持高并发访问非常关键。 一致性:秒杀活动中有限数量的商品在同一时刻被很多倍的请求同时扣减库存,在大并发更新的过程中要保证数据准确,不能发生超卖的问题(超卖,本来应该卖完下架的商品,在前台展示依然有库存,依然不停的被卖出),即库存是多少,理应卖出多少(qty库存 ≥ qty卖出 && qty库存 - qty卖出 ≈...
计算的本质
语义小步语义小步语义类似对代数式迭代求值。 大步语义大步语义的意思是,对于大的表达式,先求它的小表达式,然后把结果结合起来得到最终的答案。这通常意味着递归 操作语义(operational semantic)想象一个理想、抽象的计算机,操作语义为程序在某些机器上的执行定义一些规则。 指称语义(denotional semantic)用一种低级、更形式化的语言来解释当前的语言。 状态机的分类确定性有限自动机finite state machine -> finite automaton deterministic finite automaton 是确定性有限自动机的意思 我们的领域模型的状态机最好是这种状态机。 非确定性有限自动机NFA能被一台特定机器接受的字符串集合称为一种语言:我们说这台机器识别了这种语言。 任何 NFA 等价于 DFA 确定性下推自动机PushDown Automaton pda。 这种状态机可以处理无限多的中间状态。 确定型图灵机Deterministic Turing Machine...