IP Library Patent Application 14621865
Patent Application
App. No. 14/621,865

TECHNIQUES FOR HOT SNAPSHOTS FOR MESSAGE SYNCING

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 None
App. No.
14/621,865
Abstract

Techniques for hot snapshotting for message syncing are described. An apparatus may comprise a network component and a snapshot component. The network component may be operative to receiving an incoming update. The snapshot component may be operative to retrieve a messaging snapshot for a user associated with the incoming update; identify a messaging thread corresponding to the incoming update; apply the incoming update to the messaging thread; determining that a number of messaging threads stored in the messaging snapshot is greater than a thread storage limit for the messaging snapshot; identify a least-recently-updated messaging thread currently stored in the messaging snapshot; and remove the least-recently updated messaging thread from the messaging snapshot.

Claims (75)

1 . A computer-implemented method, comprising:

receiving an incoming update at a snapshot component;

retrieving a messaging snapshot for a user associated with the incoming update;

identifying a messaging thread corresponding to the incoming update;

applying the incoming update to the messaging thread;

determining that a number of messaging threads stored in the messaging snapshot is greater than a thread storage limit for the messaging snapshot;

identifying a least-recently-updated messaging thread currently stored in the messaging snapshot; and

removing the least-recently updated messaging thread from the messaging snapshot.

2 . The method of claim 1 , the incoming update received from a user update queue associated with the user, wherein the incoming update is received from the update queue in response to the update queue determining that the incoming update is associated with an incoming user sequence number higher than a current user sequence number associated with the snapshot component at the update queue.

3 . The method of claim 1 , comprising:

receiving a messaging application request from a messaging application on a device, the messaging application request indicating at least one of that the messaging application is performing an initial setup and that the messaging application is further out of date than supported by an update queue for the messaging application; and

transmitting the messaging snapshot to the messaging application.

4 . The method of claim 1 , the messaging snapshot associated with a discussion thread, the incoming update received from a discussion thread update queue, further comprising:

receiving a discussion thread join request from a messaging endpoint, the discussion thread join request indicating that an additional user is joining the discussion thread; and

transmitting the messaging snapshot to the messaging application.

5 . The method of claim 1 , the thread storage limit for the messaging snapshot for the user set higher than a default thread storage limit based on an identification of a high rate of messaging activity by the user or the thread storage limit for the messaging snapshot for the user set lower than a default message store limit based on an identification of a low rate of messaging activity by the user.

6 . The method of claim 1 , further comprising:

determining that the messaging thread is not currently stored in the messaging snapshot;

retrieving at least a portion of the messaging thread from a message archive;

storing the retrieved portion of the messaging thread in the messaging snapshot; and

applying the incoming update to the messaging thread.

7 . The method of claim 1 , further comprising:

determining that the messaging thread is not currently stored in the messaging snapshot;

retrieving at least a portion of the messaging thread from a message archive, the retrieved portion associated with a current archive sequence number;

determining that the current archive sequence number is less than a current snapshot sequence number;

retrieving one or more additional updates based on a difference between a current archive sequence number and the current snapshot sequence number;

updating the retrieved portion by applying the one or more updates to the retrieved portion;

storing the updated retrieved portion in the messaging snapshot; and

applying the incoming update to the messaging thread based on the updated retrieved portion.

8 . The method of claim 1 , further comprising:

determining that the messaging thread is not currently stored in the messaging snapshot;

retrieving at least a portion of the messaging thread from a message archive, the retrieved portion associated with a current archive sequence number;

determining that the current archive sequence number is greater than a current snapshot sequence number;

storing the retrieved portion in the messaging snapshot;

receiving additional updates; and

skipping one or more of the additional updates based on the skipped one or more additional updates being associated with sequence numbers less than or equal to the current archive sequence number.

9 . An apparatus, comprising:

a processor circuit on a device;

a network component operative on the processor circuit to receive an incoming update; and

a snapshot component operative on the processor circuit to retrieve a messaging snapshot for a user associated with the incoming update; identify a messaging thread corresponding to the incoming update; apply the incoming update to the messaging thread; determining that a number of messaging threads stored in the messaging snapshot is greater than a thread storage limit for the messaging snapshot; identify a least-recently-updated messaging thread currently stored in the messaging snapshot; and remove the least-recently updated messaging thread from the messaging snapshot.

10 . The apparatus of claim 9 , the incoming update received from a user update queue associated with the user, wherein the incoming update is received from the update queue in response to the update queue determining that the incoming update is associated with an incoming user sequence number higher than a current user sequence number associated with the snapshot component at the update queue.

