IP Library Granted Patent US 11,537,593
Granted Patent B2
US 11,537,593 · App. 16/686,796 · Granted Dec 27, 2022

Methods and apparatus for efficiently implementing a fast-copyable database

Inventors: Leemon C. Baird, III (Richardson, TX); Mance Harmon (College Station, TX)
Assignee: Hedera Hashgraph, LLC
G06F16/2365G06F16/1873G06F16/2471G06F16/90335H04L9/30
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 11,537,593
App. No.
16/686,796
Granted
Dec 27, 2022
Kind
B2
Abstract

A fast-copyable database apparatus includes a processor and a memory in electronic communication with the processor. The memory stores a database table with multiple records each having a compound key including a version identifier. The memory also stores instructions executable to cause the processor to generate a first virtual clone of the database table and a second virtual clone of the database table, receive a query at the first virtual clone, and modify the query so that it includes a version identifier of the first virtual clone. The processor can query the database table using the modified query to generate a response based in part on each record from the set of records having a version identifier associated with an ancestral path of the version identifier of the first virtual clone, and send the response. Each compound key includes a version identifier and a data portion.

Claims (57)

1. An apparatus, comprising:

a processor; and

a memory in electronic communication with the processor, the memory storing a database table,

the processor including instructions executable to cause the processor to:

generate a hierarchical tree including representations of a plurality of virtual clones of the database table, the plurality of virtual clones including a first virtual clone, a second virtual clone that is a child virtual clone of the first virtual clone, and a third virtual clone that is a successor virtual clone of the second virtual clone;

modify a successor relationship within the hierarchical tree and associated with the third virtual clone, in response to an instruction to delete the second virtual clone;

delete the second virtual clone, in response to the instruction to delete the second virtual clone; and

delete, in response to the instruction to delete the second virtual clone, the first virtual clone from the plurality of virtual clones when the first virtual clone does not have a child virtual clone after the deletion of the second virtual clone.

2. The apparatus of claim 1 , wherein the plurality of virtual clones further includes a fourth virtual clone that is a successor virtual clone of the first virtual clone, the instructions are further executable to cause the processor to modify a successor relationship associated with the fourth virtual clone, in response to: the instruction to delete the second virtual clone; and a determination that the fourth virtual clone is a sole descendant of the first virtual clone after deletion of the second virtual clone.

3. The apparatus of claim 1 , wherein the instructions are further executable to cause the processor to:

automatically identify a fourth virtual clone from the plurality of virtual clones and that does not have a child virtual clone; and

delete the fourth virtual clone based on the automatic identification.

4. The apparatus of claim 1 , wherein the instructions are further executable to cause the processor to:

automatically identify a fourth virtual clone from the plurality of virtual clones and that does not have a child virtual clone; and

in response to the automatically identifying:

modify a successor relationship associated with a fifth virtual clone from the plurality of virtual clones; and

delete the fourth virtual clone.

5. The apparatus of claim 1 , wherein the instructions are further executable to cause the processor to trigger a deletion of at least one further virtual clone from the plurality of virtual clones in response to modifying the successor relationship associated with the third virtual clone.

6. The apparatus of claim 1 , wherein the successor relationship is a first successor relationship, the memory further storing a plurality of successor relationships including the first successor relationship.

7. The apparatus of claim 1 , wherein the database table includes a plurality of records and each record from the plurality of records includes a compound key including a version identifier associated with a virtual clone from the plurality of virtual clones.

8. A method, comprising:

generating a hierarchical tree including representations of a plurality of virtual clones of a database table, the database table including a plurality of records, each record from the plurality of records including a compound key having a version identifier associated with a virtual clone from the plurality of virtual clones, the plurality of virtual clones including a first virtual clone, a second virtual clone that is a child virtual clone of the first virtual clone, and a third virtual clone that is a successor virtual clone of the second virtual clone;

receiving an instruction to delete the second virtual clone; and

modifying a successor relationship within the hierarchical tree and associated with the third virtual clone, in response to receiving the instruction to delete the second virtual clone.

9. The method of claim 8 , further comprising:

deleting the second virtual clone, in response to the instruction to delete the second virtual clone; and

