IP Library Granted Patent US 11,301,499
Granted Patent B2
US 11,301,499 · App. 16/892,279 · Granted Apr 12, 2022

Systems and methods for providing an object platform for datasets

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/284
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,301,499
App. No.
16/892,279
Granted
Apr 12, 2022
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 (60)

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, wherein the association is based on a primary key column or a primary key row, and a primary key value corresponding to the relational database, the association further comprising:

determining whether the object is associated with only a single row or only a single column; and

in response to determining that the object is associated with only a single row or only a single column, uniquely identifying the object by the primary key column or the primary key row, and the primary key value associated with the single row or the single column;

storing the object in an object cache of the object store according to the association of the object with the information stored in the one or more datasets, such that the information associated with the object is also stored in the object cache;

resolving conflicts between attempted modifications to the object based on any of respective timings of the attempted modifications, respective locations from where the attempted modifications originated, or respective security levels of systems that attempted the modifications; and

modifying the object based on the resolved conflicts.

2. The system of claim 1 , wherein the attempted modifications to the object are associated with vector clocks distinguished based on where the attempted modifications originated.

3. The system of claim 1 , wherein the modifying the object comprises merging the modifications to the object into the cache and incrementing a vector clock associated with a previous version of the object.

4. The system of claim 1 , wherein the resolving the conflicts between attempted modifications to the object comprises determining an attempted modification originating from the one or more datasets to have precedence over an attempted modification originating from the cache.

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

storing information associated with the attempted modifications in a commit log, the information comprising:

time stamps and vector clocks associated with the attempted modifications;

the systems that attempted the modifications;

the respective security levels of the systems that attempted the modifications; and

respective priority levels of the modifications.

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

identifying the conflicts based on the commit log.

7. The system of claim 1 , wherein the attempted modifications comprise any of:

an addition, removal, or change associated with an existing property of the object;

a change in a portion of the one or more datasets from where a value of the existing property is obtained or derived; or

a change in a relationship of the object.

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

storing only a single vector clock for each dataset; and

in response to modifying the object, storing an additional vector clock.

9. 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, wherein the association is based on a primary key column or a primary key row, and a primary key value corresponding to the relational database, the association further comprising:

determining whether the object is associated with only a single row or only a single column; and

in response to determining that the object is associated with only a single row or only a single column, uniquely identifying the object by the primary key column or the primary key row, and the primary key value associated with the single row or the single column;

storing the object in an object cache of the object store according to the association of the object with the information stored in the one or more datasets, such that the information associated with the object is also stored in the object cache;

resolving conflicts between attempted modifications to the object based on any of respective timings of the attempted modifications, respective locations from where the attempted modifications originated, or respective security levels of systems that attempted the modifications; and

modifying the object based on the resolved conflicts.

10. The method of claim 9 , wherein the attempted modifications to the object are associated with vector clocks distinguished based on where the attempted modifications originated.

11. The method of claim 9 , wherein the modifying the object comprises merging the modifications to the object into the cache and incrementing a vector clock associated with a previous version of the object.

12. The method of claim 9 , wherein the resolving the conflicts between attempted modifications to the object comprises determining an attempted modification originating from the one or more datasets to have precedence over an attempted modification originating from the cache.

13. The method of claim 9 , further comprising:

storing information associated with the attempted modifications in a commit log, the information comprising:

time stamps and vector clocks associated with the attempted modifications;

the systems that attempted the modifications;

the respective security levels of the systems that attempted the modifications; and

respective priority levels of the modifications.

14. The method of claim 9 , wherein the attempted modifications comprise any of:

an addition, removal, or change associated with an existing property of the object;

a change in a portion of the one or more datasets from where a value of the existing property is obtained or derived; or

a change in a relationship of the object.

15. The method of claim 9 , further comprising:

storing only a single vector clock for each dataset; and

in response to modifying the object, storing an additional vector clock.

16. 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, wherein the association is based on a primary key column or a primary key row, and a primary key value corresponding to the relational database, the association further comprising:

determining whether the object is associated with only a single row or only a single column;

in response to determining that the object is associated with only a single row or only a single column, uniquely identifying the object by the primary key column or the primary key row, and the primary key value associated with the single row or the single column;

storing the object in an object cache of the object store according to the association of the object with the information stored in the one or more datasets, such that the information associated with the object is also stored in the object cache;

resolving conflicts between attempted modifications to the object based on any of respective timings of the attempted modifications, respective locations from where the attempted modifications originated, or respective security levels of systems that attempted the modifications; and

modifying the object based on the resolved conflicts.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2021
From: DUCOTT, RICK; GOENKA, AAKASH; RAHILL-MARIER, BIANCA; WEI, TAO; DE HOLANDA, DIOGO BONFIM MORAES MORANT; GROSSMAN, JACK; SCREENE, FRANCIS; HARISH, SUBBANARASIMHIAH; INOUE, JIM; KONG, JEREMY; ELLIOT, MARK; SCOLNICK, MYLES; SPENCER-HARPER, QUENTIN; NIEMI, RICHARD; VOREL, RAGNAR; MCINTYRE, THOMAS; POWELL, THOMAS; CHEN, ANDY
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 055484/0374 →
Continuity (3)
Continuation 15958853 · Apr 20, 2018
Provisional Application 62529818 · Jul 7, 2017
Related Publication 20200293561A1 · Sep 17, 2020