在各种因素的推动下,分布式数据库已经成为一种技术潮流,甚至是新基建的一部分。
学习分布式数据库的另一个原因在于,可以通过学习它的设计思想,提高自己的架构设计水平和代码能力。
这个专栏记录了分布式数据库原理层面分析,以一个中立的视角去剖析主流产品的运行机制和理论依据,横向比较它们的差异,分析这些技术决策背后的动机,快速建立起对分布式数据库全面的认知体系。
该栏目引自 极客时间 - 分布式数据库 30 讲 专栏,建议有兴趣了解的同学去购买正式课程学习。
本篇文章描述四方向内容:什么是分布式数据库,以及它的数据一致性、事务一致性、架构风格(NewSQL 和 PGXC)等。数据一致性主要从状态视角和操作视角分析;事务一致性从 ACID 到两种隔离级别分析。
本篇文章描述三方向内容:全局时钟、分片机制和数据复制。方向一对常见授时方案(TrueTime、HLC、TSO、STP)进行阐述,着重分析中心化授时以及分布式授时。方向二描述分片定义、对两种架构风格(NewSQL 和 PGXC)的分片机制进行阐述。方向三主要从分片元数据的存储和复制效率方向分析。
本篇文章描述两方向内容:原子性(协议保证)和原子性(优化事务延迟)。方向一对面向应用层的 TCC 协议和两阶段提交的 2PC 协议,以及对 2PC 改进的分布式数据库(NewSQL 和 PGXC)。方向二主要是事务延迟的估算和优化方法(缓存写提交、管道、并行提交)。
本篇文章描述两方向内容:隔离性(显式读写冲突)和隔离性(隐式读写冲突)。方向一主要描述单体数据库的 MVCC(多版本并发控制)以及工作过程、快照的工作原理、PGXC 和 NewSQL 读写冲突处理。方向二主要描述不确定时间窗口、写等待和读等待。
本篇文章描述两方向内容:隔离性(乐观控制协议)和隔离性(悲观控制协议)。方向一主要描述乐观锁、并发控制的三个阶段、狭义乐观并发控制等。方向二主要描述悲观协议分类、两阶段封锁、串行化图检测、工程实现等。
本篇文章描述两方向内容:为什么不建议什么存储过程以及为什么不建议使用自增主键。方向一从 C / S 时代、触发器、分布式数据库的支持情况等方面分析。方向二主要从自增主键的特性、单体数据库的自增主键、自增主键的问题、随机主键方案等方向分析。
本篇文章描述两方向内容:HTAP 是不是赢者通吃的游戏以及查询性能优化。方向一从业务场景、两种解决思路、两种存储设计以及 TiFlash 的存储分离来描述。方向二主要描述优化方案(计算下垂)以及TiDB 的下推分析,对索引分布、分区索引、全局索引进行描述分析。
本篇文章着重写了三类关联查询算法(嵌套循环连接算法、排序归并连接算法、哈希连接算法)以及它的分布式数据库实现,从并行框架、大小表关联(复制表)、大表关联(重分布)三方面分析。
本篇文章描述两方向内容:查询执行引擎和 RUM 猜想。方向一主要对三种模型(火山模型、向量化模型、代码生成)进行分析。方向二对 RUM 猜想进行分析,主要有存储结构和分布式数据库的实现两方面。
本篇文章描述两方向内容:全球化部署以及容灾与备份。方向一主要从单体数据库、分布式数据库、架构问题等方向分析。方向二从 CDC、逃生方案分析。
本篇文章描述两方向内容:容器化和产品测试。方向一主要从 Kbuernetes 基本概念、有状态服务、拓扑状态、存储状态、Operator 等方向描述。方向二从 TPC-C、Jepsen、混沌工程、TLA 等方向描述。
本篇文章描述两方向内容:银行是怎么选择分布式数据库的以及哪些分布式数据库值得看。方向一主要描述工商银行、邮储银行、交通银行、中信银行、北京银行、光大银行的数据库选择以及选型建议。方向二主要描述 NewSQL、CockroachDB、TIDB、YugabyteDB、OceanBase、GoldenDB 等分布式数据库。
本文由 caroly 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载 / 出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://caroly.fun/archives/分布式数据库
最后更新:2021-05-15 14:10:02
Update your browser to view this website correctly. Update my browser now