IP Library Granted Patent US 10,691,729
Granted Patent B2
US 10,691,729 · App. 15/958,853 · Granted Jun 23, 2020

Systems and methods for providing an object platform for a relational database

Inventors: Rick Ducott (San Francisco, CA); Aakash Goenka (London, GB); Bianca Rahill-Marier (New York, NY); Tao Wei (London, GB); Diogo Bonfim Moraes Morant De Holanda (London, GB); Jack Grossman (Albuquerque, NM); Francis Screene (London, GB); Subbanarasimhiah Harish (London, GB); Jim Inoue (Kirkland, WA); Jeremy Kong (London, GB); Mark Elliot (New York, NY); Myles Scolnick (New York, NY); Quentin Spencer-Harper (London, GB); Richard Niemi (Seattle, WA); Ragnar Vorel (London, GB); Thomas Mcintyre (London, GB); Thomas Powell (London, GB); Andy Chen (New York, NY)
Assignee: Palantir Technologies Inc.
G06F16/289G06F16/2358G06F16/24552G06F16/25G06F16/284G06F17/3048G06F17/30368G06F17/30595G06F17/30607
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,691,729
App. No.
15/958,853
Granted
Jun 23, 2020
Kind
B2
Abstract

Systems and methods are provided for providing an object platform for datasets A definition of an object may be obtained. The object may be associated with information stored in one or more datasets. The information may be determined based at least in part on the definition of the object. The object may be stored in a cache such that the information associated with the object is also stored in the cache. One or more interfaces through which requests to perform one or more operations on the object are able to be submitted may be provided.

Claims (48)

1. A system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the system to perform:

obtaining a definition of an object included within an ontology of an object store;

associating the object with information stored in one or more datasets of a relational database, the information being determined based at least in part on the definition of the object;

storing the object in an object cache of the object store such that the information associated with the object is also stored in the object cache;

providing one or more object-oriented interfaces through which requests to perform one or more object-oriented operations on the object are able to be submitted, the one or more object-oriented operations including modifying the object, wherein information about modifications to the object are stored in a commit log, the information including one or more vector clocks associated with the modifications to the object, wherein each of the one or more vector clocks are stored on a per dataset basis, the one or more vector clocks being distinguished, via different identifiers, based on whether the modifications originate from changes in the one or more datasets or from changes made to the object relating to a transaction of the object cache;

receiving, through at least one of the one or more object-oriented interfaces, a first request to perform at least one object-oriented operation on the object stored in the object cache; and

modifying, based on the first request received through the at least one of the one or more object-oriented interfaces, the information stored in the one or more datasets of the relational database.

2. The system of claim 1 , wherein the object-oriented operations include searching for the object, loading the object, or modifying the object.

3. The system of claim 2 , wherein the object is modified within the object cache.

4. The system of claim 3 , wherein the modified object is stored in an object store.

5. The system of claim 1 , wherein the instructions further cause the system to perform:

identifying a change to the definition of the object; and

updating the object in the object cache based on the change to the definition of the object.

6. The system of claim 1 , wherein, the information includes including time stamps associated with the modifications to the object.

7. The system of claim 6 , wherein the instructions further cause the system to perform:

identifying conflicts in the modifications to the object based on the commit log; and

resolving the conflicts.

8. A method implemented by a computing system including one or more processors and storage media storing machine-readable instructions, wherein the method is performed using the one or more processors, the method comprising:

obtaining a definition of an object included within an ontology of an object store;

associating the object with information stored in one or more datasets of a relational database, the information being determined based at least in part on the definition of the object;

storing the object in an object cache of the object store such that the information associated with the object is also stored in the object cache;

providing one or more object-oriented interfaces through which requests to perform one or more object-oriented operations on the object are able to be submitted, the one or more object-oriented operations including modifying the object, wherein information about modifications to the object are stored in a commit log, the information including one or more vector clocks associated with the modifications to the object, wherein each of the one or more vector clocks are stored on a per dataset basis, the one or more vector clocks being distinguished, via different identifiers, based on whether the modifications originate from changes in the one or more datasets or from changes made to the object relating to a transaction of the object cache;

receiving, through at least one of the one or more object-oriented interfaces, a first request to perform at least one object-oriented operation on the object stored in the object cache; and

modifying, based on the first request received through the at least one of the one or more object-oriented interfaces, the information stored in the one or more datasets of the relational database.

9. The method of claim 8 , wherein the object-oriented operations include searching for the object, loading the object, or modifying the object.

10. The method of claim 9 , wherein the object is modified within the object cache.

11. The method of claim 10 , wherein the modified object is stored in an object store.

12. The method of claim 8 , further comprising:

identifying a change to the definition of the object; and

updating the object in the object cache based on the change to the definition of the object.

13. The method of claim 8 , wherein, the information includes including time stamps associated with the modifications to the object.

14. The method of claim 13 , further comprising:

identifying conflicts in the modifications to the object based on the commit log; and

resolving the conflicts.

15. A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

obtaining a definition of an object included within an ontology of an object store;

associating the object with information stored in one or more datasets of a relational database, the information being determined based at least in part on the definition of the object;

storing the object in an object cache of the object store such that the information associated with the object is also stored in the object cache;

providing one or more object-oriented interfaces through which requests to perform one or more object-oriented operations on the object are able to be submitted, the one or more object-oriented operations including modifying the object, wherein information about modifications to the object are stored in a commit log, the information including one or more vector clocks associated with the modifications to the object, wherein each of the one or more vector clocks are stored on a per dataset basis, the one or more vector clocks being distinguished, via different identifiers, based on whether the modifications originate from changes in the one or more datasets or from changes made to the object relating to a transaction of the object cache;

receiving, through at least one of the one or more object-oriented interfaces, a first request to perform at least one object-oriented operation on the object stored in the object cache; and

modifying, based on the first request received through the at least one of the one or more object-oriented interfaces, the information stored in the one or more datasets of the relational database.

16. The non-transitory computer readable medium of claim 15 , wherein the object-oriented operations include searching for the object, loading the object, or modifying the object.

17. The non-transitory computer readable medium of claim 16 , wherein the modified object is stored in an object store.

18. The non-transitory computer readable medium of claim 15 , wherein, the information includes including time stamps associated with the modifications to the object.

19. The system of claim 1 , wherein, if the object is backed by a single row or a single column in a dataset with a single primary key column or a single primary key row, the object is identified by a dataset resource identifier, a branch, a name of the primary key column or the primary key row, and a primary key value.

20. The system of claim 1 , wherein, if the object is backed by a single row or a single column in a dataset with a multi-column or a multi-row primary key, the backing of the object is reduced to a single primary key column or a single primary key row.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2018
From: DUCOTT, RICK; GOENKA, AAKASH; WEI, TAO; MORAES MORANT DE HOLANDA, DIOGO BONFIM; INOUE, JIM; SPENCER-HARPER, QUENTIN; RAHILL-MARIER, BIANCA; GROSSMAN, JACK; SCREENE, FRANCIS; HARISH, SUBBANARASIMHIAH; KONG, JEREMY; ELLIOT, MARK; SCOLNICK, MYLES; NIEMI, RICHARD; VOREL, RAGNAR; MCINTYRE, THOMAS; POWELL, THOMAS; CHEN, ANDY
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 046795/0088 →