IP Library Granted Patent US 10,503,754
Granted Patent B2
US 10,503,754 · App. 15/598,759 · Granted Dec 10, 2019

Bulk loading multiple hierarchical levels of relational data to a database

Inventor: Benjamin Reese (Brighton, GB)
Assignee: CITRIX SYSTEMS, INC.
G06F16/282G06F16/2246G06F16/2386
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 10,503,754
App. No.
15/598,759
Filed
May 18, 2017
Granted
Dec 10, 2019
Kind
B2
Art Unit
2156
USPC
707/741
Abstract

A computing system includes a processor, a program memory to store an application, and a database. The processor executes the application to store objects in the program memory, with the objects being organized in a relational hierarchy having a plurality of levels, with each object having a respective pseudo-key associated therewith. The processor writes the objects and their respective pseudo-keys in a first level of the relational hierarchy to the database to generate the first level of the relational hierarchy with real keys. The processor receives a first level key map mapping the pseudo-keys with the real keys for the objects in the first level of the relational hierarchy, reconciles the pseudo-keys for the objects in a second level of the relational hierarchy with the first level key map, and writes the objects and their respective reconciled pseudo-keys in the second level of the relational hierarchy to the database.

Claims (52)

1. A computing system comprising:

a processor;

a program memory coupled to said processor and to store an application;

a database coupled to said processor and said program memory; and

said processor to execute the application to perform the following:

store a plurality of objects in said program memory, with the plurality of objects being organized in a relational hierarchy having a plurality of levels, with each object having a respective pseudo-key associated therewith indicating each object's position within the relational hierarchy,

write in bulk the objects and the respective pseudo-keys in a first level of the relational hierarchy to said database, with said database matching each pseudo-key in the first level with an actual key to generate the first level of the relational hierarchy with actual keys,

receive a first level map mapping the pseudo-keys with the actual keys for the objects in the first level of the relational hierarchy,

reconcile the pseudo-keys for the objects in a second level of the relational hierarchy with the first level map, and

write in bulk the objects and the respective reconciled pseudo-keys in the second level of the relational hierarchy to said database.

2. The computing system according to claim 1 wherein said processor further performs the following:

receive a second level map mapping the pseudo-keys with the actual keys for the objects in the second level of the relational hierarchy;

reconcile the pseudo-keys for the objects in a third level of the relational hierarchy with the second level map; and

write in bulk the objects and the respective reconciled pseudo-keys in the third level of the relational hierarchy to said database.

3. The computing system according to claim 2 wherein said processor further repeats the receive, reconcile and write for each additional level of the relational hierarchy.

4. The computing system according to claim 1 wherein a complete structure of the relational hierarchy is known before said processor performs a write to said database.

5. The computing system according to claim 1 wherein the respective pseudo-keys are used to maintain relationships between the plurality of objects in the plurality of levels in said program memory.

6. The computing system according to claim 1 wherein the reconciling comprises mapping the pseudo-keys for the objects in the second level with the actual keys for the objects in the first level.

7. The computing system according to claim 1 wherein writing the objects and the respective pseudo-keys in the first level of the relational hierarchy to said database is performed in a single CALL statement.

8. The computing system according to claim 7 wherein the objects and the respective reconciled pseudo-keys in the second level of the relational hierarchy to said database is performed in a single CALL statement that is separate from the single CALL statement used for the first level.

9. The computing system according to claim 1 wherein the first level map is generated by said database, and stored in said program memory.

10. A method operating a computing system comprising a processor, a program memory coupled to the processor and to store an application, and a database coupled to the processor, the method comprising:

operating the processor to execute the application to perform the following:

storing a plurality of objects in the program memory, with the plurality of objects being organized in a relational hierarchy having a plurality of levels, with each object having a respective pseudo-key associated therewith indicating each object's position within the relational hierarchy,

writing in bulk the objects and the respective pseudo-keys in a first level of the relational hierarchy to the database, with the database matching each pseudo-key in the first level with an actual key to generate the first level of the relational hierarchy with actual keys,

