Database Dictionary Structures in Non-Volatile Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional persistence methods for non-volatile memory (NVM) are inefficient in loading data due to the need to persist pointers, leading to increased time requirements for loading persisted data into DRAM, especially when dealing with large volumes of data and complex data structures like database column fragments.

Innovation Solution

The solution involves writing data to NVM in larger binary data blocks with alignment gaps to ensure direct access and mapping to a virtual memory space, eliminating the need to persist pointers within NVM, and using a delta and main column fragment structure for database columns, where each fragment is written sequentially with one entry point, facilitating efficient pointer reconstruction during deserialization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is persisted in NVM using conventional tree format with pointers, then data durability is maintained, but loading time increases due to need to reload all pointer structures

Engineering Contradiction:
Improvedata durabilityVSAvoidloading time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts pointers from the persisted data structure in NVM, storing only data values without associated pointers. This eliminates the need to reload and reconstruct pointer structures during data loading, directly reducing loading time while maintaining data durability through the persistent nature of NVM.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the data storage into two distinct parts: (1) pointer structures kept in volatile DRAM for fast access during operations, and (2) pure data values persisted in NVM without pointers. This segmentation allows the system to maintain durability benefits of persistence while avoiding the overhead of persisting and reloading pointer metadata.

Inventive Principle:
Principle #1Segmentation

2Productivity

If larger binary data blocks are written to NVM, then data access efficiency improves through direct mapping, but memory alignment requirements increase complexity

Engineering Contradiction:
Improvedata access efficiencyVSAvoidmemory alignment complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary alignment of data blocks to memory boundaries (e.g., 64-byte alignment) before writing to NVM. By pre-aligning data during the persistence operation, the system enables direct memory-mapped access without requiring complex alignment logic during data retrieval, thus improving access efficiency while managing alignment complexity proactively.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary alignment layer that sits between the raw NVM storage and the application's virtual address space. This intermediary handles the translation and alignment of data blocks, allowing applications to access data efficiently through direct mapping while the intermediary manages the complexity of memory alignment requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Stability of the object's composition

If pointers are persisted in NVM, then data structure integrity is maintained, but storage space is wasted and loading performance deteriorates

Engineering Contradiction:
Improvedata structure integrityVSAvoidstorage space
Core Design Contradiction:
Stability of the object's compositionVSQuantity of substance

Solution Approach 1:

The patent extracts and removes pointers from the persisted data structure in NVM, storing only the essential data values. This extraction eliminates wasted storage space on pointer metadata while maintaining data structure integrity through the use of columnar organization and dictionary structures that provide logical relationships without requiring physical pointers in the persisted format.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies local quality by maintaining different data representation strategies in different locations: pointers are maintained in volatile DRAM where they provide fast structural navigation, while only data values are persisted in NVM to save space. The columnar format and dictionaries provide local organization that maintains integrity without requiring global pointer structures.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10769075B2Storage of database dictionary structures in non-volatile memory
Publication Date: 2020.09.08 SAP SE
  • US10769075B2 patent drawing
  • US10769075B2 patent drawing
  • US10769075B2 patent drawing

AI summary

A system includes storage, in a volatile random access memory, of a first data block comprising an array of distinct values of a database table column, and first header data comprising a first pointer to the first data block, determination of a memory size associated with the first header data and the first data block, allocation of a first memory block of the non-volatile random access memory based on the determined memory size, determination of an address of the non-volatile random access memory associated with the allocated first memory block, and writing of an indicator of the number of distinct values of the array and a binary copy of the first data block at the address of the non-volatile random access memory.