当前位置: X-MOL 学术arXiv.cs.DC › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Transactions on Red-black and AVL trees in NVRAM
arXiv - CS - Distributed, Parallel, and Cluster Computing Pub Date : 2020-06-29 , DOI: arxiv-2006.16284
Thorsten Sch\"utt and Florian Schintke and Jan Skrzypczak

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.

中文翻译:

NVRAM 中红黑树和 AVL 树的交易

字节可寻址非易失性存储器 (NVRAM) 支持具有低延迟和高带宽的持久存储。其中的复杂数据结构应该以事务方式更新,以便它们始终保持可恢复性。传统的数据库技术(例如保留单独的日志、日志或影子数据)在粗粒度级别上工作,其中使用最终的原子更新操作使整个事务可见。这些方法通常需要大量额外的空间开销,并为日志修剪、状态维护和资源(去)分配带来非平凡的开销。因此,它们不一定是支持细粒度、字节可寻址访问的 NVRAM 的最佳选择。我们提出了一种通用的事务机制,以恒定的内存开销“就地”更新动态复杂数据结构。它与数据结构的大小无关。我们在红黑树和 AVL 树上演示和评估我们的方法,重做日志大小不变(4 条和 2 条缓存线)。重做日志保证每个接受(启动)的事务最终都会执行,尽管在此期间任意多次系统崩溃和恢复。我们更新本地和远程 NVRAM 中的复杂数据结构,为多读取器单写入器访问提供恰好一次的语义和持久的线性化能力。留存数据,我们使用NVRAM可用处理器的指令在本地的情况下,结合远程直接存储器访问(RDMA)与在远程的情况下的软件代理。重做日志保证每个接受(启动)的事务最终都会执行,尽管在此期间任意多次系统崩溃和恢复。我们更新本地和远程 NVRAM 中的复杂数据结构,为多读取器单写入器访问提供恰好一次的语义和持久的线性化能力。留存数据,我们使用NVRAM可用处理器的指令在本地的情况下,结合远程直接存储器访问(RDMA)与在远程的情况下的软件代理。重做日志保证每个接受(启动)的事务最终都会执行,尽管在此期间任意多次系统崩溃和恢复。我们更新本地和远程 NVRAM 中的复杂数据结构,为多读取器单写入器访问提供精确一次的语义和持久的线性化能力。留存数据,我们使用NVRAM可用处理器的指令在本地的情况下,结合远程直接存储器访问(RDMA)与在远程的情况下的软件代理。
更新日期:2020-07-01
down
wechat
bug