US 12,007,998 B2
Caching 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,570.
Prior Publication US 2022/0391394 A1, Dec. 8, 2022
Int. Cl. G06F 16/24 (2019.01); G06F 12/0882 (2016.01); G06F 12/123 (2016.01); G06F 16/22 (2019.01); G06F 16/2455 (2019.01); G06F 16/2457 (2019.01); G06F 16/248 (2019.01)
CPC G06F 16/24552 (2019.01) [G06F 12/0882 (2013.01); G06F 12/123 (2013.01); G06F 16/221 (2019.01); G06F 16/2282 (2019.01); G06F 16/24573 (2019.01); G06F 16/248 (2019.01)] 19 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;
in response to the query requiring a modification of data in a database table of a database, determining to load, from a disk into a memory, a first portion of a data page, the memory including a first cache for storing partial data pages and a second cache for storing full data pages;
in response to determining to load the first portion of the data page, applying one or more cache replacement policies to evict a partial data page from the first cache, the loading of the first portion of the data page into the first cache evicting the partial data page from the first cache instead of evicting a full data page from the second cache;
updating a first data structure to indicate that the first portion of the data page has been loaded into the first cache;
in response to the first data structure indicating that the loading of the first portion of the data page loads the data page into the first cache in its entirety, applying the one or more cache replacement policies to evict the full data page from the second cache before transferring the data page from the first cache to the second cache; and
in response to the first data structure indicating that one or more other portions of the data page are not present in the first cache, keeping the first portion of the data page in the first cache instead of transferring the first portion of the data page to the second cache.