分布式系统
概念
异常
-
机器宕机
-
网络异常
-
分布式三态(成功、失败、超时)
-
存储数据丢失
-
异常处理原则
副本一致性
强一致性(strong consistency)
单调一致性(monotonic consistency)
会话一致性(session consistency)
最终一致性(eventual consistency)
弱一致性(week consistency)
指标
-
性能
-
可用性
-
可扩展性
-
一致性
数据分布方式
哈希方式
按数据范围分布
按数据量分布
一致性哈希
影响
-
本地化计算
-
副本与数据分布
基本副本协议
中心化(centralized)副本控制协议
primary-secondary 协议
-
数据更新流程
-
数据读取方式
-
Primary 副本的确定和切换
-
数据同步(reconcile)
去中心化(decentralized)副本控制协议
参考材料
两万字深度介绍分布式系统原理,一文入魂
经典论文
MapReduce: Simplified Data Processing on Large Clusters
Bigtable: A Distributed Storage System for Structured Data
Spanner: Google’s Globally-Distributed Database
The Chubby lock service for loosely-coupled distributed systems
The Google File System
谷歌 F1 Online DDL的关键点:状态间兼容性
paxos
Paxos三部曲
使用Basic-Paxos协议的日志同步与恢复
使用Multi-Paxos协议的日志同步与恢复
Paxos成员组变更
可靠分布式系统-paxos的直观解释
一步一步理解Paxos算法
Paxos Made Live
6.824: Distributed Systems
Elasticsearch
Architecture of a Database System
总结
单机存储引擎:
目前工程上比较靠谱的无锁算法:Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects
B树与读写并发:B-trees, Shadowing, and Clones
单机引擎:The Bw-Tree: A B-tree for New Hardware Platforms
单机引擎:The Log-Structured Merge-Tree (LSM-Tree)
LSM变种:WiscKey: Separating Keys from Values in SSD-conscious Storage
前缀压测引擎(terark重要参考):SuRF: Practical Range Query Filtering with Fast Succinct Tries
分布式存储:
文件系统:The Google File System,第二代为colossus没有论文
对象存储:Finding a needle in Haystack: Facebook’s photo storage
分布式数据库:
分布式事务系统(tidb重要参考):Large-scale Incremental Processing Using Distributed Transactions and Notifications
一致性hash的kv存储:Dynamo: Amazon’s Highly Available Key-value Store
分布式数据库:Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases
伯克利最新KV:Anna: A KVS For Any Scale
一致性协议:
Paxos原始论文:The Part-Time Parliament
原始论文读不懂可以先看这篇:Paxos Made Simple
Raft论文:In Search of an Understandable Consensus Algorithm,导演未删节版:CONSENSUS: BRIDGING THEORY AND PRACTICE
分布式事务:Consensus on Transaction Commit
集中排序的分布式事务处理方式(虽然我不是很喜欢):Calvin: Fast Distributed Transactions for Partitioned Database Systems
混合逻辑时钟(用于分布式事务排序,cockroachdb重要参考):Logical Physical Clocks and Consistent Snapshots in Globally Distributed Databases
SQL隔离级别:A Critique of ANSI SQL Isolation Levels