IP Library Granted Patent US 9,594,820
Granted Patent B2
US 9,594,820 · App. 14/980,847 · Granted Mar 14, 2017

Apparatus, and associated method, for synchronizing a group of data objects

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,594,820
App. No.
14/980,847
Granted
Mar 14, 2017
Kind
B2
Abstract

An apparatus, and an associated method, facilitates synchronization of a group of data objects. Batches of data objects are iteratively processed. When a synchronization response indicates that the data of the request is unsynchronizable, data associated with the synchronization request is marked. A retry procedure is subsequently utilized to attempt synchronization of the marked data objects and to determine the individual data objects that cannot be synchronized.

Claims (55)

1. A method for synchronizing a group of data objects of a mobile device dataset, the method comprising:

identifying a plurality of batches of data objects related to the device dataset;

iteratively processing each given batch of the plurality of batches, comprising:

requesting synchronization of the given batch from a remote endpoint;

responsive to detecting a synchronization response for the given batch indicates, for the given batch, that the remote endpoint is unable to synchronize the given batch, marking the given batch as unsynchronizable, the synchronization response being received in response to requesting synchronization of the given batch;

after attempting to process all batches in the plurality of batches and responsive to determining there are one or more batches of the plurality of batches marked as unsynchronizable, performing the following:

dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data objects;

based on dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data objects, iteratively processing each given subportion, comprising:

requesting synchronization of the given subportion;

responsive to detecting a synchronization response for the given subportion indicates, for the given subportion, that remote endpoint is unable to synchronize the given subportion, marking the given subportion as unsynchronizable, the synchronization response being received in response to the requesting synchronization of the given subportion; and

after processing each given subportion of the plurality of subportions and responsive to determining there are one or more subportions of the plurality of subportions marked as unsynchronizable, retrying synchronization of the one or more subportions marked as unsynchronizable.

2. The method of claim 1 , wherein the retrying synchronization of the one or more subportions marked as unsynchronizable comprises sequentially attempting synchronization of each data record of the one or more subportions marked as unsynchronizable.

3. The method of claim 1 , wherein the retrying synchronization of the one or more subportions marked as unsynchronizable comprises sequentially attempting synchronization of successively smaller fractional parts of the one or more subportions marked as unsynchronizable.

4. The method of claim 1 ,

wherein the retrying synchronization of the one or more subportions marked as unsynchronizable comprises sequentially attempting synchronization of successively smaller fractional parts of the one or more subportions marked as unsynchronizable until synchronizable data objects indicated to be unsynchronizable are synchronized, and

the method further comprising, subsequent to sequentially attempting synchronization of successively smaller fractional parts, completing synchronization of the device dataset with unsynchronizable data objects of the one or more successively smaller fractional parts of the one or more subportions marked as unsynchronizable left unsynchronized and marked as unsynchronized.

5. The method of claim 1 , further comprising marking each data record in the one or more batches marked as unsynchronizable as an entry for which synchronization should not be immediately attempted.

6. The method of claim 1 , wherein synchronization of the device dataset is completed exclusive of the one or more batches marked as unsynchronizable.

7. The method of claim 1 , further comprising marking as unsynchronizable each data record in the one or more batches that is marked as unsynchronizable.

8. A device for synchronizing data objects of a device dataset, the device comprising:

memory storing the device dataset; and

a processor configured to at least:

divide the device dataset into a plurality of batches of data objects;

iteratively process each given batch of the plurality of batches, comprising:

requesting synchronization of the given batch from a remote endpoint;

responsive to detecting a synchronization response for the given batch indicates, for the given batch, that the remote endpoint is unable to obtain synchronization data to synchronize the given batch, marking the given batch as unsynchronizable, the synchronization response being received in response to requesting synchronization of the given batch;

after processing all batches in the plurality of batches and responsive to determining there are one or more batches of the plurality of batches marked as unsynchronizable, perform the following:

divide each of the one or more batches marked as unsynchronizable into a plurality of subportions of data objects;

based on dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data objects, iteratively process each given subportion, comprising:

requesting synchronization of the given subportion;

responsive to detecting a synchronization response for the given subportion indicates, for the given subportion, that remote endpoint is unable to obtain synchronization data to synchronize the given subportion, marking the given subportion as unsynchronizable, the synchronization response being received in response to requesting synchronization of the given subportion; and

