Aurora在SIGMOD18'的论文《Amazon Aurora: On Avoiding Distributed Consensus for I/Os, Commits, and Membership Changes》中描述了Aurora关于共识方案的选择和Quorum方案的详细内容,本文这里做一些简单的分析。
Aurora架构背景
在描述Aurora的Quorum方案前,先介绍下Aurora的系统架构。
Aurora是share-storage、一写多读的架构,构建在MySQL(InnoDB)代码库上,当然后来增加了mult...
LSMTree综述
LSM-based storage techniques: a survey (VLDBJ 2020)
This paper aims to serve as a guide to the state of the art in LSM-based storage techniques for researchers, practitioners, and users.
LSMTree引擎在业界已经有了很多的落地。很多NoSQL系统如Bigtable、Dynamo、HBase、Cassandra、LevelDB、RocksDB、AsterixDB底层都是LSMTree引擎。RocksDB在Facebook的实时数据处理...
分布式事务性能的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三选二在业界影响...
Calvin简介
前面介绍的并发控制算法评估里面,测试也把Cavlin算进来了,这里简单介绍下Calvin。详细的可以参考下原论文 Calvin: Fast Distributed Transactions for Partitioned Database Systems (SIGMOD12')。
Calvin面向的场景是确定性事务,不支持交互式事务。这一点需要特别注意。在互联网很多业务里,这点是不适用的。
Calvin也是一个deterministic的分布式数据库,这里先简单介绍下它的架构。...
Hekaton内存引擎
Hekaton: SQL Server’s Memory-Optimized OLTP Engine(SIGMOD13')
Hekaton是SQL Server的一个纯内存数据引擎,用户可以声明一张表存放在Hekaton上,这张表完全支持原SQL Server所有操作,包括T-SQL。同时如果T-SQL只涉及Hekaton表,T-SQL还可以进一步编译执行,性能更高。
为什么要重新设计Hekaton引擎?
单纯优化现有的SQL Server还能不能有10-100倍吞吐提升?
说到底吞吐提升的三条路:提升sca...
并发控制算法小结
介绍几篇并发控制的工作(并发控制算法还有很多,这里也只是简单看了几篇):
《An Empirical Evaluation of In-Memory Multi-Version Concurrency Control》(VLDB 17')实测了几种In-Memory MVCC机制。参见论文阅读 - InMemoryDB并发控制算法评估。
《An Evaluation of Distributed Concurrency Control》(VLDB17')这篇主要是评估了分布式并发控制的机制。参见论文阅读 - 分布式并发控制算法评...
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并发控制算法评估
An Empirical Evaluation of In-Memory Multi-Version Concurrency Control (VLDB17')
这篇工作梳理了MVCC的四个要点:
并发控制协议
多版本存储
垃圾回收
索引管理
还介绍了MVCC的多种变体原理,实现了这些变体,然后在OLTP workload上测试评估各个变体的效果。
MVCC基础
MVCC介绍
MVCC是一种并发控制算法,一个数据库对象可能会被并发操作,算法维护同一个对象的多个版本来提高并...
Calcite论文阅读笔记
Calcite是Apache旗下开源的、支持多种数据源、提供查询处理/查询优化/查询语言的基础软件框架。
Calcite的三个特点:
标准SQL: 工业级的SQL parser, validator, JDBC Driver
查询优化器:将查询表达为关系代数,计划生成,基于代价的优化
数据源适配:融合第三方数据源
SIGMOD18上的Calcite总结论文《Apache Calcite: A Foundational Framework for Optimized Query Processing Ove...