Management of database migration
First Claim
Patent Images
1. A computer-implemented method comprising:
- receiving, by a server and from a client device, a request to migrate data from a first data store in a first structure format to a different, second data store in a different, second data structure format;
accessing, by the server, the data in the first data store based on the received request to migrate the data;
storing, by the server, the data accessed in the first data store in the second data store;
determining, by the server, that the server has completed storing the data in the second data store, wherein when the server has completed storing the data in the second data store the server is in a first state where the server (i) exposes data from the first data store to the client device, (ii) does not expose data from the second data store to the client device, and (iii) replicates changes in the first data store to the second data store;
receiving, by the server and from a user, a request to place the server in the second state, wherein while in the second state the server (i) exposes data from the first data store to the client device, (ii) exposes data from the second data store to the client device, (iii) replicates changes in the first data store to the second data store, and (iv) replicates changes in the second data store to the first data store;
in response to receiving, by the server, the request to place the server in the second state, placing, by the server, the server in the second state;
replicating, by the server while in the second state, changes in the first data store to the second data store;
replicating, by the server while in the second state, changes in the second data store to the first data store;
obtaining, by the server while in the second state, data for responding to a user request, wherein the data for responding to the user request is obtained from the first data store or the second data store without downtime that interrupts a service function of the server that is used for responding to user requests, based on the server replicating changes;
(i) in the first data store to the second data store, and (ii) in the second data store to the first data store;
providing, by the server, the data obtained from the first data store or the second data store as a response to the user request;
receiving, by the server, a request to place the server in a third state, wherein while in the third state the server (i) does not expose data from the first data store to the client device, (ii) exposes data from the second data store to the client device, and (iii) replicates changes in the second data store to the first data store; and
placing the server in the third state.
9 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, are described, including computer programs encoded on a computer storage medium, for managing migration of data. The methods, systems, and apparatus may include actions of enabling a server to operate in different states. Generally, the different states of the server may enable code on client devices to be gradually updated from using data stored in an old database to using data stored in a new database in a different format, while enabling the server to continue responding to requests for data from client devices.
15 Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving, by a server and from a client device, a request to migrate data from a first data store in a first structure format to a different, second data store in a different, second data structure format; accessing, by the server, the data in the first data store based on the received request to migrate the data; storing, by the server, the data accessed in the first data store in the second data store; determining, by the server, that the server has completed storing the data in the second data store, wherein when the server has completed storing the data in the second data store the server is in a first state where the server (i) exposes data from the first data store to the client device, (ii) does not expose data from the second data store to the client device, and (iii) replicates changes in the first data store to the second data store; receiving, by the server and from a user, a request to place the server in the second state, wherein while in the second state the server (i) exposes data from the first data store to the client device, (ii) exposes data from the second data store to the client device, (iii) replicates changes in the first data store to the second data store, and (iv) replicates changes in the second data store to the first data store; in response to receiving, by the server, the request to place the server in the second state, placing, by the server, the server in the second state; replicating, by the server while in the second state, changes in the first data store to the second data store; replicating, by the server while in the second state, changes in the second data store to the first data store; obtaining, by the server while in the second state, data for responding to a user request, wherein the data for responding to the user request is obtained from the first data store or the second data store without downtime that interrupts a service function of the server that is used for responding to user requests, based on the server replicating changes;
(i) in the first data store to the second data store, and (ii) in the second data store to the first data store;providing, by the server, the data obtained from the first data store or the second data store as a response to the user request; receiving, by the server, a request to place the server in a third state, wherein while in the third state the server (i) does not expose data from the first data store to the client device, (ii) exposes data from the second data store to the client device, and (iii) replicates changes in the second data store to the first data store; and placing the server in the third state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
one or more computers; and one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising; receiving, by a server and from a client device, a request to migrate data from a first data store in a first structure format to a different, second data store in a different, second structure format; accessing, by the server, the data in the first data store based on the received request to migrate the data; storing, by the server, the data accessed in the first data store in the second data store; determining, by the server, that the server has completed storing the data in the second data store, wherein when the server has completed storing the data in the second data store the server is in a first state where the server (i) exposes data from the first data store to the client device, (ii) does not expose data from the second data store to the client device, and (iii) replicates changes in the first data store to the second data store; receiving, by the server and from a user, a request to place the server in the second state, wherein while in the second state the server (i) exposes data from the first data store to the client device, (ii) exposes data from the second data store to the client device, (iii) replicates changes in the first data store to the second data store, and (iv) replicates changes in the second data store to the first data store; in response to receiving, by the server, the request to place the server in the second state, placing, by the server, the server in the second state; replicating, by the server while in the second state, changes in the first data store to the second data store; replicating, by the server while in the second state, changes in the second data store to the first data store; obtaining, by the server while in the second state, data for responding to a user request, wherein the data for responding to the user request is obtained from the first data store or the second data store without downtime that interrupts a service function of the server that is used for responding to user requests, based on the server replicating changes;
(i) in the first data store to the second data store, and (ii) in the second data store to the first data store;providing, by the server, the data obtained from the first data store or the second data store as a response to the user request; receiving, by the server, a request to place the server in a third state, wherein while in the third state the server (i) does not expose data from the first data store to the client device, (ii) exposes data from the second data store to the client device, and (iii) replicates changes in the second data store to the first data store; and placing, by the server, the server in the third state. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:
-
receiving, by a server and from a client device, a request to migrate data from a first data store in a first structure format to a different, second data store in a different, second structure format; accessing, by the server, the data in the first data store based on the received request to migrate the data; storing, by the server, the data accessed in the first data store in the second data store; determining, by the server, that the server has completed storing the data in the second data store, wherein when the server has completed storing the data in the second data store the server is in a first state where the server (i) exposes data from the first data store to the client device, (ii) does not expose data from the second data store to the client device, and (iii) replicates changes in the first data store to the second data store; receiving, by the server and from a user, a request to place the server in the second state, wherein while in the second state the server (i) exposes data from the first data store to the client device, (ii) exposes data from the second data store to the client device, (iii) replicates changes in the first data store to the second data store, and (iv) replicates changes in the second data store to the first data store; in response to receiving, by the server, the request to place the server in the second state, placing, by the server, the server in the second state; replicating, by the server while in the second state, changes in the first data store to the second data store; replicating, by the server while in the second state, changes in the second data store to the first data store; obtaining, by the server while in the second state, data for responding to a user request, wherein the data for responding to the user request is obtained from the first data store or the second data store without downtime that interrupts a service function of the server that is used for responding to user requests, based on the server replicating changes;
(i) in the first data store to the second data store, and (ii) in the second data store to the first data store; andproviding, by the server, the data obtained from the first data store or the second data store as a response to the user request; receiving, by the server, a request to place the server in a third state, wherein while in the third state the server (i) does not expose data from the first data store to the client device, (ii) exposes data from the second data store to the client device, and (iii) replicates changes in the second data store to the first data store; and placing, by the server, the server in the third state. - View Dependent Claims (18, 19, 20)
-
Specification