IP Library Granted Patent US 11,409,722
Granted Patent B2
US 11,409,722 · App. 16/557,583 · Granted Aug 9, 2022

Database live reindex

Inventors: Alan Pierce (Palo Alto, CA); Brian Dorne (Menlo Park, CA); Michael Glazer (San Francisco, CA); Derek Rabideau (Neenah, WI); Richard Allen Ducott, III (London, GB); David Karesh (Palo Alto, CA); Dylan Davis (Palo Alto, CA); Matthew Dailey (San Francisco, CA); Hongyi Yao (Mountain View, CA); Daniel Robinson (Menlo Park, CA)
Assignee: PALANTIR TECHNOLOGIES INC.
G06F16/2228G06F16/2365G06F16/245G06F16/951
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,409,722
App. No.
16/557,583
Granted
Aug 9, 2022
Kind
B2
Abstract

Systems and methods for live reindexing include receiving, at a dispatch server, a request to reindex a database, wherein, at the time the request to reindex is received, the dispatch server is configured to send queries for information in the database to a first index server, the first index server comprising a first index of information in the database. The systems and methods further include, responsive to receiving the request to reindex and while the database is live, generating a second index of the information in the database, storing the second index at a second index server, and configuring the dispatch server to use the second index server as a live index server and to no longer use the first index server as a live index server.

Claims (50)

1. A computer-implemented method comprising:

configuring a dispatch server to use a first index server as a live index server, the first index server comprising a first index of information that is stored in a database and responding to queries on the database from the dispatch server;

receiving a request to reindex information in the database;

based on the receiving the request to reindex information in the database, initiating a generation of a second shadow index of information in the database while the dispatch server continues to use the first index server as a live index server;

while the dispatch server is quiesced without receiving queries, completing the generation of the second shadow index; and

based on the completing the generation of the second shadow index, configuring the dispatch server to use a second index server, that stores the second shadow index as a live index server.

2. The computer-implemented method of claim 1 , further comprising:

generating the second shadow index of information based on iterating through information in the database.

3. The computer-implemented method of claim 1 , wherein the completing the generation of the second shadow index is based on periodically iterating through information in the database until the second shadow index is up to date.

4. The computer-implemented method of claim 1 , wherein the first index server is no longer used as a live index server while the second shadow index is used as a live index server.

5. The computer-implemented method of claim 1 , wherein the request is associated with a new ontology for information in the database.

6. The computer-implemented method of claim 1 , further comprising:

prior to the request, the first index server is composed of a first number of shards; and

the request is associated with a change in the first number of shards of which the first index server to a second number of shards that is different than the first number of shards.

7. The computer-implemented method of claim 1 , wherein the second index server operates on one or more devices on which the first index server operates.

8. The computer-implemented method of claim 7 , further comprising:

writing a plurality of actions for generating the second shadow index to a commit log; and

performing the plurality of actions in the commit log when configuring the dispatch server to use the second index server as a live index server.

9. The computer-implemented method of claim 1 , further comprising:

generating the second shadow index based on a maximum batch size and a maximum thread count.

10. One or more non-transitory computer-readable media storing one or more programs, the one or more programs comprising instructions for:

configuring a dispatch server to use a first index server as a live index server, the first index server comprising a first index of information that is stored in a database and responding to queries on the database from the dispatch server;

receiving a request to reindex information in the database;

based on the receiving the request to reindex information in the database, initiating a generation of a second shadow index of information in the database while the dispatch server continues to use the first index server as a live index server;

while the dispatch server is quiesced without receiving queries, completing the generation of the second shadow index; and

based on the completing the generation of the second shadow index, configuring the dispatch server to use a second index server that stores the second shadow index as a live index server.

11. The one or more non-transitory computer-readable media of claim 10 , the one or more programs further comprising instructions for:

generating the second shadow index of information based on iterating through information in the database.

12. The one or more non-transitory computer-readable media of claim 10 , wherein the completing the generation of the second shadow index is based on periodically iterating through information in the database until the second shadow index is up to date.

13. The one or more non-transitory computer-readable media of claim 10 , wherein the first index server is no longer used as a live index server while the second shadow index is used as a live index server.

14. The one or more non-transitory computer-readable media of claim 10 , wherein the request is associated with a new ontology for information in the database.

15. The one or more non-transitory computer-readable media of claim 10 , the one or more programs further comprising instructions for:

prior to the request, the first index server is composed of a first number of shards; and

the request is associated with a change in the first number of shards of which the first index server to a second number of shards that is different than the first number of shards.

16. The one or more non-transitory computer-readable media of claim 10 , wherein the second index server operates on one or more devices on which the first index server operates.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the one or more programs further comprising instructions for:

writing a plurality of actions for generating the second shadow index to a commit log, wherein the plurality of actions is not performed; and

performing the plurality of actions in the commit log when configuring the dispatch server to use the second index server as the live index server.

18. The one or more non-transitory computer-readable media of claim 10 , the one or more programs further comprising instructions for:

generating the second shadow index based on a maximum batch size and a maximum thread count.

19. A system comprising:

one or more processors;

a memory storing one or more programs configured for execution by the one or more processors, the one or more programs comprising instructions for:

configuring a dispatch server to use a first index server as a live index server, the first index server comprising a first index of information that is stored in a database and responding to queries on the database from the dispatch server;

receiving a request to reindex information in the database;

based on the receiving the request to reindex information in the database, initiating a generation of a second shadow index of information in the database while the dispatch server continues to use the first index server as a live index server;

while the dispatch server is quiesced without receiving queries, completing the generation of the second shadow index; and

based on the completing the generation of the second shadow index, configuring the dispatch server to use a second index server that stores the second shadow index as a live index server.

20. The system of claim 19 , the one or more programs further comprising instructions for:

generating the second shadow index of information based on iterating through information in the database.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
Continuity (2)
Continuation 14837951 · Aug 27, 2015
Related Publication 20190384751A1 · Dec 19, 2019