IP Library Granted Patent US 10,021,182
Granted Patent B2
US 10,021,182 · App. 14/981,078 · Granted Jul 10, 2018

Method and apparatus for data synchronization

Inventors: Jie Liang (Guangzhou, CN); Jianjun Li (Guangzhou, CN); Zheng Tang (Guangzhou, CN); Yaojia Wang (Guangzhou, CN); Xiang Su (Guangzhou, CN)
Assignee: GUANGZHOU UCWEB COMPUTER TECHNOLOGY CO., LTD.
H04L67/1095H04L67/42
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,021,182
App. No.
14/981,078
Granted
Jul 10, 2018
Kind
B2
Abstract

A method for data synchronization performed by a server is described. The method comprises receiving, from a client terminal, a synchronization request and information about a synchronization anchor of the client terminal; determining, based on the synchronization anchor of the client terminal and a synchronization anchor of the server, difference data to be synchronized with the client terminal; determining whether a size of the difference data exceeds a threshold; and responsive to determining that a size of the difference data exceeds the threshold, transmitting the difference data to the client terminal in a plurality of difference data segments, wherein a size of each of the plurality of the difference data segments does not exceed the threshold, and wherein each of the plurality of the difference data segments is to be synchronized separately with the client terminal.

Claims (62)

1. A method for data synchronization, the method being performed by a server, comprising:

receiving, from a client terminal, a synchronization request and information about a synchronization anchor of the client terminal;

determining, based on the synchronization anchor of the client terminal and a synchronization anchor of the server, difference data to be synchronized with the client terminal;

determining whether a size of the difference data exceeds a threshold; and

responsive to determining that a size of the difference data exceeds the threshold, transmitting the difference data to the client terminal in a plurality of difference data segments, wherein a size of each of the plurality of the difference data segments does not exceed the threshold, and wherein each of the plurality of the difference data segments is to be synchronized separately with the client terminal.

2. The method of claim 1 , further comprising:

determining an intermediate synchronization anchor based on the synchronization anchor of the client terminal and the synchronization anchor of the server;

transmitting, to the client terminal, a first data segment that corresponds to a difference between the synchronization anchor of the client terminal and the intermediate synchronization anchor; and

transmitting, to the client terminal, the intermediate synchronization anchor, wherein transmission of the intermediate synchronization anchor enables the client terminal to update the synchronization anchor of the client terminal to match with the intermediate synchronization anchor.

3. The method of claim 2 , further comprising:

transmitting, to the client terminal, a first message to indicate that more data is to be transmitted to the client terminal after the transmission of the first data segment.

4. The method of claim 2 , further comprising:

transmitting, to the client terminal, a second data segment that corresponds to a difference between the intermediate synchronization anchor and the synchronization anchor of the server; and

transmitting, to the client terminal, the synchronization anchor of the server, wherein transmission of the synchronization anchor of the server enables the client terminal to update the synchronization anchor of the client terminal to match with the synchronization anchor of the server.

5. The method of claim 1 , further comprising:

updating the intermediate synchronization anchor based on at least one of: an updated synchronization anchor of the server and an updated synchronization anchor of the client terminal.

6. The method of claim 1 , further comprising:

receiving, from the client terminal, data to be synchronized with the server; and

updating the synchronization anchor of the server based on a size of received data.

7. The method of claim 6 , wherein the data to be synchronized with the server is transmitted in a plurality of data segments, wherein a size of each of the plurality of the difference data segments does not exceed the threshold, and wherein the synchronization anchor is updated when receiving each of the plurality of data segments.

8. The method of claim 6 , further comprising:

receiving, from the client terminal, a second message to indicate that more data is to be received from the client terminal after the receiving, from the client terminal, the data to be synchronized with the server.

9. The method of claim 1 , wherein the synchronization anchor of the server is independent from the synchronization anchor of the client terminal before receiving, from the client terminal, the synchronization request and information about the synchronization anchor of the client terminal.

10. A server for data synchronization, the server comprising:

a memory that stores a set of instructions; and

one or more processors configured to execute the instructions to cause the server to perform:

receiving, from a client terminal, a synchronization request and information about a synchronization anchor of the client terminal;

determining, based on the synchronization anchor of the client terminal and a synchronization anchor of the server, difference data to be synchronized with the client terminal;

determining whether a size of the difference data exceeds a threshold; and

responsive to determining that a size of the difference data exceeds the threshold, transmitting the difference data to the client terminal in a plurality of difference data segments, wherein a size of each of the plurality of the difference data segments does not exceed the threshold, and wherein each of the plurality of the difference data segments is to be synchronized separately with the client terminal.

