US 12,474,849 B2
Systems and methods for efficient consolidation of record blocks
Angela Lin, Ottawa (CA); Marin Creanga, Ottawa (CA); and Dylan Ellicott, Ottawa (CA)
Assigned to Kinaxis Inc., Ottawa (CA)
Filed by Kinaxis Inc., Ottawa (CA)
Filed on Dec. 23, 2022, as Appl. No. 18/088,168.
Application 18/088,168 is a continuation in part of application No. 17/897,881, filed on Aug. 29, 2022, granted, now 12,367,189.
Claims priority of provisional application 63/238,348, filed on Aug. 30, 2021.
Prior Publication US 2023/0129353 A1, Apr. 27, 2023
Int. Cl. G06F 7/00 (2006.01); G06F 3/06 (2006.01)
CPC G06F 3/064 (2013.01) [G06F 3/0608 (2013.01); G06F 3/0652 (2013.01); G06F 3/0674 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A computer-implemented method for efficient consolidation of record blocks in a database, the method comprising:
receiving, by a processor, a deletion record set for bulk data deletion from the database identified by executing an internal database procedure including querying an in-memory representation of the database for records that match certain conditions, and a set of record blocks, each record block comprising a set of records, wherein the bulk data deletion is performed without taking the database offline;
acquiring, by the processor, an exclusive lock for one or more of the records in the deletion record set, wherein the record block index has an access control mechanism which enables an atomic update of its contents;
consolidating, by the processor, one or more of the record blocks of the set of record blocks, wherein consolidating the one or more record blocks comprises processing, by the processor, each of the record blocks to determine records to keep and updating, by the processor, a list of records to keep, when processing each record the set of record blocks;
replacing, by the processor, existing records with current record by comparing a time stamp of the current record with a time stamp of the existing record:
deleting, by the processor, the existing record from the list of records to keep:
adding, by the processor, the current record to the list of records to keep:
updating, by the processor, an in-memory record block index; and
adding, by the processor, a transaction log entry for an updated record block index update, wherein the transaction log entry describes an ACID (atomic, consistent, isolated and durable) update to the database, wherein the updating the in-memory record block index and the adding transaction log entry for the undated record block index are performed in parallel.