| 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 |

|
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.
|