US 11,741,007 B2
Memory guards for continuous load-adaptive processing of transactions in databases
Anton Klarén, Malmö (SE)
Filed by Neo4j Sweden AB, San Mateo, CA (US)
Filed on Jan. 15, 2021, as Appl. No. 17/150,994.
Prior Publication US 2022/0229776 A1, Jul. 21, 2022
Int. Cl. G06F 12/06 (2006.01); G06F 16/23 (2019.01); G06F 16/21 (2019.01)
CPC G06F 12/0646 (2013.01) [G06F 16/21 (2019.01); G06F 16/2379 (2019.01); G06F 2212/1044 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A database management system, comprising:
a memory configured to store a runtime-managed heap; and
a processor coupled to the memory and configured to manage use of a global pool of memory allocated to a database memory manager, the global pool comprising a subset of the runtime-managed heap, including by:
receiving at the database memory manager, from each of a plurality of transactions comprising a transactional workload directed at the database management system, a request to reserve use of a portion of the global pool of memory for use in processing that transaction; and
allocating by the database memory manager, to each of at least a subset of the requesting transactions, a corresponding portion of the global pool of memory, to be used as a temporary local pool of memory available to be used by the transaction to process the transaction;
wherein a given transaction is aborted based at least in part on a determination that a memory requirement associated with a next operation associated with the given transaction exceeds an amount of memory that remains available in the temporary local pool of memory that has been allocated to the given transaction and a request to allocate additional memory to the temporary local pool is denied by the database memory manager.