8666954

Reduced Bandwidth Cache Coherency via Checksum Exchange

PublishedMarch 4, 2014
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
18 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

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

2. The method of claim 1 , wherein the reply indicating that the data item has been updated includes the updated data item and the second checksum.

3

3. The method of claim 1 , wherein: the second request further includes a third plurality of identifiers, each identifier in the third plurality of identifiers corresponding to a component of the data item, determining that the data item has been updated includes determining that a particular component of the data item is a new component; and the reply indicating that the data item has been updated includes: the new component and the second checksum.

4

4. The method of claim 1 , wherein the client device is configured to operate in an offline mode, wherein operating in the offline mode includes: accessing the data item from the local database; detecting an operation performed on the data item; writing information characterizing the operation to a write queue along with the identifier of the data item; detecting a network connection between the client device and the server system; and in response to detecting the network connection, draining the write queue to the server system.

5

5. The method of claim 4 , including, prior to calculating the second checksum of the data item: performing operations from the write queue.

6

6. The method of claim 1 , including: in response to determining that the data item has not been updated, sending a message to the client device indicating that the data item has not been updated.

7

7. The method of claim 1 , wherein the client device includes a mobile email application and the data item includes one of the list comprising: a conversation that includes a list of email messages and a thread list that includes a list of conversations.

8

8. The method of claim 1 , wherein the identifier of the data item includes a data item type indicator and a data item identifier.

9

9. The method of claim 1 , further comprising periodically receiving, by the server system, the first checksum from the client device.

10

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.

11

11. The server system of claim 10 , wherein the reply indicating that the data item has been updated includes the updated data item and the second checksum.

12

12. The server system of claim 10 , wherein: the second request further includes a third plurality of identifiers each corresponding to a component of the data item; the instructions configured to cause the one or more processors to determine that the data item has been updated include instructions configured to cause the one or more processors to determine that a particular component of the third plurality of components is a new component; and the reply indicating that the data item has been updated includes: the new component and the second checksum.

13

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.

14

14. The computer readable storage medium of claim 13 , wherein the reply indicating that the data item has been updated includes the updated data item and the second checksum.

15

15. The computer readable storage medium of claim 13 , wherein: the second request further includes a third plurality of identifiers, each identifier in the third plurality of identifiers corresponding to a component of the data item; the instructions that cause the computer system to determine that the data item has been updated includes instructions that cause the computer system to determine that a particular component of the data item is a new component; and the reply indicating that the data item has been updated includes: the new component and the second checksum.

16

16. The method of claim 1 , wherein: the first request and the second request are received from a web application on the client device; and the data item, the first checksum and the reply are sent to the web application.

17

17. The server system of claim 10 , wherein: the first request and the second request are received from a web application on the client device; and the data item, the first checksum and the reply are sent to the web application.

18

18. The computer readable storage medium of claim 13 , wherein: the first request and the second request are received from a web application on the client device; and the data item, the first checksum and the reply are sent to the web application.

Patent Metadata

Filing Date

Unknown

Publication Date

March 4, 2014

Inventors

ROBERT J. KROEGER
Derek J. Phillips

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “REDUCED BANDWIDTH CACHE COHERENCY VIA CHECKSUM EXCHANGE” (8666954). https://patentable.app/patents/8666954

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.