分布式存储系统的架构设计和应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
策略
主要是对业务场景的支撑,包括: 数据模型,多版本支持,数据回收等内容
一致性hash
Pre-sharding:可控的一致性和均衡性
数据一致性划分的形式化描述
数据的分片存储
Leabharlann Baidu
SST file的索引结构: 4级索引
Compaction
1. 旧式KV存储系统,文件空间管理采用类似 内存管理的Buddy算法,产生大量碎片,需 要定期整理。
数据回收流程
分布式表格系统
column1 column2 column3 … Key1 key2 key3 …
column - n
Key n
1. 2. 3.
客户端在初始化的时候指定要访问column的集合(schema) 请求协议: “key1+key2+…+keyn\r\ncolumn1+column2+…+column-n” 返回协议:“v11+v12+..+v1n\r\nv21+v22+..+v2n\r\n…”
分布式kv存储系统的 架构设计和应用
内容提要
1. 2. 3. 4. 5. 6. 7. 8. 9. 问题域 一致性划分 SST file索引分析 Compact的意义 数据的回收 Column Family 分布式表格系统的构建 平台化 历史和发展方向
问题域
机制
基本问题: 数据集合的一致性划分 核心问题: 数据的读写方式,索引 常见问题: 故障恢复,数据迁移,数据一致性等
2. compact的核心价值是通过compact将删 除记录或过期记录去掉,避免文件空洞的产 生。
Level Compaction
column family
Compaction Filter
Compaction时执行的业务规则,如实现TTL, 无用 数据的清除等。
数据回收方式
数据回收方式 TTL expire version HDEL 影响范围 Record的生命周期 回收某个时间点之前的所有record 回收某个version的所有record Record, 影响范围:db write + compaction 大量使用时,占用write吞吐,占用介质容量,compact时大量占用cpu, 只适合于流式更新。
分布式kv存储平台化
KV存储引擎的发展
• 极致写= write-ahead logs + memtable + level compaction
• 极致读 = ?
索引与数据的分离
Q&A
THANK YOU