11. The server of claim 10 , wherein the one or more processors are configured to execute the instructions to cause the server to perform:

determining an intermediate synchronization anchor based on the synchronization anchor of the client terminal and the synchronization anchor of the server;

transmitting, to the client terminal, a first data segment that corresponds to a difference between the synchronization anchor of the client terminal and the intermediate synchronization anchor; and

transmitting, to the client terminal, the intermediate synchronization anchor, wherein transmission of the intermediate synchronization anchor enables the client terminal to update the synchronization anchor of the client terminal to match with the intermediate synchronization anchor.

12. The server of claim 11 , wherein the one or more processors are configured to execute the instructions to cause the server to perform:

transmitting, to the client terminal, a first message to indicate that more data is to be transmitted to the client terminal after the transmission of the first data segment.

13. The server of claim 11 , wherein the one or more processors are configured to execute the instructions to cause the server to perform:

transmitting, to the client terminal, a second data segment that corresponds to a difference between the intermediate synchronization anchor and the synchronization anchor of the server; and

transmitting, to the client terminal, the synchronization anchor of the server, wherein transmission of the synchronization anchor of the server enables the client terminal to update the synchronization anchor of the client terminal to match with the synchronization anchor of the server.

14. The server of claim 10 , wherein the one or more processors are configured to execute the instructions to cause the server to perform:

updating the intermediate synchronization anchor based on at least one of: an updated synchronization anchor of the server and an updated synchronization anchor of the client terminal.

15. The server of claim 10 , wherein the one or more processors are configured to execute the instructions to cause the server to perform:

receiving, from the client terminal, data to be synchronized with the server; and

updating the synchronization anchor of the server based on a size of received data.

16. The server of claim 10 , wherein the one or more processors are configured to execute the instructions to cause the server to perform:

receiving, from the client terminal, data to be synchronized with the server; and

updating the synchronization anchor of the server based on a size of received data.

wherein the data to be synchronized with the server is transmitted in a plurality of data segments, wherein a size of each of the plurality of the difference data segments does not exceed the threshold, and wherein the synchronization anchor is updated when receiving each of the plurality of data segments.

17. A non-transitory computer readable medium that stores a program that, when executed by a processor, causes the processor to perform a method for data synchronization, the method comprising:

receiving, from a client terminal, a synchronization request and information about a synchronization anchor of the client terminal;

determining, based on the synchronization anchor of the client terminal and a synchronization anchor of the server, difference data to be synchronized with the client terminal;

determining whether a size of the difference data exceeds a threshold; and

responsive to determining that a size of the difference data exceeds the threshold, transmitting the difference data to the client terminal in a plurality of difference data segments, wherein a size of each of the plurality of the difference data segments does not exceed the threshold, and wherein each of the plurality of the difference data segments is to be synchronized separately with the client terminal.

18. The medium of claim 17 , wherein the method further comprises:

determining an intermediate synchronization anchor based on the synchronization anchor of the client terminal and the synchronization anchor of the server;

transmitting, to the client terminal, a first data segment that corresponds to a difference between the synchronization anchor of the client terminal and the intermediate synchronization anchor; and

transmitting, to the client terminal, the intermediate synchronization anchor, wherein transmission of the intermediate synchronization anchor enables the client terminal to update the synchronization anchor of the client terminal to match with the intermediate synchronization anchor.

19. The medium of claim 18 , wherein the method further comprises:

transmitting, to the client terminal, a first message to indicate that more data is to be transmitted to the client terminal after the transmission of the first data segment.

20. The medium of claim 18 , wherein the method further comprises:

transmitting, to the client terminal, a second data segment that corresponds to a difference between the intermediate synchronization anchor and the synchronization anchor of the server; and

transmitting, to the client terminal, the synchronization anchor of the server, wherein transmission of the synchronization anchor of the server enables the client terminal to update the synchronization anchor of the client terminal to match with the synchronization anchor of the server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2020
From: GUANGZHOU UCWEB COMPUTER TECHNOLOGY CO., LTD.
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 053601/0565 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2016
From: LIANG, JIE; LI, JIANJUN; TANG, ZHENG; WANG, YAOJIA; SU, XIANG
To: GUANGZHOU UCWEB COMPUTER TECHNOLOGY CO., LTD.
Reel/Frame 038608/0868 →
Priority Claims (1)
CN 2013 1 0268827 · Jun 28, 2013 · national
Continuity (2)
Continuation PCTCN2013089528 · Dec 16, 2013
Related Publication 20160134695A1 · May 12, 2016