InnoDB源码解析-日志系统

InnoDB源码解析-日志系统
MySQL 5.7中 Log Sys锁冲突比较大,MySQL 8.0对InnoDB Log Sys进行了重构。 我们先描述下5.7的 Log Sys看看锁冲突,然后再介绍8.0的方案以及部分代码实现细节。 mtr mtr 表示 mini-transaction,表示操作的一个最小原子单元,比数据库事务概念要更小。比如一个事务可能插入两行数据,但每插入一行都可能触发B-Tree的叶子分裂,页面的分裂操作涉及多个页面,这些页面的修改必须保持原子(不能发生分裂的第...

Raft论文解读

Raft论文解读

Raft论文解读,本文根据Raft会议论文,参考Raft博士论文,解读了部分内容。Raft跟(Multi)Paxos差别较大,相比Paxos加强了很多约束,尤其是strong leader,直接影响了Raft协议的架构。

Raft的乱序commit和乱序apply

Raft的乱序commit和乱序apply
  不知怎么地,前一阵子知乎上对Raft的乱序的问题的讨论就变多了。我觉得其实这个问题可讨论的东西并不多。   Raft作者觉得Multi Paxos太复杂,所以搞了一个Raft。Raft加了很多约束,其中可能最重要的一条就是只能顺序commit。 所以,顺序commit的锅,Raft是得好好背着,翻不了案的。   值得谈一谈的是乱序apply。 能不能乱序apply本质上取决于你的状态机的设计。   比如,考虑rocksdb...

重新审视Paxos协议的Quorum问题

重新审视Paxos协议的Quorum问题

Flexible Paxos: Quorum intersection revisited 这篇论文重新审视了Paxos中关于Quorum的问题。在Basic Paxos中,要求任何quorum都有交集(通常选择多数派作为quorum)。事实上,这个要求可以放宽到Paxos的两个阶段prepare/accept阶段的quorum有交集即可。文中描述了majority, simple, grid三种quorum system。

LSMTree自适应内存管理

LSMTree自适应内存管理
LSMTree自适应内存管理 Breaking Down Memory Walls: Adaptive Memory Managementin LSM-based Storage Systems(VLDB'21) 内存管理整体架构比较清晰,如图,无需赘言。 Write Memory内存管理 Write Memory的管理方式见下图。 像RocksDB的Write Memory就是一整个memtable,论文给出了另外一个思路,即使是write memory也用leveled方式,如图。Memory也分成M0,M1,M2三层,M0满则merge到M1,同理M1 merg...

Anna KVS中的Lattice是什么?

Anna KVS中的Lattice是什么?

Anna KVS官网对Anna的特性总结得非常到位:1. Crazy Fast, 2. Super-Scalable, 3. Flexibly Consistent。这里只关注Flexibly Consistent这一项,讲讲Anna是怎么实现灵活的consistency的。这篇博客算是论文导读,详细内容读者仍要仔细阅读论文原文 Anna: A KVS For Any Scale。
Lattice是什么,基于格怎么实现灵活的多种一致性,漫谈Consistency和Isolation Level。

偏序/DAG的一个例子

偏序/DAG的一个例子
  序问题可以说是分布式系统中天字第一号问题,因为它来自分布式系统最基础的那个系统模型假设 - 异步网络,而且影响了分布式系统算法设计等等很多方面。分布式系统的序问题阐述起来非常庞大,这里只是简单描述下跟偏序/DAG的一个例子 - 区块链公链的DAG。   前面已经写过一点关于偏序的东西,读者可以参见Anna KVS中的Lattice是什么?里面介绍的一些内容。   首先从比特币网络开始,比特币...

Data Storage Management in Cloud Environment

Data Storage Management in Cloud Environment
这是一篇综述性质的文章,讲的是云计算环境的数据存储,这里先罗列下文章目录结构。 Introduction Overview A Comparison of Data-Intensive Networks Terms and Definitions Data-intensive Application Architecture, Goals and Chanllenges of Intra-Cloud Storage Architecture, Goals and Chanllenges of Inter-Cloud Storage Data Model Data Structure Data Abstraction Data Access Model ...

MyRocks in Facebook UDB

MyRocks in Facebook UDB
MyRocks Paper《MyRocks: LSM-Tree Database Storage Engine Serving Facebook's Social Graph》 这篇文章介绍了Facebook为了解决UDB数据库成本迁移MyRocks的挑战和解决方案。   Introduction 迁至MyRocks所遇到的挑战 在Facebook UDB场景下,MyRocks将存储空间压缩了一半,因此实例数目减半,也意味着UDB集群的CPU和IO硬件资源减半。 Range Scan的Forward和Backward性能不一样,这个主要是底层数据...