IP Library Granted Patent US 11,768,621
Granted Patent B2
US 11,768,621 · App. 17/457,830 · Granted Sep 26, 2023

Live data migration in document stores

Inventors: Erez Biezuner (Tel Aviv, IL); Zohar Shay (Even Yehuda, IL)
Assignee: GONG.IO LTD.
G06F3/0647G06F3/0604G06F3/0679
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,768,621
App. No.
17/457,830
Granted
Sep 26, 2023
Kind
B2
Abstract

A method and system for live migration of an index in a document store are provided. The method includes creating a new index based on a change request, wherein the change request designates at least one change relative to a current index, wherein the new index includes all mappings and settings of the current index together with the at least one requested change, wherein the new index and the current index are properties of the document store; initiating a reindexing process of the new index by copying documents from the current index to the new index, wherein the current index remains active during the reindexing of the new index; and upon successful completion of the reindexing process, deleting the current index and directing all write and read requests to the new index.

Claims (57)

1. A method for live migration of an index in a document store, comprising:

creating a new index based on a change request, wherein the change request designates at least one change relative to a current index, wherein the new index includes all mappings and settings of the current index together with the at least one requested change, wherein the new index and the current index are properties of the document store;

initiating a reindexing process of the new index by copying documents from the current index to the new index, wherein the current index remains active during the reindexing of the new index;

upon successful completion of the reindexing process, deleting the current index and directing all write and read requests to the new index, wherein all write requests are directed to both the new index and to the current index during the reindexing process, wherein all read requests are directed only to the current index during the reindexing process;

assigning a single controller to control the reindexing process;

responding, by the controller, with a topology of the current index for any read request; and

responding, by the controller, with a topology of the current index and a topology of the new index for any write request.

2. The method of claim 1 , wherein initiating the reindexing process further comprises:

waiting for a predefined time prior to initiating the reindexing process to allow aging of any cached data.

3. The method of claim 1 , wherein the reindexing process further comprises:

polling documents from the current index during a first time window;

copying the polled documents to the new index;

checking if all documents from the current index are copied to the new index; and

repeating the reindexing process until all documents are copied to the new index, wherein the successful completion of the reindexing process occurs when all documents in the current index are copied to the new index.

4. The method of claim 1 , further comprising:

waiting for a predefined time prior to deleting the current index to allow aging of any cached data and backing up the current index when successful completion of the reindexing process has occurred.

5. The method of claim 1 , further comprising:

resharding the current index.

6. The method of claim 5 , wherein resharding the current index further comprises:

checking if a size of each shard defined in the current index exceeds an allowable size of the shard;

determining a new number of shards based on the current index, wherein the new number of shards is higher than a current number of shards defined for the current index;

creating a new index based on same mappings of the current index, wherein the new index is set with the determined new number of shards; and

migrating the current index to the new index, wherein the current index remains activate during the migration store.

7. The method of claim 1 , wherein the document store is a non-traditional relational database (RDB).

8. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute a process for live migration of an index in a document store, the process comprising:

creating a new index based on a change request, wherein the change request designates at least one change relative to a current index, wherein the new index includes all mappings and settings of the current index together with the at least one requested change, wherein the new index and the current index are properties of the document store;

initiating a reindexing process of the new index by copying documents from the current index to the new index, wherein the current index remains active during the reindexing of the new index;

upon successful completion of the reindexing process, deleting the current index and directing all write and read requests to the new index, wherein all write requests are directed to both the new index and to the current index during the reindexing process, wherein all read requests are directed only to the current index during the reindexing process;

assigning a single controller to control the reindexing process;

responding, by the controller, with a topology of the current index for any read request; and

responding, by the controller, with a topology of the current index and a topology of the new index for any write request.

9. A system for live migration of an index in a document store, comprising:

a processing circuitry; and

a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:

create a new index based on a change request, wherein the change request designates at least one change relative to a current index, wherein the new index includes all mappings and settings of the current index together with the at least one requested change, wherein the new index and the current index are properties of the document store;

initiate a reindexing process of the new index by copying documents from the current index to the new index, wherein the current index remains active during the reindexing of the new index; and

upon successful completion of the reindexing process, delete the current index and directing all write and read requests to the new index, wherein all write requests are directed to both the new index and to the current index during the reindexing process, wherein all read requests are directed only to the current index during the reindexing process;

assign a single controller to control the reindexing process;

respond, by the controller, with a topology of the current index for any read request; and

respond, by the controller, with a topology of the current index and a topology of the new index for any write request.

10. The system of claim 9 , wherein the system is further configured to:

wait for a predefined time prior to initiating the reindexing process to allow aging of any cached data.

11. The system of claim 9 , wherein the system is further configured to:

poll documents from the current index during a first time window;

copy the polled documents to the new index;

check if all documents from the current index are copied to the new index; and

repeat the reindexing process until all documents are copied to the new index, wherein the successful completion of the reindexing process occurs when all documents in the current index are copied to the new index.

12. The system of claim 11 , wherein the system is further configured to:

wait for a predefined time prior to deleting the current index to allow aging of any cached data and backing up the current index when successful completion of the reindexing process has occurred.

13. The system of claim 9 , wherein the system is further configured to:

reshard the current index.

14. The system of claim 13 , wherein the system is further configured to:

check if a size of each shard defined in the current index exceeds an allowable size of the shard;

determine a new number of shards based on the current index, wherein the new number of shards is higher than a current number of shards defined for the current index;

create a new index based on same mappings of the current index, wherein the new index is set with the determined new number of shards; and

migrate the current index to the new index, wherein the current index remains activate during the migration store.

15. The system of claim 9 , wherein the document store is a non-traditional relational database (RDB).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2021
From: BIEZUNER, EREZ; SHAY, ZOHAR
To: GONG.IO LTD.
Reel/Frame 058339/0562 →
Cited By (1)
US 12,706,980