IP Library Granted Patent US 9,367,599
Granted Patent B2
US 9,367,599 · App. 12/603,453 · Granted Jun 14, 2016

Search based specification for data synchronization

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 9,367,599
App. No.
12/603,453
Granted
Jun 14, 2016
Kind
B2
Abstract

Systems and methods for a search based specification for data synchronization are described. In some embodiments, a method to synchronize information of a client device from a server includes, at a client, receiving a communication from a server to synchronize information between the client device and the server, wherein the information is selected from all application data on the server by a search mechanism in accordance with one or more one or more search criteria, and the information is arranged in an order prior to transmission from the server; and performing operations to synchronize application data on the client in accordance with at least portions of the information received from the server. Other embodiments are also described.

Claims (64)

1. A method to synchronize information between a first computing device and a second computing device, comprising:

at the first computing device having one or more processors and memory storing programs for execution by the one or more processors:

obtaining search criteria for synchronizing electronic messages between the first computing device and the second computing device, wherein:

the search criteria relate to labels associated with the electronic messages, wherein the labels are distinct from contents of the electronic messages;

the search criteria include:

a first set of search criteria, the first set of search criteria including a criterion specifying that the first set of electronic messages include electronic messages associated with labels in a first set of one or more labels, wherein within the first set of search criteria the labels in the first set of one or more labels are ordered in a first order, and

a second set of search criteria different from the first set of search criteria, the second set of search criteria including a criterion specifying that the second set of electronic messages include electronic messages associated with labels in a second set of one or more labels, wherein within the second set of search criteria the labels in the second set of one or more labels are ordered in a second order;

the first set of search criteria is associated with a first time-frame; and

the second set of search criteria is associated with a second time-frame that does not overlap the first time-frame;

initiating a concurrent search of (i) a first set of matching electronic messages from the first time-frame in accordance with the first set of search criteria, wherein the first set of matching electronic messages are ordered in accordance with the first order of the first set of one or more labels, and (ii) a second set of matching electronic messages from the second time-frame in accordance with the second set of search criteria, wherein the second set of matching electronic messages are ordered in accordance with the second order of the second set of one or more labels; and

concurrent with the search of the first set of matching electronic messages:

synchronizing the first set of matching electronic messages between the first computing device and the second computing device in accordance with the ordering of the first set of matching electronic messages.

2. The method of claim 1 , wherein

the first set of electronic messages and the second set of electronic messages are synchronized concurrently; and

the first set of electronic messages is synchronized in order of priority; and

the first set of electronic messages is synchronized in chronological order.

3. The method of claim 1 , wherein the first matching electronic message is synchronized while the search of the first set of matching electronic messages is still ongoing.

4. The method of claim 1 , wherein the labels further include attribute labels, which are not changeable by a user, and non-attribute labels, which are changeable by the user.

5. The method of claim 1 , wherein:

the first set of one or more labels includes at least a respective label that is not included in the second set of one or more labels.

6. The method of claim 1 , wherein the first set of electronic messages is synchronized between the first computing device and the second computing device before the second set of electronic messages is synchronized between the first computing device and the second computing device.

7. A first computing device for communicating with a second computing device, comprising:

one or more processors;

a memory coupled to the one or more processors; and

one or more programs, stored in the memory, configured for execution by the one or more processors, the one or more programs comprising instructions to:

obtain search criteria for synchronizing electronic messages between the first computing device and the second computing device, wherein:

the search criteria relate to labels associated with the electronic messages, wherein the labels are distinct from contents of the electronic messages;

the search criteria include:

a first set of search criteria, the first set of search criteria including a criterion specifying that the first set of electronic messages include electronic messages associated with labels in a first set of one or more labels, wherein within the first set of search criteria the labels in the first set of one or more labels are ordered in a first order, and

a second set of search criteria different from the first set of search criteria, the second set of search criteria including a criterion specifying that the second set of electronic messages include electronic messages associated with labels in a second set of one or more labels, wherein within the second set of search criteria the labels in the second set of one or more labels are ordered in a second order;

the first set of search criteria is associated with a first time-frame; and

