Native Store Extension for SAP HANA

We present an overview of SAP HANA’s Native Store Extension (NSE). This extension substantially increases database capacity, allowing to scale far beyond available system memory. NSE is based on a hybrid in-memory and paged column store architecture composed from data access primitives. These primitives enable the processing of hybrid columns using the same algorithms optimized for traditional HANA’s in-memory columns. Using only three key primitives, we fabricated byte-compatible counterparts for complex memory resident data structures (e.g. dictionary and hash-index), compressed schemes (e.g. sparse and run-length encoding), and exotic data types (e.g. geo-spatial). We developed a new buffer cache which optimizes the management of paged resources by smart strategies sensitive to page type and access patterns. The buffer cache integrates with HANA’s new execution engine that issues pipelined prefetch requests to improve disk access patterns. A novel load unit configuration, along with a unified persistence format, allows the hybrid column store to dynamically switch between inmemory and paged data access to balance performance and storage economy according to application demands while reducing Total Cost of Ownership (TCO). A new partitioning scheme supports load unit specification at table, partition, and column level. Finally, a new advisor recommends optimal load unit configurations. Our experiments illustrate the performance and memory footprint improvements on typical customer scenarios. PVLDB Reference Format: Reza Sherkat, Colin Florendo, Mihnea Andrei, Rolando Blanco, Adrian Dragusanu, Amit Pathak, Pushkar Khadilkar, Neeraj Kulkarni, Christian Lemke, Sebastian Seifert, Sarika Iyer, Sasikanth Gottapu, Robert Schulze, Chaitanya Gottipati, Nirvik Basak, Yanhong Wang, Vivek Kandiyanallur, Santosh Pendap, Dheren Gala, Rajesh Almeida, and Prasanta Ghosh. Native Store Extension for SAP HANA. PVLDB, 12(12): 2047-2058, 2019. DOI: https://doi.org/10.14778/3352063.3352123

[1]  Kenneth A. Ross,et al.  Efficient Index Compression in DB2 LUW , 2009, Proc. VLDB Endow..

[2]  Geoffrey J. Gordon,et al.  Automatic Database Management System Tuning Through Large-scale Machine Learning , 2017, SIGMOD Conference.

[3]  David J. DeWitt,et al.  Turbocharging DBMS buffer pool using SSDs , 2011, SIGMOD '11.

[4]  Michael Haubenschild,et al.  LeanStore: In-Memory Data Management beyond Main Memory , 2018, 2018 IEEE 34th International Conference on Data Engineering (ICDE).

[5]  EldawyAhmed,et al.  Spatial partitioning techniques in SpatialHadoop , 2015, VLDB 2015.

[6]  Thomas Neumann,et al.  Efficiently Compiling Efficient Query Plans for Modern Hardware , 2011, Proc. VLDB Endow..

[7]  Fei Zhou,et al.  BTrim - Hybrid In-Memory Database Architecture for Extreme Transaction Processing in VLDBs , 2018, Proc. VLDB Endow..

[8]  Sam Lightstone,et al.  Physical Database Design for Relational Databases , 2009, Encyclopedia of Database Systems.

[9]  Wook-Shin Han,et al.  Hybrid Garbage Collection for Multi-Version Concurrency Control in SAP HANA , 2016, SIGMOD Conference.

[10]  Minyi Guo,et al.  Simba: Efficient In-Memory Spatial Analytics , 2016, SIGMOD Conference.

[11]  Joy Arulraj,et al.  Multi-Tier Buffer Management and Storage System Design for Non-Volatile Memory , 2019, ArXiv.

[12]  Anastasia Ailamaki,et al.  Enabling efficient OS paging for main-memory OLTP databases , 2013, DaMoN '13.

[13]  Alfons Kemper,et al.  Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilation , 2016, SIGMOD Conference.

[14]  Sam Lightstone,et al.  DB2 Design Advisor: Integrated Automatic Physical Database Design , 2004, VLDB.

[15]  Xun Chen,et al.  Statisticum: Data Statistics Management in SAP HANA , 2017, Proc. VLDB Endow..

[16]  Norman May,et al.  SAP HANA - The Evolution of an In-Memory DBMS from Pure OLAP Processing Towards Mixed Workloads , 2017, BTW.

[17]  Weiyun Huang,et al.  Real-Time Analytical Processing with SQL Server , 2015, Proc. VLDB Endow..

[18]  Todd C. Mowry,et al.  Relaxed Operator Fusion for In-Memory Databases: Making Compilation, Vectorization, and Prefetching Work Together At Last , 2017, Proc. VLDB Endow..

[19]  Peter Bumbulis,et al.  Page As You Go: Piecewise Columnar Access In SAP HANA , 2016, SIGMOD Conference.

[20]  Meikel Pöss,et al.  Data Compression in Oracle , 2003, VLDB.

[21]  Nicolas Bruno,et al.  Automated partitioning design in parallel database systems , 2011, SIGMOD '11.

[22]  Hasso Plattner,et al.  The Impact of Columnar In-Memory Databases on Enterprise Systems , 2014, Proc. VLDB Endow..

[23]  Kenneth Salem,et al.  Hybrid Storage Management for Database Systems , 2013, Proc. VLDB Endow..

[24]  Alexander Zeier,et al.  Speeding Up Queries in Column Stores - A Case for Compression , 2010, DaWak.

[25]  Mark Lillibridge,et al.  In-Memory Performance for Big Data , 2014, Proc. VLDB Endow..

[26]  Mihnea Andrei,et al.  SAP HANA Adoption of Non-Volatile Memory , 2017, Proc. VLDB Endow..

[27]  Donald Kossmann,et al.  Adaptive Range Filters for Cold Data: Avoiding Trips to Siberia , 2013, Proc. VLDB Endow..

[28]  Giovanni Maria Sacco,et al.  A Mechanism for Managing the Buffer Pool in a Relational Database System Using the Hot Set Model , 1982, VLDB.

[29]  Ismail Oukid,et al.  Vectorizing Database Column Scans with Complex Predicates , 2013, ADMS@VLDB.

[30]  Jianliang Xu,et al.  FD-buffer: a buffer manager for databases on flash disks , 2010, CIKM.