000 08407nam a22007211i 4500
001 8642565
003 IEEE
005 20200413152928.0
006 m eo d
007 cr cn |||m|||a
008 190226s2019 caua foab 000 0 eng d
020 _a9781681734859
_qebook
020 _z9781681734866
_qhardcover
020 _z9781681734842
_qpaperback
024 7 _a10.2200/S00891ED1V01Y201812DTM055
_2doi
035 _a(CaBNVSL)swl000409036
035 _a(OCoLC)1088564219
040 _aCaBNVSL
_beng
_erda
_cCaBNVSL
_dCaBNVSL
050 4 _aTK7895.M4
_bA795 2019
082 0 4 _a621.39732
_223
100 1 _aArulraj, Joy,
_eauthor.
245 1 0 _aNon-volatile memory database management systems /
_cJoy Arulraj, Andrew Pavlo.
264 1 _a[San Rafael, California] :
_bMorgan & Claypool,
_c2019.
300 _a1 PDF (xvii, 173 pages) :
_billustrations.
336 _atext
_2rdacontent
337 _aelectronic
_2isbdmedia
338 _aonline resource
_2rdacarrier
490 1 _aSynthesis lectures on data management,
_x2153-5426 ;
_v# 55
538 _aMode of access: World Wide Web.
538 _aSystem requirements: Adobe Acrobat Reader.
500 _aPart of: Synthesis digital library of engineering and computer science.
504 _aIncludes bibliographical references (pages 157-172).
505 0 _a1. Introduction -- 1.1 Book overview -- 1.2 Contributions -- 1.3 Outline -- 1.4 Related work --
505 8 _a2. The case for a NVM-oriented DBMS -- 2.1 Persisting data on NVM -- 2.2 NVM-only architecture -- 2.2.1 Memory-oriented system -- 2.2.2 Disk-oriented system -- 2.3 NVM+DRAM architecture -- 2.3.1 Anti-caching system -- 2.3.2 Disk-oriented system -- 2.4 Experimental evaluation -- 2.4.1 System configuration -- 2.4.2 Benchmarks -- 2.4.3 NVM-only architecture -- 2.4.4 NVM+DRAM architecture -- 2.4.5 Recovery -- 2.5 Goal of this dissertation --
505 8 _a3. Storage management -- 3.1 DBMS testbed -- 3.1.1 In-place updates engine (InP) -- 3.1.2 Copy-on-write updates engine (CoW) -- 3.1.3 Log-structured updates engine (Log) -- 3.2 NVM-aware engines -- 3.2.1 In-place updates engine (NVM-InP) -- 3.2.2 Copy-on-write updates engine (NVM-CoW) -- 3.2.3 Log-structured updates engine (NVM-Log) -- 3.3 Experimental evaluation -- 3.3.1 Benchmarks -- 3.3.2 Runtime performance -- 3.3.3 Reads and writes -- 3.3.4 Recovery -- 3.3.5 Execution time breakdown -- 3.3.6 Storage footprint -- 3.3.7 Analytical cost model -- 3.3.8 Impact of B+tree node size -- 3.3.9 NVM instruction set extensions -- 3.3.10 Discussion -- 3.4 Summary --
505 8 _a4. Logging and recovery -- 4.1 Recovery principles -- 4.2 Write-ahead logging -- 4.2.1 Runtime operation -- 4.2.2 Commit protocol -- 4.2.3 Recovery protocol -- 4.3 Write-behind logging -- 4.3.1 Runtime operation -- 4.3.2 Commit protocol -- 4.3.3 Recovery protocol -- 4.4 Replication --4.4.1 Replication schemes -- 4.4.2 Record format -- 4.5 Experimental evaluation -- 4.5.1 Benchmarks -- 4.5.2 Runtime performance -- 4.5.3 Recovery time -- 4.5.4 Storage footprint -- 4.5.5 Replication -- 4.5.6 Impact of NVM latency -- 4.5.7 NVM instruction set extensions -- 4.5.8 Instant recovery protocol -- 4.5.9 Impact of group commit latency -- 4.6 Summary --
505 8 _a5. Buffer management -- 5.1 Buffer management principles -- 5.2 NVM-aware buffer management -- 5.2.1 New data migration paths -- 5.2.2 Bypass DRAM during reads -- 5.2.3 Bypass DRAM during writes -- 5.2.4 Bypass NVM during reads -- 5.2.5 Bypass NVM during writes -- 5.3 Adaptive data migration -- 5.4 Storage hierarchy selection -- 5.4.1 Hierarchical storage system model -- 5.4.2 Storage hierarchy recommender system -- 5.5 Trace-driven buffer manager -- 5.6 Experimental evaluation -- 5.6.1 Experimental setup -- 5.6.2 Workload skew characterization -- 5.6.3 Impact of NVM on runtime performance -- 5.6.4 Storage hierarchy recommendation -- 5.6.5 Data migration policies -- 5.6.6 Buffer management policy comparison -- 5.6.7 Adaptive data migration -- 5.7 Summary --
505 8 _a6. Indexing -- 6.1 Persistent multi-word CAS -- 6.1.1 Durability -- 6.1.2 Execution -- 6.2 BzTree architecture and design -- 6.2.1 Architecture -- 6.2.2 Complexity and performance -- 6.3 BzTree nodes -- 6.3.1 Node layout -- 6.3.2 Leaf node operations -- 6.3.3 Leaf node consolidation -- 6.3.4 Internal node operations -- 6.4 Structure modifications -- 6.4.1 Prioritizing structure modifications -- 6.4.2 Node split -- 6.4.3 Node merge -- 6.4.4 Interplay between algorithms -- 6.5 BzTree durability and recovery -- 6.5.1 Persistent memory allocation -- 6.5.2 Durability -- 6.5.3 Recovery -- 6.6 Experimental evaluation -- 6.6.1 Design complexity -- 6.6.2 Runtime performance -- 6.6.3 Durability -- 6.6.4 Scan performance -- 6.6.5 PMWCAS statistics -- 6.6.6 Sensitivity analysis -- 6.6.7 Memory footprint -- 6.6.8 Execution time breakdown -- 6.7 Summary --
505 8 _a7. Related work -- 7.1 Logging and recovery -- 7.2 File-systems -- 7.3 Replication -- 7.4 Memory management -- 7.5 Hardware support -- 7.6 Software testing -- 7.7 Latch-free indexes -- 7.8 Multi-word CAS -- 7.9 Persistent indexes --
505 8 _a8. Future work -- 8.1 Query optimization -- 8.2 Query processing algorithms -- 8.3 Access methods -- 8.4 Larger-than-memory databases -- 8.5 SQL extensions -- 8.6 Testing -- 8.7 High availability --
505 8 _a9. Conclusion -- A. Non-volatile memory emulation -- A.1 NVM hardware emulator -- A.1.1 NUMA interface -- A.1.2 PMFS interface -- A.2 NVM-aware memory allocator -- A.3 Intel optane NVM DIMMs -- B. Benchmarks -- B.1 YCSB -- B.2 TPC-C -- B.3 Voter -- B.4 CH-benCHmark -- B.5 AuctionMark -- C. H-store DBMS -- C.1 Architectural overview -- C.1.1 Transaction coordinator -- C.1.2 Execution engine -- C.1.3 Storage layer -- C.1.4 Recovery mechanism -- C.1.5 Replication --
505 8 _aBibliography -- Authors' biographies.
506 _aAbstract freely available; full-text restricted to subscribers or individual document purchasers.
510 0 _aCompendex
510 0 _aINSPEC
510 0 _aGoogle scholar
510 0 _aGoogle book search
520 3 _aThis book explores the implications of non-volatile memory (NVM) for database management systems (DBMSs). The advent of NVM will fundamentally change the dichotomy between volatile memory and durable storage in DBMSs. These new NVM devices are almost as fast as volatile memory, but all writes to them are persistent even after power loss. Existing DBMSs are unable to take full advantage of this technology because their internal architectures are predicated on the assumption that memory is volatile. With NVM, many of the components of legacy DBMSs are unnecessary and will degrade the performance of data-intensive applications. We present the design and implementation of DBMS architectures that are explicitly tailored for NVM. The book focuses on three aspects of a DBMS: (1) logging and recovery, (2) storage and buffer management, and (3) indexing. First, we present a logging and recovery protocol that enables the DBMS to support near-instantaneous recovery. Second, we propose a storage engine architecture and buffer management policy that leverages the durability and byte-addressability properties of NVM to reduce data duplication and data migration. Third, the book presents the design of a range index tailored for NVM that is latch-free yet simple to implement. All together, the work described in this book illustrates that rethinking the fundamental algorithms and data structures employed in a DBMS for NVM improves performance and availability, reduces operational cost, and simplifies software development.
530 _aAlso available in print.
588 _aTitle from PDF title page (viewed on February 26, 2019).
650 0 _aNonvolatile random-access memory.
653 _anon-volatile memory
653 _adatabase management system
653 _alogging and recovery
653 _astorage management
653 _abuffer management
653 _aindexing
700 1 _aPavlo, Andrew,
_eauthor.
776 0 8 _iPrint version:
_z9781681734866
_z9781681734842
830 0 _aSynthesis digital library of engineering and computer science.
830 0 _aSynthesis lectures on data management ;
_v# 55.
_x2153-5426
856 4 2 _3Abstract with links to resource
_uhttps://ieeexplore.ieee.org/servlet/opac?bknumber=8642565
999 _c562343
_d562343