IP Library Granted Patent US 12,353,386
Granted Patent B2
US 12,353,386 · App. 18/494,602 · Granted Jul 8, 2025

Method of building and appending data structures in a multi-host environment

Inventors: Kelsey L. Bruso (Eagan, MN); James M. Plasek (Eagan, MN)
Assignee: Unisys Corporation
G06F16/2246G06F16/2343G06F16/2379
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,353,386
App. No.
18/494,602
Granted
Jul 8, 2025
Kind
B2
Abstract

A processor-based method of building and appending data structures in a multi-host environment includes creating and storing data into a first data structure having a first root node, a first right leaf node and a plurality of other leaf nodes and non-leaf nodes defining multiple hierarchical levels; allowing a search of the first data structure to proceed while creating a second data structure that includes a second root node, a second left leaf node and a plurality of leaf nodes and non-leaf nodes defining multiple hierarchical levels; receiving a command to append the second data structure to the first data structure during searching the first data structure; creating a global lock for all hosts in the multi-host environment to the first root node and the first right leaf node of the first data structure while allowing access to the plurality of other leaf nodes and non-leaf nodes of the first data structure; updating the first root node and the first right leaf node with information about the second data structure; committing the update of the first root node and the first right leaf node; releasing the global lock to the first root node and the first right leaf node; and sending updated copies of the first root node and the first right leaf node to other hosts in a multi-host environment.

Claims (42)

1. A processor-based method of building and appending data structures in a multi-host environment, comprising:

creating and storing data into a first data structure having a first root node, a first right leaf node and a plurality of other leaf nodes and non-leaf nodes defining multiple hierarchical levels;

allowing a search of the first data structure to proceed while creating a second data structure that includes a second root node, a second left leaf node and a plurality of leaf nodes and non-leaf nodes defining multiple hierarchical levels;

receiving a command to append the second data structure to the first data structure during searching the first data structure;

identifying the second left leaf node;

determining that the smallest value of the second left leaf node is greater than a largest value of the first right leaf node;

creating a lock for all hosts in the multi-host environment to the first root node and the first right leaf node of the first data structure while allowing access to the plurality of other leaf nodes and non-leaf nodes of the first data structure;

loading the first root node and the first right leaf node into memory;

updating the first root node and the first right leaf node with information about the second data structure, wherein the second data structure is appended to the first data structure by updating the first root node with at least information about the second root node and updating the first right leaf node with at least information about the second left leaf node;

committing the update of the first root node and the first right leaf node;

releasing the lock to the first root node and the first right leaf node; and

sending updated copies of the first root node and the first right leaf node to other hosts in a multi-host environment;

wherein the maximum database size and transaction rate is increased by allowing access by multi-hosts to all other nodes in the first data structure during appending the second data structure.

2. The method of claim 1 , wherein updating includes updating the first root node to point to the second root node and updating the first right leaf node to point to the second left leaf node.

3. The method of claim 1 , wherein the lock is a retrieval lock and further comprising placing a global update lock on the first root node and the first right node.

4. The method of claim 3 , wherein updating includes updating a record of the first root note with information from a record of the second root node.

5. The method of claim 1 , wherein the first and second data structures are B+ tree structures.

6. The method of claim 1 , further comprising after receiving a command to append, ensuring that the second data structure is not loaded into memory.

7. The method of claim 1 , further comprising after releasing the global lock, allowing the second data structure to be loaded into memory.

8. The method of claim 1 , further comprising preventing concurrent updates to the first data structure.

9. The method of claim 1 , further comprising reading the first data structure into in-memory cache prior to updating to speed up the grafting process so that access to the first root node and first right leaf node can be restored.

10. A computer program product, comprising:

a non-transitory computer readable medium comprising instructions which, when executed by a processor of a computing system, cause the processor to perform the steps of:

