 Go 构建大型开源分布式数据库技术内幕● 分层 ● Make it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... ... ... ... Placement Driver (PD) Control flow: Balance / Failover Physically, data is stored in RocksDB ● We build a Raft layer on top of RocksDB ○ What is Raft? ● Written in Rust! TiKV API (gRPC) Transaction MVCC Raft (gRPC) RocksDB Raw KV API (https://github.com/pingc Region 4:[p-t] Raft group Storage stack 2/2 ● Data is organized by Regions ● Region: a set of continuous key-value pairs RPC (gRPC) Transaction MVCC Raft RocksDB ··· Raft ● 复制/分裂/负载均衡 Region0 码力 | 44 页 | 649.68 KB | 1 年前3 Go 构建大型开源分布式数据库技术内幕● 分层 ● Make it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... ... ... ... Placement Driver (PD) Control flow: Balance / Failover Physically, data is stored in RocksDB ● We build a Raft layer on top of RocksDB ○ What is Raft? ● Written in Rust! TiKV API (gRPC) Transaction MVCC Raft (gRPC) RocksDB Raw KV API (https://github.com/pingc Region 4:[p-t] Raft group Storage stack 2/2 ● Data is organized by Regions ● Region: a set of continuous key-value pairs RPC (gRPC) Transaction MVCC Raft RocksDB ··· Raft ● 复制/分裂/负载均衡 Region0 码力 | 44 页 | 649.68 KB | 1 年前3
 基于 mesos 的容器调度框架appspot.com/github.com/huangnauh/slides/upone.slide#3 24/36 高可用 通过 Raft 分布式一致性协议实现高可用 hashicorp/raft (https://github.com/hashicorp/raft) 领导选举: 心跳机制来触发选举, term 充当逻辑时钟的作用 日志复制: 领导者把一条指令(能被复制状态机执行)附加到日志中,发起附加条目 slide#3 25/36 raft 领导选举 Image credit: the Raft paper (https://raft.github.io/raft.pdf) 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 26/36 raft 日志复制 Image Image credit: the Raft paper (https://raft.github.io/raft.pdf) 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 27/36 raft 可视化 Image generated by RaftScope0 码力 | 36 页 | 2.49 MB | 1 年前3 基于 mesos 的容器调度框架appspot.com/github.com/huangnauh/slides/upone.slide#3 24/36 高可用 通过 Raft 分布式一致性协议实现高可用 hashicorp/raft (https://github.com/hashicorp/raft) 领导选举: 心跳机制来触发选举, term 充当逻辑时钟的作用 日志复制: 领导者把一条指令(能被复制状态机执行)附加到日志中,发起附加条目 slide#3 25/36 raft 领导选举 Image credit: the Raft paper (https://raft.github.io/raft.pdf) 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 26/36 raft 日志复制 Image Image credit: the Raft paper (https://raft.github.io/raft.pdf) 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 27/36 raft 可视化 Image generated by RaftScope0 码力 | 36 页 | 2.49 MB | 1 年前3
 Go in TiDBMongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL Architecture TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... Placement Driver (PD) Control flow: Balance / Failover Metadata / start_key, end_key) (-∞, +∞) Sorted Map RPC (gRPC) Transaction MVCC Raft RocksDB Node B Node C Node A Raft Raft Raft 256MB PD - Overview TiKV TiKV TiKV TiKV … ... TiKV Cluster PD Node/Region Command TiKV Client Route Info ● Meta data management ● Load balance management TiKV - Multi-Raft Multiple raft groups in the cluster, one group for each region. Client Store 1 Region 1 Region 3 Region0 码力 | 22 页 | 1.01 MB | 1 年前3 Go in TiDBMongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL Architecture TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... Placement Driver (PD) Control flow: Balance / Failover Metadata / start_key, end_key) (-∞, +∞) Sorted Map RPC (gRPC) Transaction MVCC Raft RocksDB Node B Node C Node A Raft Raft Raft 256MB PD - Overview TiKV TiKV TiKV TiKV … ... TiKV Cluster PD Node/Region Command TiKV Client Route Info ● Meta data management ● Load balance management TiKV - Multi-Raft Multiple raft groups in the cluster, one group for each region. Client Store 1 Region 1 Region 3 Region0 码力 | 22 页 | 1.01 MB | 1 年前3
 使用Go与redis构建有趣的应用丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) • 强⼤大的多机功能⽀支持:主从复制(单主多从)、Sentinel(⾼高可⽤用)、集群(基于 Raft 算法,多 主多从,内建⾼高可⽤用) 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) • 强⼤大的多机功能⽀支持:主从复制(单主多从)、Sentinel(⾼高可⽤用)、集群(基于 Raft 算法,多 主多从,内建⾼高可⽤用) • 拥有⽆无限可能性的扩展模块系统:神经⽹网络、全⽂文搜索、JSON 数据结构等等。 数据结构 data structures 索引 0 1 2 30 码力 | 176 页 | 2.34 MB | 1 年前3 使用Go与redis构建有趣的应用丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) • 强⼤大的多机功能⽀支持:主从复制(单主多从)、Sentinel(⾼高可⽤用)、集群(基于 Raft 算法,多 主多从,内建⾼高可⽤用) 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) • 强⼤大的多机功能⽀支持:主从复制(单主多从)、Sentinel(⾼高可⽤用)、集群(基于 Raft 算法,多 主多从,内建⾼高可⽤用) • 拥有⽆无限可能性的扩展模块系统:神经⽹网络、全⽂文搜索、JSON 数据结构等等。 数据结构 data structures 索引 0 1 2 30 码力 | 176 页 | 2.34 MB | 1 年前3
 1.2 Go 在分布式系统开发中的应用zookeeper: getwatch etcd: watch after index ? how to choose index? what if index is far from current raft index? out of date zookeeper vs etcd RebornDB的getwatch实现 让client持有状态 zookeeper vs etcd RebornDB临时节点实现0 码力 | 20 页 | 131.34 KB | 1 年前3 1.2 Go 在分布式系统开发中的应用zookeeper: getwatch etcd: watch after index ? how to choose index? what if index is far from current raft index? out of date zookeeper vs etcd RebornDB的getwatch实现 让client持有状态 zookeeper vs etcd RebornDB临时节点实现0 码力 | 20 页 | 131.34 KB | 1 年前3
 1.6 resource scheduling & container technology for financial service_yujun 自主研发Gardener  –  Seed  作业调度系统  服务弹性伸缩  自主研发Lighthouse智能服务伸缩模型  分布式高可用控制系统   基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现  智能模板和堆叠式组件管理系统   深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板0 码力 | 21 页 | 27.20 MB | 1 年前3 1.6 resource scheduling & container technology for financial service_yujun 自主研发Gardener  –  Seed  作业调度系统  服务弹性伸缩  自主研发Lighthouse智能服务伸缩模型  分布式高可用控制系统   基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现  智能模板和堆叠式组件管理系统   深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板0 码力 | 21 页 | 27.20 MB | 1 年前3
共 6 条
- 1