after processing each given subportion of the plurality of subportions and responsive to determining there are one or more subportions of the plurality of subportions marked as unsynchronizable, retry synchronization of the one or more subportions marked as unsynchronizable.

9. The device of claim 8 , wherein, when retrying the synchronization of the one or more subportions marked as unsynchronizable, the processor is further configured to sequentially attempt synchronization of each data record of the one or more subportions marked as unsynchronizable.

10. The device of claim 8 , wherein, when retrying synchronization of the one or more subportions marked as unsynchronizable, the processor is further configured to sequentially attempt synchronization of successively smaller fractional parts of the one or more subportions marked as unsynchronizable.

11. The device of claim 8 , wherein, when retrying the synchronization of the one or more subportions marked as unsynchronizable, the processor is further configured to sequentially attempt synchronization of successively smaller fractional parts of the one or more subportions marked as unsynchronizable until synchronizable data objects indicated to be unsynchronizable are synchronized and

the processor further configured to, subsequent to sequentially attempting synchronization of successively smaller fractional parts, complete synchronization of the device dataset with unsynchronizable data objects of the one or more successively smaller fractional parts of the one or more subportions marked as unsynchronizable left unsynchronized and marked as unsynchronized.

12. The device of claim 8 , wherein the processor is further configured to mark each data record in the one or more batches marked unsynchronizable as an entry for which synchronization should not be immediately attempted.

13. The device of claim 8 , wherein synchronization of the device dataset is completed exclusive of the one or more batches marked as unsynchronizable.

14. A non-transitory computer readable medium comprising computer executable instructions for synchronizing data objects of a device dataset, the instructions comprising:

dividing the device dataset into a plurality of batches of data objects;

iteratively processing each given batch of the plurality of batches, comprising:

requesting synchronization of the given batch from a remote dataset endpoint; and

responsive to detecting a synchronization response for the given batch indicates, for the given batch, that the remote dataset endpoint is unable to obtain synchronization data to synchronize the given batch, marking the given batch as unsynchronizable, the synchronization response being received in response to requesting synchronization of the given batch;

after processing all batches in of the plurality of batches and responsive to determining there are one or more batches of the plurality of batches marked as unsynchronizable, perform the following:

dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data objects;

based on dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data objects, iteratively processing each given subportion, comprising:

requesting synchronization of the given subportion; and

responsive to detecting a synchronization response for the given subportion indicates, for the given subportion, that remote dataset endpoint is unable to obtain synchronization data to synchronize the given subportion, marking the given subportion as unsynchronizable, the synchronization response being received in response to requesting synchronization of the given subportion; and

after processing each given subportion of the plurality of subportions and responsive to determining there are one or more subportions of the plurality of subportions marked as unsynchronizable, retrying synchronization of the one or more subportions marked as unsynchronizable.

15. The non-transitory computer readable medium of claim 14 , wherein the retrying synchronization of the one or more subportions marked as unsynchronizable comprises sequentially attempting synchronization of each data record of the one or more subportions marked as unsynchronizable.

16. The non-transitory computer readable medium of claim 14 , wherein the retrying synchronization of the one or more subportions marked as unsynchronizable comprises sequentially attempting synchronization of successively smaller fractional parts of the one or more subportions marked as unsynchronizable.

17. The non-transitory computer readable medium of claim 14 , wherein the retrying synchronization of the one or more subportions marked as unsynchronizable comprises sequentially attempting synchronization of successively smaller fractional parts of the one or more subportions marked as unsynchronizable until synchronizable data objects indicated to be unsynchronizable are synchronized, and

the instructions further comprising, subsequent to sequentially attempting synchronization of successively smaller fractional parts, completing synchronization of the device dataset with unsynchronizable data objects of the one or more successively smaller fractional parts of the one or more subportions marked as unsynchronizable left unsynchronized and marked as unsynchronized.

18. The non-transitory computer readable medium of claim 14 , further comprising marking each data record in the one or more batches marked as unsynchronizable as an entry for which synchronization should not be immediately attempted.

19. The non-transitory computer readable medium of claim 14 , wherein synchronization of the device dataset is completed exclusive of the one or more batches marked as unsynchronizable.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2016
From: MAY, DARRELL REGINALD; EWANCHUK, ANDREW JOHN; CHERRY, CARL LLOYD
To: RESEARCH IN MOTION LIMITED
Reel/Frame 040272/0672 →
CHANGE OF NAME Recorded Mar 15, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 038087/0963 →