Bw-Tree:在新硬件平台上的新B-Tree

ARS 与 Bw-Tree

nosql数据库从本质上说,都属于ARS(Atomic Record Stores,“原子记录存储”)。

最常见的“原子记录存储”一种实现就是朴素的Hash表:通过一个特定的key,来读写一条独立的数据记录。

一些基于key-value(键-值)模型的nosql的内部实现正是使用了Hash表,例如Redis1、memcache、Riak等。

而有一些nosql数据库为了支持高效的key-sequential(键-序列)查找,采用了tree-based2数据结构进行数据存储,所以B-Tree成为了一些数据库(both nosql and sql)的首选。

本文介绍了一种基于新型硬件的高性能ARS实现,其核心技术有:

  1. 页式内存管理
  2. Bw-Tree,一种基于B-Tree的树存储结构
  3. 基于日志的存储管理

在现代硬件上的Bw-Tree

现代多核CPU

多核CPU带来了高并发,但是同时也引入了锁竞争和缓存失效问题。

为了讲解锁竞争,这里我们举一个经典的例子:多线程计数器。

我们都知道,如果不使用锁来保护计数器变量的话,那么最终的结果几乎不可能是正确的。多个线程中 …

more ...