deleting, in response to the instruction to delete the second virtual clone, the first virtual clone from the plurality of virtual clones when the first virtual clone does not have a child virtual clone after the deletion of the second virtual clone.

10. The method of claim 8 , further comprising:

automatically identifying a fourth virtual clone from the plurality of virtual clones and that does not have a child virtual clone; and

in response to the automatically identifying:

modifying a successor relationship associated with a fifth virtual clone from the plurality of virtual clones; and

deleting the fourth virtual clone.

11. The method of claim 9 , further comprising triggering a deletion of at least one further virtual clone from the plurality of virtual clones in response to modifying the successor relationship associated with the third virtual clone.

12. The method of claim 9 , wherein the plurality of virtual clones further includes a fourth virtual clone that is a successor virtual clone of the first virtual clone, the method further comprising:

modifying a successor relationship associated with the fourth virtual clone, in response to: the instruction to delete the second virtual clone; and a determination that the fourth virtual clone is a sole descendant of the first virtual clone after deletion of the second virtual clone.

13. The method of claim 8 , further comprising:

automatically identifying a fourth virtual clone from the plurality of virtual clones and that does not have a child virtual clone; and

deleting the fourth virtual clone based on the automatic identification.

14. A non-transitory, tangible processor-readable medium comprising processor-executable instructions for:

generating a hierarchical tree including representations of a plurality of virtual clones of a database table, the plurality of virtual clones including a first virtual clone, a second virtual clone that is a child virtual clone of the first virtual clone, and a third virtual clone that is a successor virtual clone of the second virtual clone;

modifying a successor relationship within the hierarchical tree and associated with the third virtual clone, in response to an instruction to delete the second virtual clone; and

deleting the second virtual clone, in response to the instruction to delete the second virtual clone.

15. The non-transitory, tangible processor-readable medium of claim 14 , further comprising processor-executable instructions for:

deleting, in response to the instruction to delete the second virtual clone, the first virtual clone from the plurality of virtual clones when the first virtual clone does not have a child virtual clone after the deletion of the second virtual clone.

16. The non-transitory, tangible processor-readable medium of claim 14 , wherein the plurality of virtual clones further includes a fourth virtual clone that is a successor virtual clone of the first virtual clone, the tangible processor-readable medium further comprising processor-executable instructions for:

modifying a successor relationship associated with the fourth virtual clone, in response to: the instruction to delete the second virtual clone; and a determination that the fourth virtual clone is a sole descendant of the first virtual clone after deletion of the second virtual clone.

17. The non-transitory, tangible processor-readable medium of claim 14 , further comprising processor-executable instructions for:

automatically identifying a fourth virtual clone from the plurality of virtual clones and that does not have a child virtual clone; and

deleting the fourth virtual clone based on the automatic identification.

18. The non-transitory, tangible processor-readable medium of claim 14 , further comprising processor-executable instructions for:

automatically identifying a fourth virtual clone from the plurality of virtual clones and that does not have a child virtual clone; and

in response to the automatically identifying:

modifying a successor relationship associated with a fifth virtual clone from the plurality of virtual clones; and

deleting the fourth virtual clone.

19. The non-transitory, tangible processor-readable medium of claim 14 , further comprising processor-executable instructions for triggering a deletion of at least one further virtual clone from the plurality of virtual clones in response to modifying the successor relationship associated with the third virtual clone.

20. The non-transitory, tangible processor-readable medium of claim 14 , wherein the successor relationship is a first successor relationship, the tangible processor-readable medium further comprising processor-executable instructions for storing a plurality of successor relationships including the first successor relationship.

21. The non-transitory, tangible processor-readable medium of claim 14 , wherein the database table includes a plurality of records and each record from the plurality of records includes a compound key including a version identifier associated with a virtual clone from the plurality of virtual clones.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2022
From: SWIRLDS, INC.
To: HEDERA HASHGRAPH, LLC
Reel/Frame 059113/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2019
From: BAIRD, LEEMON C., III; HARMON, MANCE
To: SWIRLDS, INC.
Reel/Frame 051038/0938 →
Continuity (3)
Division 16176125 · Oct 31, 2018
Provisional Application 62580056 · Nov 1, 2017
Related Publication 20200097459A1 · Mar 26, 2020
Cited By (2)
US 12,443,622 US 12,487,990