Real world Rust
- Why and how we use Rust in TiKV的类型推导系统和编译检查跨线程传递和共享的对象 是否满足 Send + Sync TiKV ● 大规模分布式 Key-Value 数据库 ● 支持 ACID 跨行事务支持 ● 支持 MVCC 无锁的快照读 ● 构建于 Raft 之上,不依赖分布式文件系统 ○ 更少的第三方依赖 ○ 更高的性能(低延迟) ● 配合 TiDB 使用,需要有健全的逻辑实现 SQL 层的下推算子 人的团队,希望半年左右发布第一个可用版本 TiKV 的语言选型参考 ● Go ● C++11 ● Rust TiKV 整体架构 KV API Coprocessor Txn, Transaction MVCC Raft KV RocksDB Placement Driver PB PRC Client SDK PB PRC PB PRC PB PRC 主要组件 ● Asynchronous0 码力 | 29 页 | 506.53 KB | 1 年前3
Go 构建大型开源分布式数据库技术内幕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 ap/tidb/blob/master/cmd /benchraw/main Data is organized by Regions ● Region: a set of continuous key-value pairs RPC (gRPC) Transaction MVCC Raft RocksDB ··· Raft ● 复制/分裂/负载均衡 Region 1:[a-e] split Region 1.1:[a-c] Region 1.2:[d-e]0 码力 | 44 页 | 649.68 KB | 1 年前3
Go in TiDBHighly layered TiKV Key Space [ 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 TiKV0 码力 | 22 页 | 1.01 MB | 1 年前3
百度超级链 XuperChain 3.7 中文文档和其声明的Output一致。这整个过程都是无锁的,因此能并 行,利用多核能力。验证通过后,事务的Output写入账本, 这个过程是有锁的,写入前会再次检查一次哈希指针的有效 性。整体上的原理和分布式数据库的MVCC并发控制有相似 之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产生 死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 270 页 | 24.86 MB | 1 年前3
百度超级链 XuperChain 3.12-a中文文档是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
百度超级链 XuperChain 3.12-c 中文文档是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
百度超级链 XuperChain 3.12 中文文档是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
百度超级链 XuperChain 3.12-b 中文文档是否和其声明的Output一致。这整个过程都是无锁的,因此 能并行,利用多核能力。验证通过后,事务的Output写入账 本, 这个过程是有锁的,写入前会再次检查一次哈希指针的 有效性。整体上的原理和分布式数据库的MVCC并发控制有 相似之处。 链内并行技术中,如果多个并发交易具有时序性, 是否会产 生死锁问题?为什么? 不会有死锁。从前面对链内并行的原理分析也可以看到,我 们是采用的“乐观锁”的机制,有点类似CPU的硬件同步原语0 码力 | 336 页 | 12.62 MB | 1 年前3
Hyperledger Fabric 1.4.8 DocumentationFabric state database. This is an important design pattern – it reduces the opportunity for ledger MVCC collisions in Hyperledger Fabric. The StateList getState() and updateState() methods work in similar endorsing peer computes read version dependencies (readset) and state updates (writeset), also called MVCC+postimage info in DB language. Recall that the state consists of key-value pairs. All key-value entries0 码力 | 699 页 | 9.02 MB | 1 年前3
Hyperledger Fabric 1.4.9 DocumentationFabric state database. This is an important design pattern – it reduces the opportunity for ledger MVCC collisions in Hyperledger Fabric. The StateList getState() and updateState() methods work in similar endorsing peer computes read version dependencies (readset) and state updates (writeset), also called MVCC+postimage info in DB language. Recall that the state consists of key-value pairs. All key-value entries0 码力 | 483 页 | 7.48 MB | 1 年前3
共 40 条
- 1
- 2
- 3
- 4













