这是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
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
《Constructing and Analyzing the LSM Compaction Design Space》 VLDB'21
四个原语
Compaction是LSM-Tree引擎中最重要的环节之一,一方面它主导了LSM-Tree的形状进而影响了LSM-Tree的包括性能、空间占用等对外表现,另一方面它本身要消耗相当的计算和IO资源,容易造成抖动等问题。
但目前业界针对compaction较少有系统的探索,很多系统的compaction策略依赖工程师的个人经验,大量可能的策略未被分析测试...
DDIA Quick Note
说明
《Designing Data-Intensive Applications》从数据系统角度介绍了方方面面的技术点。
内容上,基本都是一个分布式数据库存储引擎所需要的技术能力,而且很多技术点讲的很详细,不过计算引擎基本上没涉及。
另外书里面也介绍了一些其他的数据系统,也都比较有价值。
Part 1 Foundations of Data Systems
Chapter 1 Reliable, Scalable, and Maintainable Applications
Thinking About D...
TiDB DevCon 2019
上周六去TiDB DevCon 2019看了一下,挺有意思。
并发控制算法小结
介绍几篇并发控制的工作(并发控制算法还有很多,这里也只是简单看了几篇):
《An Empirical Evaluation of In-Memory Multi-Version Concurrency Control》(VLDB 17')实测了几种In-Memory MVCC机制。参见论文阅读 - InMemoryDB并发控制算法评估。
《An Evaluation of Distributed Concurrency Control》(VLDB17')这篇主要是评估了分布式并发控制的机制。参见论文阅读 - 分布式并发控制算法评...
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
S2DB简介
以前的MemSQL,shared-nothing架构的DBMS,分区混部,多副本HA,支持RO副本,支持code generation,支持跨域异步复制副本。另外也支持基于对象存储存放冷数据。
S2DB还可以做到交互式实时洞察和决策、高吞吐低延迟写入和在变动的数据上执行复杂低延迟查询,这在多个专用系统缝合的方案中很难做到。
S2DB的两个设计要点:
存储计算分离 Separation of Storage and Compute
统一表存储 Unified Tab...
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...