US 12,072,885 B2
Query processing for disk based hybrid transactional analytical processing system
Ivan Schreter, Malsch (DE)
Assigned to SAP SE, Walldorf (DE)
Filed by SAP SE, Walldorf (DE)
Filed on May 27, 2021, as Appl. No. 17/332,575.
Prior Publication US 2022/0382758 A1, Dec. 1, 2022
Int. Cl. G06F 16/2455 (2019.01); G06F 12/123 (2016.01); G06F 16/22 (2019.01); G06F 16/242 (2019.01); G06F 16/2457 (2019.01); G06F 16/248 (2019.01)
CPC G06F 16/24552 (2019.01) [G06F 12/123 (2013.01); G06F 16/2282 (2019.01); G06F 16/2428 (2019.01); G06F 16/24556 (2019.01); G06F 16/24573 (2019.01); G06F 16/248 (2019.01)] 14 Claims
OG exemplary drawing
 
1. A system, comprising:
at least one data processor; and
at least one memory storing instructions which, when executed by the at least one data processor, cause operations comprising:
receiving a query comprising an analytical processing query operating on one or more predicate columns and one or more aggregate columns;
responding to the query by at least loading, from a disk into a first cache of memory, one or more partial data pages corresponding to the one or more predicate columns but not the one or more aggregate columns, the memory further including a second cache for storing full data pages, the loading of the one or more partial data pages into the first cache evicting one or more other partial data pages from the first cache but not one or more full data pages from the second cache;
evaluating, for each of the one or more partial data pages, a first value occupying the one or more predicate columns to identify one or more rows satisfying a predicate associated with the query;
loading, from the disk into the first cache of the memory, a first portion of a data page containing the one or more aggregate columns but not a second portion of the data page not containing the one or more aggregate columns, the loading of the first portion of the data page into the first cache evicting another partial data page from the first cache but not a full data page from the second cache; and
generating, based at least on the first portion of the data page loaded in the memory, a result of the query corresponding to a second value occupying the one or more aggregate columns.