IP Library Granted Patent US 10,402,385
Granted Patent B1
US 10,402,385 · App. 14/837,951 · Granted Sep 3, 2019

Database live reindex

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,402,385
App. No.
14/837,951
Granted
Sep 3, 2019
Kind
B1
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 (53)

1. A method comprising:

receiving, at a dispatch server, a request to reindex information in a database;

wherein, at a 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;

responsive to receiving the request to reindex and while the dispatch server and the database are live, initiating generation of a second shadow index of information in the database;

wherein, while the dispatch server and the database are live, requests to update information in the database are received by the dispatch server and updates are made to information in the database;

wherein generating the second shadow index of information in the database while the dispatch server and the database are live is based on periodically running a reindexing job configured to reindex information in the database in batches until the second shadow index is up-to-date with respect to any updates that have been made to information in the database;

storing the second shadow index at a second index server;

after storing the second shadow index at the second index server, quiescing the dispatch server by storing queries that are received at the dispatch server in a buffer for a later response;

while the dispatch server is quiesced, completing the generation of the second shadow index by completing iteration through the information in the database;

upon completing the iteration, 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; and

wherein the method is executed using one or more computing devices.

2. The method of claim 1 , wherein the request comprises a new ontology for the information in the database.

3. The method of claim 1 , wherein the request is in response to changing a number of shards comprising the first index server.

4. The method of claim 1 , wherein the second index server is located on one or more same devices as the first index server.

5. The method of claim 4 , further comprising:

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 a live index server.

6. The method of claim 1 , wherein generating the second shadow index is performed using a batch size and a thread count that does not impede live operation of the database.

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

receiving, at a dispatch server, a request to reindex information in a database;

wherein, at a 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;

responsive to receiving the request to reindex and while the dispatch server and the database are live, initiating generation of a second shadow index of information in the database;

wherein, while the dispatch server and the database are live, requests to update information in the database are received by the dispatch server and updates are made to information in the database;

wherein generating the second shadow index of information in the database while the dispatch server and the database are live is based on periodically running a reindexing job configured to reindex information in the database in batches until the second shadow index is up-to-date with respect to any updates that have been made to information in the database;

storing the second shadow index at a second index server;

after storing the second shadow index at the second index server, quiescing the dispatch server by storing queries that are received at the dispatch server in a buffer for a later response;

while the dispatch server is quiesced, completing the generation of the second shadow index by completing iteration through the information in the database; and

upon completing the iteration, 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.

8. The one or more non-transitory computer-readable media of claim 7 , wherein the request comprises a new ontology for the information in the database.

9. The one or more non-transitory computer-readable media of claim 7 , wherein the request is in response to changing a number of shards comprising the first index server.

10. The one or more non-transitory computer-readable media of claim 7 , wherein the second index server is located on one or more same devices as the first index server.

11. The one or more non-transitory computer-readable media of claim 10 , 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 a live index server.

12. The one or more non-transitory computer-readable media of claim 7 , wherein generating the second shadow index is performed using a batch size and a thread count that does not impede live operation of the database.

13. A system comprising:

memory;

one or more processors;

one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs comprising instructions for:

receiving, at a dispatch server, a request to reindex information in a database;

wherein, at a 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;

responsive to receiving the request to reindex and while the dispatch server and the database are live, initiating generation of a second shadow index of information in the database;

wherein, while the dispatch server and the database are live, requests to update information in the database are received by the dispatch server and updates are made to information in the database;

wherein generating the second shadow index of information in the database while the dispatch server and the database are live is based on periodically running a reindexing job configured to reindex information in the database in batches until the second shadow index is up-to-date with respect to any updates that have been made to information in the database;

storing the second shadow index at a second index server;

after storing the second shadow index at the second index server, quiescing the dispatch server by storing queries that are received at the dispatch server in a buffer for a later response;

while the dispatch server is quiesced, completing the generation of the second shadow index by completing iteration through the information in the database; and

upon completing the iteration, 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.

14. The system of claim 13 , wherein the request comprises a new ontology for the information in the database.

15. The system of claim 13 , wherein the one or more programs further comprising instructions for:

wherein the second index server is located on one or more same devices as the first index server;

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 a live index server.

Assignments (9)
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 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
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 →
CHANGE OF NAME Recorded Aug 26, 2019
From: PIERCE, ALAN; DORNE, BRIAN; GLAZER, MICHAEL; RABIDEAU, DEREK; DUCOTT, RICHARD ALLEN, III; KARESH, DAVID; DAVIS, DYLAN; DAILEY, MATTHEW; YAO, HONGYI; ROBINSON, DANIEL
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 050165/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2015
From: PIERCE, ALAN; DORNE, BRIAN; GLAZER, MICHAEL; RABIDEAU, DEREK; DUCOTT, RICHARD ALLEN, III; KARESH, DAVID; DAVIS, DYLAN; DAILEY, MATTHEW; YAO, HONGYI; ROBINSON, DANIEL
To: PALANTIR TECHNOLOGIES, INC.
Reel/Frame 037393/0060 →