IP Library Granted Patent US 11,599,545
Granted Patent B2
US 11,599,545 · App. 16/795,104 · Granted Mar 7, 2023

Stream retention in a data storage system

Inventors: Mikhail Danilov (Saint Petersburg, RU); Igor Medvedev (Seattle, WA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/24568G06F16/1734G06F16/2228G06F16/2322G06F16/254
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 11,599,545
App. No.
16/795,104
Granted
Mar 7, 2023
Kind
B2
Abstract

Stream retention in a data storage system is described herein. A method as described herein can include receiving, by a device operatively coupled to a processor, a hold for a portion of a data stream, wherein the data stream comprises respective events indexed by time, and wherein the portion of the data stream is bounded by a first event of the data stream that is associated with a first time and a second event of the data stream that is associated with a second time; generating, by the device, a synthetic stream comprising the portion of the data stream; and preventing, by the device, events of the data stream that are included in the synthetic stream from alteration.

Claims (49)

1. A data storage system, comprising:

a memory that stores computer executable components; and

a processor that executes computer executable components stored in the memory, wherein the computer executable components comprise:

a hold processing component that receives a command to implement a hold on a portion of a data stream, wherein the data stream comprises respective events indexed by time, and wherein the portion of the data stream is bounded by a first event of the data stream that is associated with a first time and a second event of the data stream that is associated with a second time;

a stream generation component that constructs a synthetic stream from the portion of the data stream;

a data retention component that prevents alteration of events of the data stream that are included in the synthetic stream; and

a truncation component that, in response to a truncation of the data stream being initiated, causes an event, of the respective events that are associated with the hold, to be hidden from the data stream, wherein the truncation component preserves the event in the synthetic stream.

2. The data storage system of claim 1 , wherein the command is a first command to implement a first hold on a first portion of the data stream, and wherein the hold processing component receives a second command to implement a second hold on a second portion of the data stream bounded by a third event of the data stream that is associated with a third time and a fourth event of the data stream that is associated with a fourth time.

3. The data storage system of claim 2 , wherein the synthetic stream is a first synthetic stream, and wherein the stream generation component constructs a second synthetic stream from the second portion of the data stream.

4. The data storage system of claim 3 , wherein the data retention component prevents alteration of an event of the data stream that is included in the first synthetic stream and the second synthetic stream pending removal of the first synthetic stream and the second synthetic stream.

5. The data storage system of claim 1 , wherein the hold is a first hold, and wherein the computer executable components further comprise:

a hold logging component that maintains information relating to respective holds implemented on the data stream, the respective holds comprising the first hold.

6. The data storage system of claim 5 , wherein the computer executable components further comprise:

a hold reporting component that provides the information relating to the respective holds to a requesting system in response to receiving a request from the requesting system.

7. The data storage system of claim 1 , wherein the command is a first command, wherein the hold processing component receives a second command to remove the hold on the portion of the data stream, and wherein the stream generation component removes the synthetic stream in response to the hold on the portion of the data stream being removed.

8. A method, comprising:

receiving, by a device operatively coupled to a processor, a hold for a portion of a data stream, wherein the data stream comprises respective events indexed by time, and wherein the portion of the data stream is bounded by a first event of the data stream that is associated with a first time and a second event of the data stream that is associated with a second time;

generating, by the device, a synthetic stream comprising the portion of the data stream;

preventing, by the device, events of the data stream that are included in the synthetic stream from alteration; and

preserving, by the device in response to a truncation of the data stream being initiated, an event, of the respective events that are associated with the hold, in the synthetic stream while removing the event from the data stream.

9. The method of claim 8 , wherein the command is a first command, and wherein the method further comprises:

receiving, by the device, a second command to remove the hold; and

removing the synthetic stream in response to the hold being removed.

10. The method of claim 8 , wherein the hold is a first hold for a first portion of the data stream, and wherein the method further comprises:

receiving, by the device, a second hold for a second portion of the data stream, wherein the second portion of the data stream is bounded by a third event of the data stream that is associated with a third time and a fourth event of the data stream that is associated with a fourth time.

11. The method of claim 10 , wherein the synthetic stream is a first synthetic stream, and wherein the method further comprises:

constructing, by the device, a second synthetic stream from the second portion of the data stream.

12. The method of claim 11 , further comprising:

preventing, by the device, alteration of an event of the data stream that is included in the first synthetic stream and the second synthetic stream pending removal of the first synthetic stream and the second synthetic stream.

13. The method of claim 8 , wherein the hold is a first hold, and wherein the method further comprises:

recording, by the device, information relating to respective holds implemented on the data stream, wherein the respective holds comprise the first hold.

14. The method of claim 13 , further comprising:

providing, by the device in response to receiving a request from a requesting system, the information relating to the respective holds to the requesting system.

15. A non-transitory machine-readable storage medium comprising computer executable instructions that, when executed by a processor of a data storage system, facilitate performance of operations, the operations comprising:

initiating a hold for a portion of a data stream, wherein the data stream comprises respective events indexed by time, and wherein the portion of the data stream is bounded by a first event of the data stream that is associated with a first time and a second event of the data stream that is associated with a second time;

adding the portion of the data stream to a synthetic data stream;

preventing alteration of events of the data stream that are included in the synthetic data stream; and

in response to a pruning operation for the data stream being initiated, removing an event, of the respective events that are associated with the hold, from view within the data stream while preserving the event in the synthetic data stream.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the operations further comprise:

discarding the synthetic data stream in response to the hold being removed.

17. The non-transitory machine-readable storage medium of claim 15 , wherein the hold is a first hold for a first portion of the data stream, wherein the synthetic data stream is a first synthetic data stream, and wherein the operations further comprise:

initiating a second hold for a second portion of the data stream, wherein the second portion of the data stream is bounded by a third event of the data stream that is associated with a third time and a fourth event of the data stream that is associated with a fourth time; and

adding the second portion of the data stream to a second synthetic data stream.

18. The non-transitory machine-readable storage medium of claim 17 , wherein the operations further comprise:

preventing alteration of events of the data stream that are included in the first synthetic data stream and the second synthetic data stream pending the first synthetic data stream and the second synthetic data stream being discarded.

19. The non-transitory machine-readable medium of claim 15 , wherein the hold is a first hold, and wherein the operations further comprise:

recording information relating to respective holds implemented on the data stream, the respective holds comprising the first hold.

20. The non-transitory machine-readable medium of claim 19 , wherein the operations further comprise:

in response to receiving a request from a requesting system, transferring information relating to the respective holds to the requesting system.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 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 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
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 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2020
From: DANILOV, MIKHAIL; MEDVEDEV, IGOR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051862/0784 →