IP Library Granted Patent US 10,798,168
Granted Patent B2
US 10,798,168 · App. 16/227,611 · Granted Oct 6, 2020

Storing data in distributed systems

Inventors: Zhenkun Yang (Hangzhou, CN); Yuzhong Zhao (Hangzhou, CN); Wenhui Shi (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
H04L67/1097G06F11/1658G06F11/2023G06F16/182G06F16/1844G06F16/2379H04L29/08H04L41/0668G06F2201/85
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,798,168
App. No.
16/227,611
Granted
Oct 6, 2020
Kind
B2
Abstract

One example method includes receiving, by the one or more processors, a request to update data stored on a distributed data storage system that comprises a primary server and a plurality of secondary servers, the request comprising data updates; sending, by the one or more processors, an update log instruction to the primary server and the plurality of secondary servers so that each of the primary server and the plurality of secondary servers records a log associated with the request; determining, by the one or more processors, that the log has been recorded; and in response to determining that the log has been recorded, sending, by the one or more processors, a data storage instruction to the primary server and a secondary server of the plurality of secondary servers so that each of the primary server and the secondary server stores the data updates.

Claims (57)

1. A computer-implemented method executed by one or more processors, the method comprising:

receiving, by the one or more processors, a request to update data stored on a distributed data storage system that comprises a primary server and a plurality of secondary servers, the request comprising data updates, the primary server being randomly selected;

sending, by the one or more processors, an update log instruction to the primary server and the plurality of secondary servers, wherein at least one of the primary server and the plurality of secondary servers records a log associated with the request;

determining, by the one or more processors, that a log operation was completed, wherein the log has been recorded by the primary server;

in response to determining that the log operation was completed by the primary server, randomly selecting, by the one or more processors, one of the plurality of secondary servers as a first secondary server of the plurality of secondary servers;

sending, by the one or more processors, a data storage instruction to the primary server and the first secondary server of the plurality of secondary servers wherein each of the primary server and the first secondary server stores the data updates; and

sending, by the one or more processors, a null-operation instruction to a second secondary server, wherein the null-operation instruction is used to instruct the second secondary server to perform no operation with respect to the data updates to reduce a number of copies of the data updates.

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

receiving, by the one or more processors, a user input comprising a service request;

generating, by the one or more processors, a service response to the service request and

subsequent to generating the service response, receiving, by the one or more processors, the request to update the data stored on the distributed data storage system.

3. The computer-implemented method of claim 1 , wherein at least one secondary server of the plurality of secondary servers is predetermined as being the second secondary server.

4. The computer-implemented method of claim 1 , wherein the primary server is in communication with an external computing device to perform external read or write operations associated with the data updates.

5. The computer-implemented method of claim 1 , wherein the null-operation instruction instructs the second secondary server to cancel storage of the data updates.

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

determining that the primary server or the first secondary server has failed.

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

in response to determining that the primary server or the first secondary server has failed, sending a data synchronization instruction to a third secondary server, wherein the third secondary server synchronizes with the primary server or the first secondary server that has not failed, to store the data updates.

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

determining that the second secondary server other than the first secondary server has failed; and

sending a log synchronization instruction to a third server so that the third server synchronizes with the primary server or one secondary server of the plurality of secondary servers that has not failed, to record the log.

9. A non-transitory computer-readable storage medium coupled to one or more computers and configured with instructions executable by the one or more computers to:

receive a request to update data stored on a distributed data storage system that comprises a primary server and a plurality of secondary servers, the request comprising data updates, the primary server being randomly selected;

send an update log instruction to the primary server and the plurality of secondary servers, wherein at least one of the primary server and the plurality of secondary servers records a log associated with the request;

determine that a log operation was completed, wherein the log has been recorded by the primary server;

in response to determining that the log operation was completed by the primary server, randomly selecting, by the one or more computers, one of the plurality of secondary servers as a first secondary server of the plurality of secondary servers;

send a data storage instruction to the primary server and the first secondary server of the plurality of secondary servers, wherein each of the primary server and the first secondary server stores the data updates; and

send a null-operation instruction to a second secondary server, wherein the null-operation instruction is used to instruct the second secondary server to perform no operation with respect to the data updates to reduce a number of copies of the data updates.

10. The non-transitory computer-readable storage medium of claim 9 , further comprising:

receiving a user input comprising a service request;

generating a service response to the service request; and

subsequent to generating the service response, receiving the request to update the data stored on the distributed data storage system.

11. The non-transitory computer-readable storage medium of claim 9 , wherein at least one secondary server of the plurality of secondary servers is predetermined as being the second secondary server.

12. The non-transitory computer-readable storage medium of claim 9 , wherein the primary server is in communication with an external computing device to perform external read or write operations associated with the data updates.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the null-operation instruction instructs the second secondary server to cancel storage of the data updates.

14. The non-transitory computer-readable storage medium of claim 9 , wherein the secondary server is a first secondary server, and the medium is further configured with instructions executable by the one or more computers to:

determine that the primary server or the first secondary server has failed.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the medium is further configured with instructions executable by the one or more computers to:

in response to determining that the primary server or the first secondary server has failed, sending a data synchronization instruction to a third secondary server, wherein the third secondary server synchronizes with the primary server or the first secondary server that has not failed, to store the data updates.

16. The non-transitory computer-readable storage medium of claim 9 , wherein the secondary server is a first secondary server, and the medium further configured with instructions executable by the one or more computers to:

determine that the second secondary server other than the first secondary server has failed; and

send a log synchronization instruction to a third server so that the third server synchronizes with the primary server or one secondary server of the plurality of secondary servers that has not failed, to record the log.

17. A system, comprising:

one or more computers; and

one or more computer-readable memories coupled to the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions executable by the one or more computers to:

receive a request to update data stored on a distributed data storage system that comprises a primary server and a plurality of secondary servers, the request comprising data updates, the primary server being randomly selected,

send an update log instruction to the primary server and the plurality of secondary servers, wherein at least one of the primary server and the plurality of secondary servers records a log associated with the request,

determine that a log operation was completed, wherein the log has been recorded by the primary server,

in response to determining that the log operation was completed by the primary server, randomly selecting one of the plurality of secondary servers as a first secondary server of the plurality of secondary servers,

send a data storage instruction to the primary server and the first secondary server of the plurality of secondary servers, wherein each of the primary server and the first secondary server stores the data updates; and

send a null-operation instruction to a second secondary server, wherein the null-operation instruction is used to instruct the second secondary server to perform no operation with respect to the data updates to reduce a number of copies of the data updates.

18. The system of claim 17 , further comprising:

receiving a user input comprising a service request;

generating a service response to the service request; and

subsequent to generating the service response, receiving the request to update the data stored on the distributed data storage system.

19. The system of claim 17 , wherein at least one secondary server of the plurality of secondary servers is predetermined as being the second secondary server.

20. The system of claim 17 , wherein the primary server is in communication with an external computing device to perform external read or write operations associated with the data updates.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2021
From: ANT FINANCIAL (HANG ZHOU) NETWORK TECHNOLOGY CO., LTD.
To: BEIJING OCEANBASE TECHNOLOGY CO., LTD.
Reel/Frame 057349/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: ADVANCED NEW TECHNOLOGIES CO., LTD.
To: ANT FINANCIAL (HANG ZHOU) NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 055237/0137 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2019
From: YANG, ZHENKUN; ZHAO, YUZHONG; SHI, WENHUI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 049145/0250 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE FORMAT OF THE ADDRESS OF THE ASSIGNEE AND TO INCLUDE THE ZIP CODE. PREVIOUSLY RECORDED AT REEL: 048699 FRAME: 0439. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 11, 2019
From: YANG, ZHENKUN; ZHAO, YUZHONG; SHI, WENHUI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 048872/0974 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2019
From: YANG, ZHENKUN; ZHAO, YUZHONG; SHI, WENHUI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 048699/0439 →