receiving a first level map mapping the pseudo-keys with the actual keys for the objects in the first level of the relational hierarchy,

reconciling the pseudo-keys for the objects in a second level of the relational hierarchy with the first level map, and

writing in bulk the objects and the respective reconciled pseudo-keys in the second level of the relational hierarchy to the database.

11. The method according to claim 10 further comprising operating the processor to perform the following:

receiving a second level map mapping the pseudo-keys with the actual keys for the objects in the second level of the relational hierarchy;

reconciling the pseudo-keys for the objects in a third level of the relational hierarchy with the second level map; and

writing in bulk the objects and the respective reconciled pseudo-keys in the third level of the relational hierarchy to the database.

12. The method according to claim 11 further comprising operating the processor to repeat the receiving, reconciling and writing for each additional level of the relational hierarchy.

13. The method according to claim 10 wherein a complete structure of the relational hierarchy is known before the processor performs a write to the database.

14. The method according to claim 10 wherein the respective pseudo-keys are used to maintain relationships between the plurality of objects in the plurality of levels in the program memory.

15. The method according to claim 10 wherein the reconciling comprises mapping the pseudo-keys for the objects in the second level with the actual keys for the objects in the first level.

16. The method according to claim 10 wherein writing the objects and the respective pseudo-keys in the first level of the relational hierarchy to the database is performed in a single CALL statement, and wherein the objects and the respective reconciled pseudo-keys in the second level of the relational hierarchy to the database is performed in a single CALL statement that is separate from the single CALL statement used for the first level.

17. A non-transitory computer readable memory having a plurality of computer executable instructions for causing a computing system comprising a processor, a program memory coupled to the processor and to store an application, and a database coupled to the processor and the program memory to perform steps comprising:

operating the processor to execute the application to perform the following:

storing a plurality of objects in the program memory, with the plurality of objects being organized in a relational hierarchy having a plurality of levels, with each object having a respective pseudo-key associated therewith indicating each object's position within the relational hierarchy,

writing in bulk the objects and the respective pseudo-keys in a first level of the relational hierarchy to the database, with the database matching each pseudo-key in the first level with an actual key to generate the first level of the relational hierarchy with actual keys,

receiving a first level map mapping the pseudo-keys with the actual keys for the objects in the first level of the relational hierarchy,

reconciling the pseudo-keys for the objects in a second level of the relational hierarchy with the first level map, and

writing in bulk the objects and the respective reconciled pseudo-keys in the second level of the relational hierarchy to the database.

18. The non-transitory computer readable memory according to claim 17 further comprising operating the processor to perform the following:

receiving a second level map mapping the pseudo-keys with the actual keys for the objects in the second level of the relational hierarchy;

reconciling the pseudo-keys for the objects in a third level of the relational hierarchy with the second level map; and

writing in bulk the objects and the respective reconciled pseudo-keys in the third level of the relational hierarchy to the database.

19. The non-transitory computer readable memory according to claim 18 further comprising operating the processor to repeat the receiving, reconciling and writing for each additional level of the relational hierarchy.

20. The non-transitory computer readable memory according to claim 17 wherein a complete structure of the relational hierarchy is known before the processor performs a write to the database.

21. The non-transitory computer readable memory according to claim 17 wherein the reconciling comprises mapping the pseudo-keys for the objects in the second level with the actual keys for the objects in the first level.

22. The non-transitory computer readable memory according to claim 17 wherein writing the objects and the respective pseudo-keys in the first level of the relational hierarchy to the database is performed in a single CALL statement, and wherein the objects and the respective reconciled pseudo-keys in the second level of the relational hierarchy to the database is performed in a single CALL statement that is separate from the single CALL statement used for the first level.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2017
From: REESE, BENJAMIN
To: CITRIX SYSTEMS, INC.
Reel/Frame 042472/0048 →
Continuity (1)
Related Publication 20180336261A1 · Nov 22, 2018