Reduced bandwidth cache coherency via checksum exchange
First Claim
1. A computer-implemented method for updating a local database, comprising:
- at a server system having one or more processors and memory;
receiving a first request for a data item from a client device, wherein the first request includes an identifier of the data item;
in response to the first request;
calculating a first checksum of the data item;
sending the data item and the first checksum to the client device, for storage in a local database at the client device, such that the client device does not compute a checksum of the data item;
receiving a second request for the data item from the client device, wherein the second request includes the identifier of the data item and the first checksum previously computed by the server system;
in response to the second request;
calculating a second checksum of the data item;
comparing the first checksum to the second checksum;
determining that the data item has been updated based at least in part on the comparison of the first checksum to the second checksum; and
in accordance with the determination that the data item has been updated, sending to the client device a reply indicating that the data item has been updated;
wherein the reply indicating that the data item has been updated includes a request for a first plurality of identifiers, each identifier in the first plurality of identifiers corresponding to a component in a first plurality of components of the data item, the method further comprising;
receiving a message from the client device, the first plurality of identifiers comprising a part of the message;
in response to the message, comparing the first plurality of identifiers received in the message from the client device to a second plurality of identifiers, each identifier in the second plurality of identifiers being associated with a component in a second plurality of components of the data item;
determining a respective identifier in the second plurality of identifiers that is not in the first plurality of identifiers; and
in response to determining the respective identifier, sending a respective component that is associated with the respective identifier to the client device and sending the second checksum to the client device.
2 Assignments
0 Petitions
Accused Products
Abstract
A server system receives a first request for a data item from a web application on a client device, wherein the first request includes an identifier of the data item. In response to the first request, the server system calculates a first checksum of the data item and sends the data item and the first checksum to the web application, for storage in the local database. The server system receives a second request for the data item from the web application, calculates a second checksum of the data item and compares the first and second checksums. The server system, determines that the data item has been updated by comparing the first checksum to the second checksum; and in response to determining that the data item has been updated, the server system a reply to the web application a indicating that the data item has been updated.
-
Citations
18 Claims
-
1. A computer-implemented method for updating a local database, comprising:
-
at a server system having one or more processors and memory; receiving a first request for a data item from a client device, wherein the first request includes an identifier of the data item; in response to the first request; calculating a first checksum of the data item; sending the data item and the first checksum to the client device, for storage in a local database at the client device, such that the client device does not compute a checksum of the data item; receiving a second request for the data item from the client device, wherein the second request includes the identifier of the data item and the first checksum previously computed by the server system; in response to the second request; calculating a second checksum of the data item; comparing the first checksum to the second checksum; determining that the data item has been updated based at least in part on the comparison of the first checksum to the second checksum; and in accordance with the determination that the data item has been updated, sending to the client device a reply indicating that the data item has been updated; wherein the reply indicating that the data item has been updated includes a request for a first plurality of identifiers, each identifier in the first plurality of identifiers corresponding to a component in a first plurality of components of the data item, the method further comprising; receiving a message from the client device, the first plurality of identifiers comprising a part of the message; in response to the message, comparing the first plurality of identifiers received in the message from the client device to a second plurality of identifiers, each identifier in the second plurality of identifiers being associated with a component in a second plurality of components of the data item; determining a respective identifier in the second plurality of identifiers that is not in the first plurality of identifiers; and in response to determining the respective identifier, sending a respective component that is associated with the respective identifier to the client device and sending the second checksum to the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 16)
-
-
10. A server system for updating a local database, comprising:
-
a memory; one or more processors; and one or more programs, wherein the one or more programs are stored at the memory and are configured to be executed by the one or more processors, the one or more programs including instructions configured to cause the one or more processors to; receive a first request for a data item from a client device, wherein the first request includes an identifier of the data item; in response to the first request; calculate a first checksum of the data item; send the data item and the first checksum to the client device, for storage in a local database at the client device, such that the client device does not compute a checksum of the data item; receive a second request for the data item from the client device, wherein the second request includes the identifier of the data item and the first checksum previously computed by the server system; in response to the second request; calculate a second checksum of the data item; compare the first checksum to the second checksum; determine that the data item has been updated based at least in part on the comparison of the first checksum to the second checksum; and in accordance with the determination that the data item has been updated, send to the client device a reply indicating that the data item has been updated; wherein the reply indicating that the data item has been updated includes a request for a first plurality of identifiers, each identifier in the first plurality of identifiers corresponding to a component in a first plurality of components of the data item, the method further comprising; receiving a message from the client device, the first plurality of identifiers comprising a part of the message; in response to the message, comparing the first plurality of identifiers received in the message from the client device to a second plurality of identifiers, each identifier in the second plurality of identifiers associated with a component in a second plurality of components of the data item; determining a respective identifier in the second plurality of identifiers that is not in the first plurality of identifiers; and in response to determining the respective identifier, sending a respective component that is associated with the respective identifier to the client device and sending the second checksum to the client device. - View Dependent Claims (11, 12, 17)
-
-
13. A non-transitory computer readable storage medium storing one or more programs for execution by one or more processors of a computer system, the one or more programs comprising instructions which, when executed by the one or more processors, cause the computer system to:
-
receive a first request for a data item from a client device on a client device, wherein the first request includes an identifier of the data item; in response to the first request; calculate a first checksum of the data item; send the data item and the first checksum to the client device, for storage in a local database at the client device, such that the client device does not compute a checksum of the data item; receive a second request for the data item from the client device, wherein the second request includes the identifier of the data item and the first checksum previously computed by the computer system; in response to the second request; calculate a second checksum of the data item; compare the first checksum to the second checksum; determine that the data item has been updated based at least in part on the comparison of the first checksum to the second checksum; and in accordance with the determination that the data item has been updated, send to the client device a reply indicating that the data item has been updated; wherein the reply indicating that the data item has been updated includes a request for a first plurality of identifiers, each identifier in the first plurality of identifiers corresponding to a component in a first plurality of components of the data item, the method further comprising; receiving a message from the client device, the first plurality of identifiers comprising a part of the message; in response to the message, comparing the first plurality of identifiers to a second plurality of identifiers, each identifier in the second plurality of identifiers being associated with a component in a second plurality of components of the data item; determining a respective identifier in the second plurality of identifiers that is not in the first plurality of identifiers; and in response to determining the respective identifier, sending a respective component that is associated with the respective identifier to the client device and sending the second checksum to the client device. - View Dependent Claims (14, 15, 18)
-
Specification