Rethink the Scan in MVCC Databases

Rethink the Scan in MVCC Databases
这是SIGMOD'21 上的论文《Rethink the Scan in MVCC Databases》,论文针对像HTAP等场景下可能出现大量versioned data中执行scan慢的问题提出了一种比较有效的方案。   Scan性能问题 首先,论文看到了这种场景下scan慢的一个重要原因: Scan的时候,每一个key都要分别从自己的多个版本里面做一次线性查找,找到当前读快照可见的版本。   这个过程中假如有一种ridgy pointer,用于从key A的可见...

人月神话 读书笔记

人月神话 读书笔记
最近听到一个度量软件复杂度的概念,叫decoupling level,想起来以前买过一本《人月神话》,这两天把它从书堆里面翻出来了。虽然书有300多页,不过里面大部分观点,我想从业者应该都认可,因此书里的新东西并不多。 Chapter 1: 焦油坑 职业的乐趣:工作的创造性;产品有价值;零件正常运转的魅力;持续学习的快乐。 职业的苦恼:追求完美;他人设定目标;寻找bug是痛苦的。 Chapter 2: 人月神话 在很多项...

Content-Aware Lock Scheduling

Content-Aware Lock Scheduling
  VLDB 18'  Content-Aware Lock Scheduling for Transactional Database   相关的证明在 Contention-aware lock scheduling for transactionaldatabases.Technical Report,   锁是TP系统中的核心组件之一,但对事务在锁方面的调度研究却比较少。 比如事务t1已经持有了某个lock,另外有t2, t3 ... 因为申请同一把锁而阻塞,当t1提交释放锁(2PL)时,应该将锁给哪个事务呢?大部分系统用的...

构建分析LSM Compaction Design Space

构建分析LSM Compaction Design Space
《Constructing and Analyzing the LSM Compaction Design Space》 VLDB'21 四个原语 Compaction是LSM-Tree引擎中最重要的环节之一,一方面它主导了LSM-Tree的形状进而影响了LSM-Tree的包括性能、空间占用等对外表现,另一方面它本身要消耗相当的计算和IO资源,容易造成抖动等问题。 但目前业界针对compaction较少有系统的探索,很多系统的compaction策略依赖工程师的个人经验,大量可能的策略未被分析测试...

DDIA Quick Note

DDIA Quick Note
说明 《Designing Data-Intensive Applications》从数据系统角度介绍了方方面面的技术点。 内容上,基本都是一个分布式数据库存储引擎所需要的技术能力,而且很多技术点讲的很详细,不过计算引擎基本上没涉及。 另外书里面也介绍了一些其他的数据系统,也都比较有价值。     Part 1 Foundations of Data Systems Chapter 1 Reliable, Scalable, and Maintainable Applications Thinking About D...

并发控制算法小结

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

MemSQL优化器

MemSQL优化器
《The MemSQL Query Optimizer: A modern optimizer for real-time analystic in a distributed database》VLDB2016 MemSQL是面向内存优化的数据库,本身是shared-nothing架构。MemSQL后来改名叫SingleStoreDB(S2DB),详细的架构参考这里:http://loopjump.com/singlestore-cloud-native-htap/   MemSQL的优化器分为三步:Rewriter, Enumerator, Planner。 因为MemSQL是shared-nothing的分布式架构...

SingleStore - 云原生HTAP

SingleStore - 云原生HTAP
S2DB简介 以前的MemSQL,shared-nothing架构的DBMS,分区混部,多副本HA,支持RO副本,支持code generation,支持跨域异步复制副本。另外也支持基于对象存储存放冷数据。 S2DB还可以做到交互式实时洞察和决策、高吞吐低延迟写入和在变动的数据上执行复杂低延迟查询,这在多个专用系统缝合的方案中很难做到。 S2DB的两个设计要点: 存储计算分离 Separation of Storage and Compute 统一表存储 Unified Tab...

The Columbia Optimizer

The Columbia Optimizer
  《EFFICIENCY IN THE COLUMBIA DATABASE QUERY OPTIMIZER》 1998 这是Portland State University的硕士论文,作者是YONGWEN XU,相比Cascades论文的跳跃和晦涩,这篇可以说是很良心了。 Motivation 当时背景下,优化器仍然是值得研究的方向,尤其是在Decision Support Systems(DSS)、OLAP、大数据量、复杂对象、新的执行技术如并行和分布式执行等等。 第一代可扩展的优化器包括EXODUS、Starburst...