creating and storing data into a first data structure having a first root node, a first right leaf node and a plurality of other leaf nodes and non-leaf nodes defining multiple hierarchical levels;

allowing a search of the first data structure to proceed while creating a second data structure that includes a second root node, a second left leaf node and a plurality of leaf nodes and non-leaf nodes defining multiple hierarchical levels;

receiving a command to append the second data structure to the first data structure during searching the first data structure;

identifying the second left leaf node;

determining that the smallest value of the second left leaf node is greater than a largest value of the first right leaf node;

creating a lock for all hosts in the multi-host environment to the first root node and the first right leaf node of the first data structure while allowing access to the plurality of other leaf nodes and non-leaf nodes of the first data structure;

loading the first root node and the first right leaf node into memory;

updating the first root node and the first right leaf node with information about the second data structure, wherein the second data structure is appended to the first data structure by updating the first root node with at least information about the second root node and updating the first right leaf node with at least information about the second left leaf node;

committing the update of the first root node and the first right leaf node;

releasing the lock to the first root node and the first right leaf node; and

sending updated copies of the first root node and the first right leaf node to other hosts in a multi-host environment.

11. The computer program product of claim 10 , wherein updating includes updating the first root node to point to the second root node and updating includes updating the first right leaf node to point to the second left leaf node.

12. The computer program product of claim 10 , wherein the lock is a retrieval lock and further comprising placing a global update lock on the first root node and the first right node.

13. The computer program product of claim 12 , wherein updating includes updating a record of the first root note with information from a record of the second root node.

14. The computer program product of claim 10 , wherein the first and second data structures are B+ tree structures.

15. The computer program product of claim 10 , further comprising after receiving a command to append, ensuring that the second data structure is not loaded into memory.

16. The computer program product of claim 15 , further comprising after releasing the global lock, allowing the second data structure to be loaded into memory.

17. The computer program product of claim 10 , further comprising preventing concurrent updates to the first data structure.

18. The computer program product of claim 10 , further comprising reading the first data structure into in-memory cache prior to updating to speed up the grafting process so that access to the first root node and first right leaf node can be restored.

Assignments (2)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2024
From: BRUSO, KELSEY L.; PLASEK, JAMES M.
To: UNISYS CORPORATION
Reel/Frame 066615/0168 →
Continuity (2)
Continuation 17542553 · Dec 6, 2021
Related Publication 20240054122A1 · Feb 15, 2024
References Cited (21)
US 7007040B1 · Duke et al. · 2006 [cited by applicant]
US 7363284B1 · Plasek et al. · 2008 [cited by applicant]
US 8868531B2 · Majnemer et al. · 2014 [cited by applicant]
US 9361332B2 · Benjamin-Deckert · 2016 [cited by examiner]
US 9940290B2 · McKenney · 2018 [cited by applicant]
US 10031921B2 · Snibbe et al. · 2018 [cited by applicant]
US 11055271B2 · McKenney · 2021 [cited by applicant]
US 11086524B1 · Sun · 2021 [cited by examiner]
US 11537634B2 · Jernigan · 2022 [cited by examiner]
US 11714795B2 · Legler · 2023 [cited by examiner]
US 20110252067A1 · Marathe et al. · 2011 [cited by applicant]
US 20130138896A1 · McKenney · 2013 [cited by applicant]
US 20160034356A1 · Aron · 2016 [cited by examiner]
US 20160070618A1 · Pundir et al. · 2016 [cited by applicant]
US 20170344590A1 · Aron et al. · 2017 [cited by applicant]
US 20170366407A1 · Spivak et al. · 2017 [cited by applicant]
US 20180089250A1 · Collins · 2018 [cited by examiner]
US 20180336261A1 · Reese · 2018 [cited by examiner]
US 20210042336A1 · Hatfield · 2021 [cited by examiner]
US 20220261386A1 · Negi · 2022 [cited by examiner]
US 20230086449A1 · Legler · 2023 [cited by examiner]