论文标题

NVRAM中红色和AVL树的交易

Transactions on Red-black and AVL trees in NVRAM

论文作者

Schütt, Thorsten, Schintke, Florian, Skrzypczak, Jan

论文摘要

字节 - 可调的非易失性内存(NVRAM)支持持续存储,延迟较低和带宽。复杂的数据结构应该通过交易进行更新,以便始终保持可恢复。传统的数据库技术,例如保留单独的日志,日记帐或阴影数据在粗粒级别上工作,在该级别上,使用最终的原子更新操作使整个交易可见。这些方法通常需要大量的额外空间开销,并诱导非平凡的开销,以进行对数修剪,状态维护和资源(DE-)分配。因此,它们不一定是NVRAM的最佳选择,NVRAM支持细粒度,可调地理的访问。 我们提出了一种通用事务机制,以更新动态复杂数据结构“就地”,并具有恒定的内存开销。它与数据结构的大小无关。我们在红色树和AVL树上演示并评估我们的方法,并具有恒定大小的重做日志(4个2个缓存线)。重做日志保证,尽管在此期间有许多系统崩溃和恢复,但最终都会执行每个接受(启动)交易。我们在本地和远程NVRAM中更新复杂的数据结构,可准确地提供了一次语义和耐用的多阅读器单作者访问的线性化性。为了持久数据,我们在本地情况下使用NVRAM的可用处理器指令和远程直接内存访问(RDMA)与远程情况下的软件代理相结合。

Byte-addressable non-volatile memory (NVRAM) supports persistent storage with low latency and high bandwidth. Complex data structures in it ought to be updated transactionally, so that they remain recoverable at all times. Traditional database technologies such as keeping a separate log, a journal, or shadow data work on a coarse-grained level, where the whole transaction is made visible using a final atomic update operation. These methods typically need significant additional space overhead and induce non-trivial overhead for log pruning, state maintenance, and resource (de-)allocation. Thus, they are not necessarily the best choice for NVRAM, which supports fine-grained, byte-addressable access. We present a generic transaction mechanism to update dynamic complex data structures `in-place' with a constant memory overhead. It is independent of the size of the data structure. We demonstrate and evaluate our approach on Red-Black Trees and AVL Trees with a redo log of constant size (4 resp. 2 cache lines). The redo log guarantees that each accepted (started) transaction is executed eventually despite arbitrary many system crashes and recoveries in the meantime. We update complex data structures in local and remote NVRAM providing exactly once semantics and durable linearizability for multi-reader single-writer access. To persist data, we use the available processor instructions for NVRAM in the local case and remote direct memory access (RDMA) combined with a software agent in the remote case.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源