IP Library Granted Patent US 9,223,842
Granted Patent B2
US 9,223,842 · App. 13/414,503 · Granted Dec 29, 2015

Apparatus, and associated method, for synchronizing a database

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,223,842
App. No.
13/414,503
Granted
Dec 29, 2015
Kind
B2
Abstract

An apparatus, and an associated method, facilitates synchronization of a database formed of data records. When a synchronization response to a synchronization request 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 records and to determine the individual data records that cannot be synchronized.

Claims (55)

1. A method for synchronizing data records of a device database, the method comprising:

dividing the device database into a plurality of batches of data records;

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

requesting synchronization of the given batch from a remote database server;

responsive to detecting a synchronization response for the given batch indicates, for the given batch, that the remote database server 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, performing the following:

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

based on dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data records, 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 database server 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 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 records 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 database with unsynchronizable data records 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 database 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 records of a device database, the device comprising:

memory storing the device database; and

a processor configured to at least:

divide the device database into a plurality of batches of data records;

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

requesting synchronization of the given batch from a remote database server;

responsive to detecting a synchronization response for the given batch indicates, for the given batch, that the remote database server 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 records;

based on dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data records, 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 database server 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;

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 records 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 database with unsynchronizable data records 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 database 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 records of a device database, the instructions comprising:

dividing the device database into a plurality of batches of data records;

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

requesting synchronization of the given batch from a remote database server; and

responsive to detecting a synchronization response for the given batch indicates, for the given batch, that the remote database server 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 records;

based on dividing each of the one or more batches marked as unsynchronizable into a plurality of subportions of data records, 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 database server 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 records 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 database with unsynchronizable data records 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 database is completed exclusive of the one or more batches marked as unsynchronizable.

Assignments (3)
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 →
CHANGE OF NAME Recorded Mar 17, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 032459/0207 →