前面介绍的并发控制算法评估里面,测试也把Cavlin算进来了,这里简单介绍下Calvin。详细的可以参考下原论文 Calvin: Fast Distributed Transactions for Partitioned Database Systems (SIGMOD12')。
Calvin面向的场景是确定性事务,不支持交互式事务。这一点需要特别注意。在互联网很多业务里,这点是不适用的。
Calvin也是一个deterministic的分布式数据库,这里先简单介绍下它的架构。...
An Evaluation of Distributed Concurrency Control(VLDB17')
这篇工作主要是比较并评估了6种in-memory分布式数据库的并发控制计算法。
System Overview
论文在Deneva系统上做分布式并发控制算法实现和测试。
Architecture
Deneva架构:shared-nothing
Env Model
所有的事务都使用存储过程,有些协议只能执行确定事务(需要提前知道访问哪些行)。
数据按consistent-hash分布,client上配置locat...
Bitcask是由Basho公司搞的一个产品。
技术设计
数据顺序追加到磁盘上的active data file,并在内存中建立hash索引。
active data file文件长到一定程度就切成old data file,新的数据写入新的active data file。
old data files定期merge成一个merged data file,merge过程中同时会生成一个hint file来索引这个merged data file。
data file存放格式
内存keydir
是一个key -> <file_id, valu...