IP Library Granted Patent US 10,645,040
Granted Patent B2
US 10,645,040 · App. 15/858,602 · Granted May 5, 2020

Techniques for consistent writes in a split message store

Inventors: Rajesh Nishtala (Palo Alto, CA); Jason Curtis Jenks (Lynnwood, WA); Zardosht Kasheff (New York, NY); Samuel Rash (Fremont, CA)
Assignee: FACEBOOK, INC.
H04L51/046G06F16/27G06F16/31H04L67/2842
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,645,040
App. No.
15/858,602
Granted
May 5, 2020
Kind
B2
Abstract

Techniques for consistent writes in a split message store are described. In one embodiment, an apparatus may comprise a client front-end component of a messaging system operative to receive a message, the message comprising message metadata and a message body; and store the message in a message queue; and the message queue operative to initiate a storing of the message metadata in a metadata store; delay a storing of the message body in a message store until a metadata storage success indication is received from the metadata store; receive the metadata storage success indication from the metadata store; and store the message body in the message store in response to receiving the metadata storage success indication from the metadata store. Other embodiments are described and claimed.

Claims (51)

1. A computer-implemented method, comprising:

receiving a message at a messaging system, the message comprising message metadata and a message body;

initiating a storing of the message metadata in a metadata store;

delaying a storing of the message body in a message store until a metadata storage success indication is received from the metadata store, the metadata storage success indication indicating that the message metadata has successfully been stored in the metadata store;

receiving the metadata storage success indication from the metadata store; and

storing the message body in the message store in response to receiving the metadata storage success indication from the metadata store.

2. The method of claim 1 , the metadata store located on a first storage device system, the message store located on a second storage device system, the first storage device system distinct from the second storage device system.

3. The method of claim 2 , the first storage device system comprising a higher-speed storage device system than the second storage device system.

4. The method of claim 1 , further comprising:

storing the message body in the message store in response to receiving the metadata storage success indication from a secondary metadata store.

5. The method of claim 1 , further comprising:

delaying storing the message body in the message store until the metadata storage success indication is received and a metadata replicated storage success indication is received;

receiving the metadata replicated storage success indication; and

storing the message body in the message store in response to receiving the metadata storage success indication and the metadata replicated storage success indication.

6. The method of claim 5 , the metadata replicated storage success indication indicating successful replication of the message metadata to one or more secondary metadata stores.

7. The method of claim 1 , the message received as a message mutation, further comprising:

storing the message mutation in the metadata store in association with the message metadata as a temporary cache of the message mutation.

8. An apparatus, comprising:

a client front-end component of a messaging system operative to:

receive a message, the message comprising message metadata and a message body; and

store the message in a message queue; and

the message queue operative to:

initiate a storing of the message metadata in a metadata store;

delay a storing of the message body in a message store until a metadata storage success indication is received from the metadata store, the metadata storage success indication indicating that the message metadata has successfully been stored in the metadata store;

receive the metadata storage success indication from the metadata store; and

store the message body in the message store in response to receiving the metadata storage success indication from the metadata store.

9. The apparatus of claim 8 , the metadata store located on a first storage device system, the message store located on a second storage device system, the first storage device system distinct from the second storage device system.

10. The apparatus of claim 9 , the first storage device system comprising a higher-speed storage device system than the second storage device system.

11. The apparatus of claim 8 , further comprising:

the message queue operative to store the message body in the message store in response to receiving the metadata storage success indication from a secondary metadata store.

12. The apparatus of claim 8 , further comprising:

the message queue operative to delay storing the message body in the message store until the metadata storage success indication is received and a metadata replicated storage success indication is received; receive the metadata replicated storage success indication; and store the message body in the message store in response to receiving the metadata storage success indication and the metadata replicated storage success indication.

13. The apparatus of claim 12 , the metadata replicated storage success indication indicating successful replication of the message metadata to one or more secondary metadata stores.

14. The apparatus of claim 8 , the message received as a message mutation, further comprising:

the message queue operative to store the message mutation in the metadata store in association with the message metadata as a temporary cache of the message mutation.

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

receive a message at a messaging system, the message comprising message metadata and a message body;

initiate a storing of the message metadata in a metadata store;

delay a storing of the message body in a message store until a metadata storage success indication is received from the metadata store, the metadata storage success indication indicating that the message metadata has successfully been stored in the metadata store;

receive the metadata storage success indication from the metadata store; and

store the message body in the message store in response to receiving the metadata storage success indication from the metadata store.

16. The computer-readable storage medium of claim 15 , the metadata store located on a first storage device system, the message store located on a second storage device system, the first storage device system distinct from the second storage device system, the first storage device system comprising a higher-speed storage device system than the second storage device system.

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

store the message body in the message store in response to receiving the metadata storage success indication from a secondary metadata store.

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

delay storing the message body in the message store until the metadata storage success indication is received and a metadata replicated storage success indication is received;

receive the metadata replicated storage success indication; and

store the message body in the message store in response to receiving the metadata storage success indication and the metadata replicated storage success indication.

19. The computer-readable storage medium of claim 18 , the metadata replicated storage success indication indicating successful replication of the message metadata to one or more secondary metadata stores.

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

store the message mutation in the metadata store in association with the message metadata as a temporary cache of the message mutation.

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 Jan 12, 2018
From: NISHTALA, RAJESH; JENKS, JASON CURTIS; KASHEFF, ZARDOSHT; RASH, SAMUEL
To: FACEBOOK, INC.
Reel/Frame 044605/0346 →
Continuity (1)
Related Publication 20190207882A1 · Jul 4, 2019