the second set of search criteria is associated with a second time-frame that does not overlap the first time-frame;

initiate a concurrent search of (i) a first set of matching electronic messages from the first time-frame in accordance with the first set of search criteria, wherein the first set of matching electronic messages are ordered in accordance with the first order of the first set of one or more labels, and (ii) a second set of matching electronic messages from the second time-frame in accordance with the second set of search criteria, wherein the second set of matching electronic messages are ordered in accordance with the second order of the second set of one or more labels; and

concurrent with the search of the first set of matching electronic messages:

synchronize the first set of matching electronic messages between the first computing device and the second computing device in accordance with the ordering of the first set of matching electronic messages.

8. The first computing device of claim 7 , wherein the first set of electronic messages and the second set of electronic messages are synchronized concurrently, and

the first set of electronic messages is synchronized in order of priority; and

the first set of electronic messages is synchronized in chronological order.

9. The first computing device of claim 7 , wherein:

the first matching electronic message is synchronized while the search of the first set of matching electronic messages is still ongoing.

10. The first computing device of claim 7 , wherein the labels further include attribute labels, which are not changeable by the user, and non-attribute labels, which are changeable by the user.

11. The first computing device of claim 7 , wherein:

the first set of one or more labels includes at least a respective label that is not included in the second set of one or more labels.

12. The first computing device of claim 7 , wherein the first set of electronic messages is synchronized between the first computing device and the second computing device before the second set of electronic messages is synchronized between the first computing device and the second computing device.

13. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a first computing device with one or more processors, cause the first computing device to:

obtain search criteria for synchronizing electronic messages between the first computing device and a second computing device, wherein:

the search criteria relate to labels associated with the electronic messages, wherein the labels are distinct from contents of the electronic messages;

the search criteria include:

a first set of search criteria, the first set of search criteria including a criterion specifying that the first set of electronic messages include electronic messages associated with labels in a first set of one or more labels, wherein within the first set of search criteria the labels in the first set of one or more labels are ordered in a first order, and

a second set of search criteria different from the first set of search criteria, the second set of search criteria including a criterion specifying that the second set of electronic messages include electronic messages associated with labels in a second set of one or more labels, wherein within the second set of search criteria the labels in the second set of one or more labels are ordered in a second order;

the first set of search criteria is associated with a first time-frame; and

the second set of search criteria is associated with a second time-frame that does not overlap the first time-frame;

initiate a concurrent search of (i) a first set of matching electronic messages from the first time-frame in accordance with the first set of search criteria, wherein the first set of matching electronic messages are ordered in accordance with the first order of the first set of one or more labels, and (ii) a second set of matching electronic messages from the second time-frame in accordance with the second set of search criteria, wherein the second set of matching electronic messages are ordered in accordance with the second order of the second set of one or more labels; and

concurrent with the search of the first set of matching electronic messages:

synchronize the first set of matching electronic messages between the first computing device and the second computing device in accordance with the ordering of the first set of matching electronic messages.

14. The non-transitory computer readable storage medium of claim 13 , wherein the first set of electronic messages and the second set of electronic messages are synchronized concurrently, and

the first set of electronic messages is synchronized in order of priority; and

the first set of electronic messages is synchronized in chronological order.

15. The non-transitory computer readable storage medium of claim 13 , wherein:

the first matching electronic message is synchronized while the search of the first set of matching electronic messages is still ongoing.

16. The non-transitory computer readable storage medium of claim 13 , wherein the labels further include attribute labels, which are not changeable by the user, and non-attribute labels, which are changeable by the user.

17. The non-transitory computer readable storage medium of claim 13 , wherein:

the first set of one or more labels includes at least a respective label that is not included in the second set of one or more labels.

18. The non-transitory computer readable storage medium of claim 13 , wherein the first set of electronic messages is synchronized between the first computing device and the second computing device before the second set of electronic messages is synchronized between the first computing device and the second computing device.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2009
From: PALAY, ANDREW J.; WHYTE, AARON
To: GOOGLE INC.
Reel/Frame 023571/0460 →