11 . The apparatus of claim 9 , the thread storage limit for the messaging snapshot for the user set higher than a default thread storage limit based on an identification of a high rate of messaging activity by the user or the thread storage limit for the messaging snapshot for the user set lower than a default message store limit based on an identification of a low rate of messaging activity by the user.

12 . The apparatus of claim 9 , the snapshot component operative to determine that the messaging thread is not currently stored in the messaging snapshot; retrieve at least a portion of the messaging thread from a message archive; store the retrieved portion of the messaging thread in the messaging snapshot; and apply the incoming update to the messaging thread.

13 . The apparatus of claim 9 , the snapshot component operative to determine that the messaging thread is not currently stored in the messaging snapshot; retrieve at least a portion of the messaging thread from a message archive, the retrieved portion associated with a current archive sequence number; determine that the current archive sequence number is less than a current snapshot sequence number; retrieve one or more additional updates based on a difference between a current archive sequence number and the current snapshot sequence number; update the retrieved portion by applying the one or more updates to the retrieved portion; store the updated retrieved portion in the messaging snapshot; and apply the incoming update to the messaging thread based on the updated retrieved portion.

14 . The apparatus of claim 9 , the snapshot component operative to determine that the messaging thread is not currently stored in the messaging snapshot; retrieve at least a portion of the messaging thread from a message archive, the retrieved portion associated with a current archive sequence number; determine that the current archive sequence number is greater than a current snapshot sequence number; store the retrieved portion in the messaging snapshot; receive additional updates; and skip one or more of the additional updates based on the skipped one or more additional updates being associated with sequence numbers less than or equal to the current archive sequence number.

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

receive an incoming update at a snapshot component;

retrieve a messaging snapshot for a user associated with the incoming update;

identify a messaging thread corresponding to the incoming update;

apply the incoming update to the messaging thread;

determine that a number of messaging threads stored in the messaging snapshot is greater than a thread storage limit for the messaging snapshot;

identify a least-recently-updated messaging thread currently stored in the messaging snapshot; and

remove the least-recently updated messaging thread from the messaging snapshot.

16 . The computer-readable storage medium of claim 15 , the incoming update received from a user update queue associated with the user, wherein the incoming update is received from the update queue in response to the update queue determining that the incoming update is associated with an incoming user sequence number higher than a current user sequence number associated with the snapshot component at the update queue.

17 . The computer-readable storage medium of claim 15 , the thread storage limit for the messaging snapshot for the user set higher than a default thread storage limit based on an identification of a high rate of messaging activity by the user or the thread storage limit for the messaging snapshot for the user set lower than a default message store limit based on an identification of a low rate of messaging activity by the user.

18 . The computer-readable storage medium of claim 15 , comprising further instructions that, when executed, cause a system to:

determine that the messaging thread is not currently stored in the messaging snapshot;

retrieve at least a portion of the messaging thread from a message archive;

store the retrieved portion of the messaging thread in the messaging snapshot; and

apply the incoming update to the messaging thread.

19 . The computer-readable storage medium of claim 15 , comprising further instructions that, when executed, cause a system to:

determine that the messaging thread is not currently stored in the messaging snapshot;

retrieve at least a portion of the messaging thread from a message archive, the retrieved portion associated with a current archive sequence number;

determine that the current archive sequence number is less than a current snapshot sequence number;

retrieve one or more additional updates based on a difference between a current archive sequence number and the current snapshot sequence number;

update the retrieved portion by applying the one or more updates to the retrieved portion;

store the updated retrieved portion in the messaging snapshot; and

apply the incoming update to the messaging thread based on the updated retrieved portion.

20 . The computer-readable storage medium of claim 15 , comprising further instructions that, when executed, cause a system to:

determining that the messaging thread is not currently stored in the messaging snapshot;

retrieving at least a portion of the messaging thread from a message archive, the retrieved portion associated with a current archive sequence number;

determining that the current archive sequence number is greater than a current snapshot sequence number;

storing the retrieved portion in the messaging snapshot;

receiving additional updates; and

skipping one or more of the additional updates based on the skipped one or more additional updates being associated with sequence numbers less than or equal to the current archive sequence number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2017
From: JENKINS, SIMON JACK; SEDGWICK, JAMES MINTURN; RILEY, JOHN REED; JENKS, JASON CURTIS; IYER, RAHUL
To: FACEBOOK, INC.
Reel/Frame 042406/0746 →