首页> 外文会议>Sixteenth international conference on architectural support for programming languages and operating systems. >NV-Heaps: Making Persistent Objects Fast and Safe with Next-Generation, Non-Volatile Memories
【24h】

NV-Heaps: Making Persistent Objects Fast and Safe with Next-Generation, Non-Volatile Memories

机译:NV堆:使用下一代非易失性内存,使持久对象快速安全

获取原文
获取原文并翻译 | 示例

摘要

Persistent, user-defined objects present an attractive abstraction for working with non-volatile program state. However, the slow speed of persistent storage (i.e., disk) has restricted their design and limited their performance. Fast, byte-addressable, non-volatile technologies, such as phase change memory, will remove this constraint and allow programmers to build high-performance, persistent data structures in non-volatile storage that is almost as fast as DRAM. Creating these data structures requires a system that is lightweight enough to expose the performance of the underlying memories but also ensures safety in the presence of application and system failures by avoiding familiar bugs such as dangling pointers, multiple free()s, and locking errors. In addition, the system must prevent new types of hard-to-find pointer safety bugs that only arise with persistent objects. These bugs are especially dangerous since any corruption they cause will be permanent. We have implemented a lightweight, high-performance persistent object system called NV-heaps that provides transactional semantics while preventing these errors and providing a model for persistence that is easy to use and reason about. We implement search trees, hash tables, sparse graphs, and arrays using NV-heaps, BerkeleyDB, and Stasis. Our results show that NV-heap performance scales with thread count and that data structures implemented using NV-heaps out-perform BerkeleyDB and Stasis implementations by 32 × and 244 ×, respectively, by avoiding the operating system and minimizing other software overheads. We also quantify the cost of enforcing the safety guarantees that NV-heaps provide and measure the costs of NV-heap primitive operations.
机译:持久的用户定义对象为使用非易失性程序状态提供了一种有吸引力的抽象。但是,持久性存储(即磁盘)的缓慢速度限制了它们的设计并限制了它们的性能。快速的,字节可寻址的,非易失性技术(例如相变存储器)将消除这一限制,并允许程序员在非易失性存储中构建几乎与DRAM一样快的高性能,持久性数据结构。创建这些数据结构需要一个足够轻便的系统,以暴露底层内存的性能,同时还要通过避免熟悉的错误(如悬空指针,多个free()和锁定错误)来确保存在应用程序和系统故障时的安全性。此外,系统必须防止仅在持久对象中出现的新型难以发现的指针安全性错误。这些错误特别危险,因为它们引起的任何损坏都是永久性的。我们已经实现了一个轻量级的,高性能的持久对象系统,称为NV-heaps,它在防止这些错误的同时提供事务性语义,并提供了易于使用和推理的持久性模型。我们使用NV堆,BerkeleyDB和Stasis实现搜索树,哈希表,稀疏图和数组。我们的结果表明,NV堆性能随线程数而扩展,并且通过避免操作系统并最大程度地减少其他软件开销,使用NV堆实现的数据结构分别比BerkeleyDB和Stasis实现的性能高32×和244×。我们还量化了执行NV堆提供的安全保证的成本,并衡量了NV堆原始操作的成本。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号