Non-uniform pagination of columnar data
AssigneeSap SE
InventorsGary Lin, Reza Sherkat, John Smirnios
Life of this patent
Estimating the term…
Abstract
A computer implemented system and method of memory management for an in-memory database. The system implements a paged data vector using non-uniform compression of its chunks. In this manner, the system achieves greater compression than systems that use uniform compression.
Claims20
A computer implemented method of memory management for an in-memory database, the method comprising:
- storing, in a secondary storage, a paged data vector, wherein the paged data vector includes at least one node, wherein the at least one node has a plurality of chunks, wherein the plurality of chunks are compressed using non-uniform compression, wherein the plurality of chunks are logically arranged in the paged data vector as a plurality of pages;
- receiving a data request;
- identifying a subset of the plurality of pages that relate to the data request;
- loading, from the secondary storage to a main memory, at least one page of the subset of the plurality of pages that have been identified as relating to the data request;
- and
- executing the data request using the at least one page of the subset of the plurality of pages in the main memory,
- wherein the paged data vector is generated by a method including:
- calculating a chunk size for a data vector, wherein the chunk size is calculated to minimally target a target compression ratio.
A non-transitory computer readable medium storing a computer program for controlling a computer system to execute processing for memory management for an in-memory database, the processing comprising:
- storing, in a secondary storage, a paged data vector, wherein the paged data vector includes at least one node, wherein the at least one node has a plurality of chunks, wherein the plurality of chunks are compressed using non-uniform compression, wherein the plurality of chunks are logically arranged in the paged data vector as a plurality of pages;
- receiving a data request;
- identifying a subset of the plurality of pages that relate to the data request;
- loading, from the secondary storage to a main memory, at least one page of the subset of the plurality of pages that have been identified as relating to the data request;
- and
- executing the data request using the at least one page of the subset of the plurality of pages in the main memory,
- wherein the paged data vector is generated by processing that includes:
- calculating a chunk size for a data vector, wherein the chunk size is calculated to minimally target a target compression ratio.
A system for memory management for an in-memory database, the system comprising:
- at least one processor that is configured to control the system to receive a data request;
- a main memory;
- a secondary storage that is configured to store a paged data vector, wherein the paged data vector includes at least one node, wherein the at least one node has a plurality of chunks, wherein the plurality of chunks are compressed using non-uniform compression, wherein the plurality of chunks are logically arranged in the paged data vector as a plurality of pages;
- a decoder component that is configured to identify a subset of the plurality of pages that relate to the data request;
- and
- a page loader component that is configured to load, from the secondary storage to the main memory, at least one page of the subset of the plurality of pages that have been identified as relating to the data request,
- wherein the at least one processor is configured to control the system to execute the data request using the at least one page of the subset of the plurality of pages in the main memory,
- the system further comprising:
- a chunk size calculator component that is configured to calculate a chunk size for a data vector, wherein the chunk size is calculated to minimally target a target compression ratio.
Dependencies are inferred from the claim text.