Loose-Ordering Consistency for persistent memory

Youyou Lu, Jiwu Shu, Long Sun, Onur Mutlu
<span title="">2014</span> <i title="IEEE"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/nmhv25e6jvhplcow6e2chjryx4" style="color: black;">2014 IEEE 32nd International Conference on Computer Design (ICCD)</a> </i> &nbsp;
Emerging non-volatile memory (NVM) technologies enable data persistence at the main memory level at access speeds close to DRAM. In such persistent memories, memory writes need to be performed in strict order to satisfy storage consistency requirements and enable correct recovery from system crashes. Unfortunately, adhering to a strict order for writes to persistent memory significantly degrades system performance as it requires flushing dirty data blocks from CPU caches and waiting for their
more &raquo; ... mpletion at the main memory in the order specified by the program. This paper introduces a new mechanism, called Loose-Ordering Consistency (LOC), that satisfies the ordering requirements of persistent memory writes at significantly lower performance degradation than stateof-the-art mechanisms. LOC consists of two key techniques. First, Eager Commit reduces the commit overhead for writes within a transaction by eliminating the need to perform a persistent commit record write at the end of a transaction. We do so by ensuring that we can determine the status of all committed transactions during recovery by storing necessary metadata information statically with blocks of data written to memory. Second, Speculative Persistence relaxes the ordering of writes between transactions by allowing writes to be speculatively written to persistent memory. A speculative write is made visible to software only after its associated transaction commits. To enable this, our mechanism requires the tracking of committed transaction ID and support for multi-versioning in the CPU cache. Our evaluations show that LOC reduces the average performance overhead of strict write ordering from 66.9% to 34.9% on a variety of workloads.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/iccd.2014.6974684">doi:10.1109/iccd.2014.6974684</a> <a target="_blank" rel="external noopener" href="https://dblp.org/rec/conf/iccd/LuSSM14.html">dblp:conf/iccd/LuSSM14</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/3k2j3ggpyvfsxfvwjkunma2a24">fatcat:3k2j3ggpyvfsxfvwjkunma2a24</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20170828232357/https://users.ece.cmu.edu/~omutlu/pub/loose-ordering-consistency-for-persistent-memory_iccd14.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/47/7c/477c158bc388182ff2da327da73ddeb5797ec9a3.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/iccd.2014.6974684"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> ieee.com </button> </a>