字节跳动分布式数据库实践_第1页
字节跳动分布式数据库实践_第2页
字节跳动分布式数据库实践_第3页
字节跳动分布式数据库实践_第4页
字节跳动分布式数据库实践_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、技术创新,变革未来字节跳动分布式数据库实践分布式数据库ByteSQLRocksDBP P2P3P4RocksDBPSP6P7P8partitionserverRocksDBPSP6P7P8RocksDBP P2P3P4partitionserverschedulertimestamp serverdashboardSQLSQLSQL分布式数据库ByteSQL分布式数据库几个核心间题Consistency对外提供何种P致性副本同步协议Qu,-um, Raft, Mu t -Pax,s分布式事务在提供P定H隔离级别下最大限 度H提升事务吞吐,M低C时数据分区Hash, Range, C,ns st

2、ent Hash为什么现代数据库都实现了MVCC最大限度的提5并7事4下的吞吐每次21生成新版本读取获取某一个历史版本读2互相不阻塞事4版本号给事4定序,0而3断事4之间的数据项 可见性keyversionvalueskeyl200value3keyll00value2keyl50valuelkey2400value5key2300value4读事4版本70事务版本号生成机制分布式数据库中心化的全局事务版本号分配ByteSQLPercolator基千硬件的TrueTime APISpanner基千物理时钟的逻辑时钟HLCCockroachDB核心问题如何解决分布式事务原子性?如何给事务分配版本

3、号?分布式事务原子性事务T1:(+gin;updat+ t s+t (a0an)+ = (a0an)+ - 100 wh+r+ us+r_id = 1; updat+ t s+t (a0an)+ = (a0an)+ + 100 wh+r+ us+r_id = 3;)311it;user idbalance12002300user idbalance34004500机;A机;B事务T2:s+0+)t su1(a0an)+ fr31 t;分布式事务原子性Atomic Commit Protocoltwo-phase commitfirst phase: preparesecond phase: c

4、ommit/rollback事务状态表每行记录一个事务的状态事务状态可以原子性被更新Atomic Commit Protocol事务ID最近活跃时间超时时间事务状态 000 Prepared 0000Co220ttedkeyversion事务IDvalue1ey MAX_VERSION 000 v 1ey 000 0000v keyversion事务IDvalue1ey MAX_VERSION 000 v 机BA机BBwr0te 0ntent,N当于PR未提交I据,O一S段产M,对C不A见E提交I据,O S段产M,对CA见事务状态表第一版分1式事务处理模型(1)keyver(ion事务IDva

5、l)eke11MAX_VERSION1000101keyver(ion事务IDval)eke12MAX_VERSION1000102事务ID最近活跃时间超时时间事务状态10001PreparedCoordinatorprepareprepareprepare第一版分布2事务处理模型(2)keyver(ion事务IDval)ekey 20000 000 v keyver(ion事务IDval)ekey220000 000 v2事务ID最近活跃时间超时时间事务状态 000 Comm ttedCoordinatorcomm tasync comm tasync comm t事务版本分配器get ve

6、rs on 20000事1最终20版本读事务可见性keyversion事务IDvalue31y MAX_VERSION 000 v331y 000 0000v231y 5005000v 事务ID最近活跃时间超时时间事务状态 000 C5mm2tt10读事 500读事个版本M要I定事 500X 500几个问题Ql2性R2PCPrepare/Commit阶段各一个Consens/sR不R进一步提升性R Q22Follower Reads对于C定版本的读请求来说1如何确定一个副本F否足够新 R够提供读服务Q不需要P锁?第二-分布式事务处理模型Ql事务ID超时时间事务状态参与1列表10001Prepa

7、redKey1 key2A: 分布式事务K态分散在各1参与者Prepare阶段成功:响A0务成功记录参与者列P在事务K态P2,事务K态”是LazyL,是种优化确定事务K态需要询问所有参与者事务状态表第二版分布式事务处理模型-流程keyversion事务IDvaluek4y1MAX0.E,SION10001v1keyversion事务IDvaluek4y2MAX0.E,SION10001v2事务ID最D活跃时 间超时时间事务状态参与者列表10001Pr4p1r43K4y1,K4y2Coordinator2 pr4p1r44 1syn2 2ommitClient1 Commit3 Su224ss2

8、 pr4p1r44 1syn2 2ommit第二版-布式事务处理模型读流程keyversion事务IDvaluekey1MAX_VERSION1000121keyversion事务IDvaluekey2MAX_VERSION1000122事务ID最D活跃时 间超时时间事务状态参与者列表10001P1e0,1edKey1,Key2读Key1找到参与者列表找到另一个参与者Key2事务10001已提交, 事务提交 多少?第二版分布式事务处理模型存储引擎RocksDBPlP2P3P4RocksDBPSP6P7P8partitionserverRocksDBPSP6P7P8RocksDBPlP2P3P4

9、partitionserverRocksDB 0m b 0Immu b 0 0m b 0Immu b 0 0m b 0SSTSSTSSTSSTSSTSSTSSTSSTSSTSSTSSTSSTSSTSSTSSTW L 0T b 0 0 IF ST T 0 0 I 0 0 I 0 实践中的一些问题全局锁位千同一个RocksDB下的多分区并发写有全局锁Compaction影响写入复杂350+K LOC特性不正交资源利用率Compaction粒度太大BlockDB一个分区一个LSM Tree不同的分区写入互相不干扰不同的分区之间的SST之间没有重口,减少Compaction的 读写放大所有分区的Compact on统一调度每一层是一颗Block Tree读写以Block为单位BlockDBShardShardEngineBlock SystemReplicaReplicaBlock DBShardMemtableShardL0Block 30L1Block 0L2Block 0Block 30Block 3 Block 40Block44Block 45Block 50Block 55Block System tm pBlock ndle Block ndleJournal tm p Page GroupsRoot File h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论