IP Library Granted Patent US 10,594,759
Granted Patent B2
US 10,594,759 · App. 15/974,922 · Granted Mar 17, 2020

Efficiently executing concurrent operations that depend on each other in a streaming data environment

Inventor: Andrei Paduroiu (Kirkland, WA)
Assignee: EMC IP Holding Company LLC
H04L65/607G06F16/2358G06F16/2379H04L9/0643H04L12/5602H04L45/7453H04L65/4069H04L65/4084H04L65/60H04L65/601H04L65/604H04L67/26H04L67/2833H04L67/2842H04N21/242H04N21/4331H04N21/845H04N21/8456H04N21/8458H04L65/608H04L65/80H04L67/1097
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,594,759
App. No.
15/974,922
Granted
Mar 17, 2020
Kind
B2
Abstract

Implementations are provided herein for accepting operations asynchronously in a particular order and efficiently committing them into an append-only log while preserving relative order. Operations that are dependent on one or more operations prior to it in the log will be guaranteed to fail, and not accepted, if any of the prior operations failed. If an operation succeeds, it is guaranteed that all operations it depended on are also successful.

Claims (69)

1. A method comprising:

dynamically receiving streaming data operations;

dynamically packaging streaming data operations into a set of sequential frames;

dynamically generating a metadata update transaction (“MUT”) associated with each frame in the sequential set of frames;

asynchronously processing a frame in the sequential set of frames by:

validating the streaming data operations of the frame against the MUT associated with the frame;

serializing operations of the frame;

sealing the frame;

sealing the MUT associated with the frame; and

sending the first frame to Tier 1 storage.

2. The method of claim 1 , wherein operations include at least one of create segment, delete segment, append to segment, seal segment, or merge segments.

3. The method of claim 1 , further comprising:

asynchronously receiving acknowledgement from Tier 1 storage that frames in the set of sequential frames have been stored successfully; and

in response to receive acknowledgement that a frame in the set of sequential frames was stored successfully:

determining a sequential placement of the frame in the set of sequential frames; and

processing any unprocessed MUT's associated with the frame and frames in the set of sequential frames earlier than the sequential placement of the frame.

4. The method of claim 3 , wherein processing an MUT includes updating a global metadata store based on the MUT.

5. The method of claim 1 , further comprising:

asynchronously receiving notification from Tier 1 storage that frames in the set of sequential frames have not been stored successfully; and

in response to receive acknowledgement that a frame in the set of sequential frames was not stored successfully:

determining a sequential placement of the frame in the set of sequential frames;

discarding any MUT's associated with the frame and frames in the set of sequential frames later than the sequential placement of the frame; and

notifying a caller of a failure associated with the frame.

6. A system comprising at least one storage device and at least one hardware processor configured to:

dynamically receive streaming data operations;

dynamically package streaming data operations into a set of sequential frames;

dynamically generate a metadata update transaction (“MUT”) associated with each frame in the sequential set of frames;

asynchronously process a frame in the sequential set of frames by:

validating the streaming data operations of the frame against the MUT associated with the frame;

serializing operations of the frame;

sealing the frame;

sealing the MUT associated with the frame; and

sending the first frame to Tier 1 storage.

7. The system of claim 6 , wherein operations include at least one of create segment, delete segment, append to segment, seal segment, or merge segments.

8. The system of claim 6 , further configured to:

asynchronously receive acknowledgement from Tier 1 storage that frames in the set of sequential frames have been stored successfully; and

in response to receive acknowledgement that a frame in the set of sequential frames was stored successfully:

determine a sequential placement of the frame in the set of sequential frames; and

process any unprocessed MUT's associated with the frame and frames in the set of sequential frames earlier than the sequential placement of the frame.

9. The system of claim 8 , wherein processing an MUT includes updating a global metadata store based on the MUT.

10. The system of claim 6 , further configured to:

asynchronously receive notification from Tier 1 storage that frames in the set of sequential frames have not been stored successfully; and

in response to receive acknowledgement that a frame in the set of sequential frames was not stored successfully:

determine a sequential placement of the frame in the set of sequential frames;

discard any MUT's associated with the frame and frames in the set of sequential frames later than the sequential placement of the frame; and

notify a caller of a failure associated with the frame.

11. A non-transitory computer readable medium with program instructions stored thereon to perform the following acts:

dynamically receiving streaming data operations;

dynamically packaging streaming data operations into a set of sequential frames;

dynamically generating a metadata update transaction (“MUT”) associated with each frame in the sequential set of frames;

asynchronously processing a frame in the sequential set of frames by:

validating the streaming data operations of the frame against the MUT associated with the frame;

serializing operations of the frame;

sealing the frame;

sealing the MUT associated with the frame; and

sending the first frame to Tier 1 storage.

12. The non-transitory computer readable medium of claim 11 , wherein operations include at least one of create segment, delete segment, append to segment, seal segment, or merge segments.

13. The non-transitory computer readable medium of claim 11 , with program instructions stored thereon to further perform the following acts:

asynchronously receiving acknowledgement from Tier 1 storage that frames in the set of sequential frames have been stored successfully; and

in response to receive acknowledgement that a frame in the set of sequential frames was stored successfully:

determining a sequential placement of the frame in the set of sequential frames; and

processing any unprocessed MUT's associated with the frame and frames in the set of sequential frames earlier than the sequential placement of the frame.

14. The non-transitory computer readable medium of claim 13 , wherein processing an MUT includes updating a global metadata store based on the MUT.

15. The non-transitory computer readable medium of claim 11 , with program instructions stored thereon to further perform the following acts:

asynchronously receiving notification from Tier 1 storage that frames in the set of sequential frames have not been stored successfully; and

in response to receive acknowledgement that a frame in the set of sequential frames was not stored successfully:

determining a sequential placement of the frame in the set of sequential frames;

discarding any MUT's associated with the frame and frames in the set of sequential frames later than the sequential placement of the frame; and

notifying a caller of a failure associated with the frame.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2018
From: PADUROIU, ANDREI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045752/0377 →