IP Library Granted Patent US 10,706,069
Granted Patent B2
US 10,706,069 · App. 15/198,898 · Granted Jul 7, 2020

Techniques for replication of a client database to remote devices

Inventors: Vishal Kathuria (Palo Alto, CA); Joshua Scott Evenson (Brentwood, CA); Andras Biczo (Mountain View, CA); Hong-Seok Kim (Bellevue, WA); Leigh Jonathan Henry Pauls (San Francisco, CA)
Assignee: FACEBOOK, INC.
G06F16/27G06F16/2379
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 10,706,069
App. No.
15/198,898
Granted
Jul 7, 2020
Kind
B2
Abstract

Techniques for replication of a client database to remote devices are described. In one embodiment, an apparatus may comprise a server database management component operative to receive a collection subscription command from a client device at a database synchronization system, the collection subscription command specifying an object collection; and detect a collection change for the object collection; and an update queue management component operative to register the client device for push notification with a collection update queue associated with the object collection; and add a collection update to the collection update queue, the collection update based on the collection change. Other embodiments are described and claimed.

Claims (53)

1. A computer-implemented method comprising:

receiving a subscription command from a client device at a database synchronization server, the subscription command specifying a particular object collection for which the client device wishes to receive updates, wherein the object collection is a database:

sending an object collection snapshot of the particular object collection to the client device, the object collection snapshot comprising a current state of the particular database:

subscribing the client device to an update queue, the update queue associated exclusively with the particular object collection on the database synchronization server, the subscribing indicating that changes to the particular object collection received from other client devices and added to the update queue should be sent to the client device via push notification;

receiving a change to the particular object collection from another client device;

generating an update comprising the change;

updating the database on the database synchronization server with the change;

detecting that the client device has network accessibility with the database synchronization server;

sending the collection update to the client device based on a push notification;

advancing a queue cursor for the client device past the update in the update queue; and

adding the update to the update queue for delivery to the subscribed client device.

2. The method of claim 1 , further comprising:

determining that the particular object collection is a non-existing object collection;

creating the particular object collection; and

creating the update queue.

3. The method of claim 1 , further comprising:

determining that the particular object collection is non-persisted in response to the collection subscription command; and

sending an empty object collection snapshot for the particular object collection to the client device in response to determining that the particular object collection is non-persisted.

4. The method of claim 1 , the particular object collection comprising a query object, the query object associated with a database query for the database, further comprising:

detecting the change for the particular object collection based on a performance of the database query against the database.

5. An apparatus comprising:

a processor circuit on a device;

a server database management component operative on the processor circuit to:

receive a subscription command from a client device at a database synchronization server, the subscription command specifying a particular object collection for which the client device wishes to receive updates, wherein the object collection is a database;

send an object collection snapshot of the particular object collection to the client device, the object collection snapshot comprising a current state of the particular database;

receive a change to the particular object collection from another client device; and

update the database on the database synchronization server with the change; and

an update queue management component operative to:

subscribe the client device to an update queue, the update queue associated exclusively with the particular object collection on the database synchronization server, the subscribing indicating that changes to the particular object collection added to the update queue should be sent to the client device via push notification;

generate an update comprising the change;

detect that the client device has network accessibility with the database synchronization server;

send the update to the client device based on a push notification;

advance a queue cursor for the client device past the update in the update queue; and

add the update to the update queue for delivery to the subscribed client device.

6. The apparatus of claim 5 , the particular object collection comprising a query object, the query object associated with a database query for the database, further comprising:

an update queue management component operative to:

detect the change for the particular object collection based on a performance of the database query against the database.

7. At least one non-transitory, computer-readable storage medium comprising instructions that, when executed, cause a system to:

receive a subscription command from a client device at a database synchronization server, the subscription command specifying particular object collection for which the client device wishes to receive updates, wherein the object collection is a database;

send an object collection snapshot of the particular object collection to the client device, the object collection snapshot comprising a current state of the particular database;

subscribing the client device to an update queue exclusively associated with the particular object collection on the database synchronization server, the subscribing indicating that changes to the particular object collection received from other client devices and added to the update queue should be sent to the client device via push notification;

receive a change to the particular object collection from another client device;

generate an update comprising the change;

update the database on the database synchronization server with the change;

detect that the client device has network accessibility with the database synchronization server;

send the collection update to the client device based on a push notification;

advance a queue cursor for the client device past the update in the update queue; and

add the update to the update queue for delivery to the subscribed device.

8. The computer-readable storage medium of claim 7 , comprising further instructions that, when executed, cause the system to:

receive an update associated with the particular object collection via the update queue for the particular object collection; and

update an object collection store with the update.

9. The computer-readable storage medium of claim 7 , the particular object collection comprising a query object, the query object associated with a database query for the database, comprising further instructions that, when executed, cause the system to:

detect the change for the particular object collection based on a performance of the database query against the database.

Assignments (2)
CHANGE OF NAME Recorded May 5, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059858/0387 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2017
From: KATHURIA, VISHAL; EVENSON, JOSHUA SCOTT; BICZO, ANDRAS; KIM, HONG-SEOK; PAULS, LEIGH JONATHAN HENRY
To: FACEBOOK, INC.
Reel/Frame 042930/0707 →
Continuity (1)
Related Publication 20180004828A1 · Jan 4, 2018