US 12,242,727 B2
Lock-free read access to vector data structures
Christian Bensberg, Heidelberg (DE)
Assigned to SAP SE, Walldorf (DE)
Filed by SAP SE, Walldorf (DE)
Filed on Jun. 27, 2023, as Appl. No. 18/214,821.
Prior Publication US 2025/0004642 A1, Jan. 2, 2025
Int. Cl. G06F 3/06 (2006.01); G06F 12/0804 (2016.01); G06F 12/0815 (2016.01); G06F 12/0817 (2016.01); G06F 16/901 (2019.01)
CPC G06F 3/0611 (2013.01) [G06F 3/0631 (2013.01); G06F 3/065 (2013.01); G06F 3/0652 (2013.01); G06F 3/0673 (2013.01); G06F 12/0804 (2013.01); G06F 12/0815 (2013.01); G06F 12/0828 (2013.01); G06F 16/901 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method for providing a lock-free read access to one or more data structures in a database system, the computer-implemented method comprising:
allocating, by one or more processors, a first portion of a memory corresponding to a first data structure of the one or more data structures, wherein the first data structure comprises a size; and
performing a first operation associated with the first data structure comprising:
inserting first data to the first data structure;
storing the first data in the first portion of the memory;
receiving a first request to insert second data to the first data structure;
in response to the receiving the first request, determining whether an increase of the size is to be executed;
based on the determination that an increase of the size is to be executed, inserting the second data to a modified first data structure, comprising:
executing the increase of the size of the first data structure to generate the modified first data structure;
allocating a second portion of the memory corresponding to the modified first data structure, wherein the second portion of the memory is different from the first portion of the memory;
duplicating the first data from the first portion of the memory to the second portion of the memory;
storing the second data in the second portion of the memory; and
executing garbage collection to free-up the first portion of the memory based on maintaining a pendency of a clean-up entry that performs the garbage collection while there is at least one parallel operation associated with the first data structure.