分布式事务性能的FIT取舍

分布式事务性能的FIT取舍
  《FIT: A Distributed Database Performance Tradeoff》 Bulletin of the IEEE Computer Society Technical Committee on Data Engineering 2015   这篇文章不长,内容也不多,介绍了一个分布式数据库性能的tradeoff原则叫FIT。其实也不叫原则,就是一个模糊的设计直觉。   FIT的意思是分布式数据库的Fairness, Isolation, Throughput必须要取舍,最多三选二。 可能CAP三选二在业界影响...

并发控制算法小结

并发控制算法小结
  介绍几篇并发控制的工作(并发控制算法还有很多,这里也只是简单看了几篇): 《An Empirical Evaluation of In-Memory Multi-Version Concurrency Control》(VLDB 17')实测了几种In-Memory MVCC机制。参见论文阅读 - InMemoryDB并发控制算法评估。 《An Evaluation of Distributed Concurrency Control》(VLDB17')这篇主要是评估了分布式并发控制的机制。参见论文阅读 - 分布式并发控制算法评...

Haketon的高性能并发控制算法

Haketon的高性能并发控制算法
High-Performance Concurrency Control Mechanisms for Main-Memory Databases (VLDB12') 这篇文章是微软Hekaton上的in-memory storage engine的高性能控制算法。   MV Storage Engine 关于事务可串行化的一个洞察和论述 如果事务的读和写逻辑上发生在同一时刻,则事务就是可串行化的。SI隔离级别并不满足这个情况,SI的读实际上是发生在事务开启时(事务开启时取快照,快照一旦确定了,即使读请求是...

分布式并发控制算法评估

分布式并发控制算法评估
An Evaluation of Distributed Concurrency Control(VLDB17') 这篇工作主要是比较并评估了6种in-memory分布式数据库的并发控制计算法。   System Overview 论文在Deneva系统上做分布式并发控制算法实现和测试。 Architecture Deneva架构:shared-nothing Env Model 所有的事务都使用存储过程,有些协议只能执行确定事务(需要提前知道访问哪些行)。 数据按consistent-hash分布,client上配置locat...

InMemoryDB并发控制算法评估

InMemoryDB并发控制算法评估
  An Empirical Evaluation of In-Memory Multi-Version Concurrency Control (VLDB17')   这篇工作梳理了MVCC的四个要点: 并发控制协议 多版本存储 垃圾回收 索引管理 还介绍了MVCC的多种变体原理,实现了这些变体,然后在OLTP workload上测试评估各个变体的效果。   MVCC基础 MVCC介绍 MVCC是一种并发控制算法,一个数据库对象可能会被并发操作,算法维护同一个对象的多个版本来提高并...

关于事务的一点琐碎思考

关于事务的一点琐碎思考
最近又零散地看了一些mvcc/snapshot的东西,有了一些新的理解和观点,记录一下,内容比较碎,不一定正确,欢迎大家讨论拍砖。 在某些实现下,2PC会影响MVCC ? MVCC相比lock-based的并发控制,可以使得写不阻塞读。不过如果如果使用基于时间戳的行级多版本,在有分布式事务时,有可能遇到类似于下面的问题:2PC中参与者prepare之后收到协调者的commit/abort通知之前是未决的状态,该参与者不知道事务是提交...

Google Spanner论文解读

Google Spanner论文解读

Google Spanner是google在2012年公开的存储系统,它的最大特点就是数据分布在全球范围内,支持外部一致性的分布式事务。本文依据论文解读了该系统的设计和实现。