Go 构建大型开源分布式数据库技术内幕Go 搭建大型开源分布式数据库技术内幕 shenli@PingCAP 关于我 ● 申砾 (Shen Li) ● TiDB 技术负责人 ● 网易有道 / 360搜索 / PingCAP ● Infrastructure software engineer 为什么需要一个新的数据库? 从单机数据库到 NewSQL ● 关系型数据库 ● NoSQL ● 中间件 ● NewSQL Processing) ● 24/7 availability, even in case of datacenter outages ● Open source, of course 如何构建分布式数据库? 原则 ● 分层 ● Make it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV0 码力 | 44 页 | 649.68 KB | 1 年前3
高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁构建强⼀一致性分布式数据库 TiDB 沈泰宁 R & D Engineer @ PingCAP ⾃自我介绍 ⾃自我介绍 • 沈泰宁 • R&D Engineer @ PingCAP • Maintainer • rust-prometheus • grpc-rs • … ⽬目录 • What is TiDB? • How to test? What is TiDB? Single0 码力 | 45 页 | 4.63 MB | 1 年前3
从百度文件系统看大型分布式系统设计中的定式与创新service 分布式软件栈中的BFS The Baidu Stack 网络通信框架Sofa-pbrpc 分布式文件系统 BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度0 码力 | 24 页 | 937.45 KB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践花名:泽彬 • 就职于阿⾥里里,经历: • 负责淘宝应⽤用架构升级 • 核⼼心开发 - 建设⽤用户增⻓长设施与平台建设 • 负责过分布式调⽤用链跟踪框架 & 系统 • 核⼼心开发 - 分布式数据库同步系统 • Github :https://github.com/zavakid • 开源项⽬目: • otter 核⼼心开发者: https://github.com/alibaba/otter0 码力 | 27 页 | 1.13 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践A用户永远只访问A服务v1 VIP用户访问A服务V2,非VIP用户访问A服务V1 参数分流 微服务框架负责服务之间的调用——负载均衡与参数分流 www.163yun.com 分布式数据库 www.163yun.com 某大型银行 www.163yun.com • 两阶段提交XA——中间件DDB • TCC——中间件 Dubbo + DTS • Try 预留0 码力 | 39 页 | 3.06 MB | 1 年前3
百度超级链 XuperChain 3.7 中文文档这个过程是有锁的,会 再次check 哈希指针的有效性,因为前面放锁了。 简单而言, 是一种乐观锁实现。 XuperChain引入链内并发及多版本事务处理技术, 那么它又是 如何保证事务的原子性及时序性? 是否与分布式数据库的事务 相似呢? Q: A: Q: A: Q: A: 通过将一个事务涉及的数据变更打包在一个底层KV数据库的 Batch写,保证其原子性。 事务的处理时序是通过事务的引用 关系来定序:DAG的拓扑序。 和其声明的Output一致。这整个过程都是无锁的,因此能并 行,利用多核能力。验证通过后,事务的Output写入账本, 这个过程是有锁的,写入前会再次检查一次哈希指针的有效 性。整体上的原理和分布式数据库的MVCC并发控制有相似 之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产生 死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 270 页 | 24.86 MB | 1 年前3
百度超级链 XuperChain 3.12-a中文文档的,会再次check 哈希指针的有效性,因为前面放锁了。 简 单而言,是一种乐观锁实现。 XuperChain引入链内并发及多版本事务处理技术, 那么它又 是如何保证事务的原子性及时序性? 是否与分布式数据库的 事务相似呢? Q: A: Q: A: Q: A: 通过将一个事务涉及的数据变更打包在一个底层KV数据库 的Batch写,保证其原子性。 事务的处理时序是通过事务的 引用关系来定序:DAG的拓扑序。 是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
百度超级链 XuperChain 3.12-c 中文文档的,会再次check 哈希指针的有效性,因为前面放锁了。 简 单而言,是一种乐观锁实现。 XuperChain引入链内并发及多版本事务处理技术, 那么它又 是如何保证事务的原子性及时序性? 是否与分布式数据库的 事务相似呢? Q: A: Q: A: Q: A: 通过将一个事务涉及的数据变更打包在一个底层KV数据库 的Batch写,保证其原子性。 事务的处理时序是通过事务的 引用关系来定序:DAG的拓扑序。 是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
百度超级链 XuperChain 3.12 中文文档的,会再次check 哈希指针的有效性,因为前面放锁了。 简 单而言,是一种乐观锁实现。 XuperChain引入链内并发及多版本事务处理技术, 那么它又 是如何保证事务的原子性及时序性? 是否与分布式数据库的 事务相似呢? Q: A: Q: A: Q: A: 通过将一个事务涉及的数据变更打包在一个底层KV数据库 的Batch写,保证其原子性。 事务的处理时序是通过事务的 引用关系来定序:DAG的拓扑序。 是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
百度超级链 XuperChain 3.12-b 中文文档的,会再次check 哈希指针的有效性,因为前面放锁了。 简 单而言,是一种乐观锁实现。 XuperChain引入链内并发及多版本事务处理技术, 那么它又 是如何保证事务的原子性及时序性? 是否与分布式数据库的 事务相似呢? Q: A: Q: A: Q: A: 通过将一个事务涉及的数据变更打包在一个底层KV数据库 的Batch写,保证其原子性。 事务的处理时序是通过事务的 引用关系来定序:DAG的拓扑序。 是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
共 51 条
- 1
- 2
- 3
- 4
- 5
- 6













