IP Library Granted Patent US 12,271,354
Granted Patent B2
US 12,271,354 · App. 17/897,997 · Granted Apr 8, 2025

Methods and systems for garbage deletion in a document database

Inventors: Chetan Venkatesh (Belmont, CA); Durga Gokina (San Jose, CA)
Assignee: Macrometa Corporation
G06F16/215G06F16/2315G06F16/273G06F16/93
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,271,354
App. No.
17/897,997
Granted
Apr 8, 2025
Kind
B2
Abstract

Disclosed herein are exemplary systems and methods for garbage collection and/or deletion in a document database. The methods may include, for each change in a first change set, determining whether a first characteristic of the change is superseded by a second characteristic of a corresponding change in a second change set. The change of the first change set and the change of the second change set can pertain to a document attribute. The method may include determining whether the first change set is redundant with the second change set if each change of the first change set is superseded by a corresponding change of the second change set, and eliminating the first change set from the document database when the first change set is redundant with second change set.

Claims (28)

1. A system for garbage deletion in a document database, the system comprising:

at least one memory for storing computer-executable instructions; and

at least one processor for executing the instructions stored on the memory, wherein execution of the instructions programs the at least one processor to perform operations comprising:

detecting one or more changes in a first change set in a first node of a cluster of nodes and one or more changes in a second change set in a second node of the cluster of nodes, the cluster of nodes being responsible for storage of the document database;

comparing a first characteristic of the change to a second characteristic of a corresponding change in the second change set, wherein the change of the first change set and the change of the second change set pertain to a same attribute of a document in the document database, and wherein comparing the first characteristic and the second characteristic comprises comparing one or more of a node identifier, lexicographical order, or change type associated with the change of the first change set with one or more of a node identifier, lexicographical order, or change type associated with the second change set, and

determining that the change of the first change set is superseded by the change of the second change set when one or more of (i) a node identifier associated with the change of the second change set is greater than a node identifier associated with the change of the first change set, (ii) a lexicographical order associated with the change of the second change set is greater than a lexicographical order associated with the change of the first change set, or (iii) a change type associated with the change of the second change set is an update and a change type associated with the change of the first change set is a remove;

determining that the first change set is redundant with the second change set when each change of the first change set is superseded by a corresponding change of the second change set; and

eliminating the first change set from the document database to free up storage space in the cluster of nodes.

2. The system of claim 1 , wherein the operations are executed for a plurality of document attributes including the attribute.

3. The system of claim 1 , wherein the first change is concurrent with the second change.

4. The system of claim 1 , wherein the document database is configured to operate over a plurality of data centers.

5. The system of claim 4 , wherein the data centers are configured to each replicate the document database.

6. A computer-implemented method for garbage deletion in a document database, the method comprising:

detecting, by a processor of a computer, one or more changes in a first change set in a first node of a cluster of nodes and one or more changes in a second change set in a second node of the cluster of nodes, the cluster of nodes being responsible for storage of the document database;

comparing, by the processor, a first characteristic of the change to a second characteristic of a corresponding change in the second change set, wherein the change of the first change set and the change of the second change set pertain to a same attribute of a document in the document database, and wherein comparing the first characteristic and the second characteristic comprises comparing one or more of a node identifier, lexicographical order, or change type associated with the change of the first change set with one or more of a node identifier, lexicographical order, or change type associated with the second change set, and

determining, by the processor, that the change of the first change set is superseded by the change of the second change set when one or more of (i) a node identifier associated with the change of the second change set is greater than a node identifier associated with the change of the first change set, (ii) a lexicographical order associated with the change of the second change set is greater than a lexicographical order associated with the change of the first change set, or (iii) a change type associated with the change of the second change set is an update and a change type associated with the change of the first change set is a remove;

determining, by the processor, that the first change set is redundant with the second change set when each change of the first change set is superseded by a corresponding change of the second change set; and

eliminating, by the processor, the first change set from the document database to free up storage space in the cluster of nodes.

7. The method of claim 6 , wherein the method is executed for a plurality of document attributes including the attribute.

8. The method of claim 6 , wherein the first change is concurrent with the second change.

9. The method of claim 6 , wherein the document database is configured to operate over a plurality of data centers.

10. The method of claim 9 , wherein the data centers are configured to each replicate the document database.

11. A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the computer processors to perform operations comprising:

detecting, by a processor, one or more changes in a first change set in a first node of a cluster of nodes and one or more changes in a second change set in a second node of the cluster of nodes, the cluster of nodes being responsible for storage of the document database;

comparing a first characteristic of the change to a second characteristic of a corresponding change in the second change set, wherein the change of the first change set and the change of the second change set pertain to a same attribute of a document in the document database, and wherein comparing the first characteristic and the second characteristic comprises comparing one or more of a node identifier, lexicographical order, or change type associated with the change of the first change set with one or more of a node identifier, lexicographical order, or change type associated with the second change set, and

determining that the change of the first change set is superseded by the change of the second change set when one or more of (i) a node identifier associated with the change of the second change set is greater than a node identifier associated with the change of the first change set, (ii) a lexicographical order associated with the change of the second change set is greater than a lexicographical order associated with the change of the first change set, or (iii) a change type associated with the change of the second change set is an update and a change type associated with the change of the first change set is a remove;

determining that the first change set is redundant with the second change set when each change of the first change set is superseded by a corresponding change of the second change set; and

eliminating the first change set from the document database to free up storage space in the cluster of nodes.

Assignments (4)
PATENT ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITYAGREEMENT Recorded Sep 24, 2025
From: MACROMETA CORPORATION
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 072939/0038 →
SECURITY INTEREST Recorded Sep 23, 2025
From: COSYNE AI CORPORATION
To: MACROMETA CORPORATION
Reel/Frame 072340/0946 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2025
From: VENKATESH, CHETAN; GOKINA, DURGA
To: MACROMETA CORPORATION
Reel/Frame 070415/0305 →
SECURITY INTEREST Recorded Dec 30, 2024
From: MACROMETA CORPORATION
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 069699/0182 →
Continuity (3)
Continuation 16935839 · Jul 22, 2020
Provisional Application 62877739 · Jul 23, 2019
Related Publication 20230031418A1 · Feb 2, 2023
References Cited (8)
US 5649185A · Antognini · 1997 [cited by examiner]
US 20140032513A1 · Gaither · 2014 [cited by examiner]
US 20170286476A1 · Vosshall · 2017 [cited by examiner]
US 20180165781A1 · Rodriguez · 2018 [cited by examiner]
US 20200327116A1 · Perlick · 2020 [cited by examiner]
Guy Harrison, “Yet Another Database Blog—Vector clocks”, Oct. 12, 2015, 4 Pages. (Year: 2015). [cited by examiner]
Ricky Ho, “Pragmatic Programming Techniques: NOSQL Patterns”, Nov. 2009, 12 Pages. (Year: 2009). [cited by examiner]
Priya Rajagopal, “Demystifying Conflict Resolution in Couchbase Mobile”, May 25, 2017, 15 Pages. (Year: 2017). [cited by examiner]