IP Library Granted Patent US 12,099,513
Granted Patent B2
US 12,099,513 · App. 17/152,558 · Granted Sep 24, 2024

Ordered event stream event annulment in an ordered event stream storage system

Inventors: Mikhail Danilov (Saint Petersburg, RU); Maksim Vazhenin (Saint Petersburg, RU)
Assignees: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
G06F16/25G06F9/542G06F16/23G06F16/27
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 12,099,513
App. No.
17/152,558
Granted
Sep 24, 2024
Kind
B2
Abstract

Annulment of events written into an ordered event stream (OES) storage system is disclosed. Events can be written to one or more segments of an OES. An event can be invalid and overwriting the event can be desirable. A stream-cut event can be employed to facilitate annulment of the event via altering a portion of a segment of an OES. The stream-cut event can be durable. Annulment can avoid rewriting an entire stream and/or complicating a stream by adding mitigating events without overwriting invalid events. In an aspect, annulment can comprise moving a write cursor according to a stream-cut event. The annulment can be lossy or lossless. In an embodiment, annulment can be performed in single tier OES storage system. In another embodiment, multi-tier OES storage systems can facilitate annulment.

Claims (33)

1. A system, comprising:

a processor; and

a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising:

determining a first progress point of an event of events stored via a segment of an ordered event stream;

determining a second progress point of a stream-cut event, wherein the stream-cut event indicates a progress point in more than one parallel segment of the ordered event stream, wherein the stream-cut event is generated based on a determinable input value, wherein respective segments of the ordered event stream are associated with respective processing instances, as a result of which increasing a number of segments in the ordered event stream allows additional processing instances to be engaged, which increases a key space associated with the ordered event stream, and wherein the key space is symmetrically or asymmetrically divided into respective ranges corresponding to the respective segments of the ordered event stream;

updating a write cursor to a third progress point, wherein the second progress point and the third progress point are respective earlier progress points than the first progress point; and

facilitating altering the ordered event stream by altering at least one of the events occurring from the third progress point, wherein the altering comprises annulment of the at least one of the events, and wherein the at least one of the events is of a first type of storage that balances performance and cost of storing the events in favor of increasing the performance or of a second type of storage that balances the performance and the cost of storing the events in favor of reducing the cost.

2. The system of claim 1 , wherein the updating the write cursor to the third progress point results in the write cursor being updated to the second progress point.

3. The system of claim 1 , wherein the more than one parallel segment of the ordered event stream comprises the segment storing the events.

4. The system of claim 1 , wherein the stream-cut event indicates the second progress point in a first ordered event storage system storage component tier, and wherein the write cursor, prior to the updating the write cursor, indicates another progress point in the first ordered event storage system storage component tier.

5. The system of claim 1 , wherein the stream-cut event indicates the second progress point in a second ordered event storage system storage component tier, wherein the write cursor, prior to the updating the write cursor, indicates another progress point in a first ordered event storage system storage component tier, and wherein the first ordered event storage system storage component tier is a different tier than the second ordered event storage system storage component tier.

6. The system of claim 5 , wherein the updating the write cursor results in the write cursor being updated to the third progress point in the first ordered event storage system storage component tier, and wherein the second ordered event storage system storage component tier remains unchanged.

7. The system of claim 5 , wherein the updating the write cursor results in the write cursor being updated to the third progress point in the first ordered event storage system storage component tier, and wherein the second ordered event storage system storage component tier is updated.

8. The system of claim 1 , wherein the facilitating the altering the ordered event stream comprises writing new events from the third progress point.

9. The system of claim 1 , wherein the facilitating the altering the ordered event stream comprises rewriting old events from the third progress point.

10. The system of claim 9 , wherein the rewriting the old events comprises buffering the old events, determining that an old event of the old events satisfies a rule relating to event validity, and rewriting the old event to the ordered event stream from the third progress point.

11. The system of claim 9 , wherein the rewriting the old events comprises determining that an old event of the old events satisfies a rule relating to event validity and advancing the write cursor to a next event from the third progress point.

12. A method, comprising:

receiving, by system comprising a processor, a first progress point of an event of events stored via a segment of an ordered event stream of an ordered event stream storage system, wherein the ordered event stream storage system is associated with a first type of storage that balances performance and cost of storing the events by weighting the performance greater than the cost and a second type of storage that balances the performance and the cost of storing the events by weighting the cost greater than the performance;

determining, by the system, a second progress point of a stream-cut event, wherein the stream-cut event indicates at least one progress point in at least one segment of the ordered event stream, wherein the stream-cut event is generated based on a determinable input value, wherein respective segments of the ordered event stream are associated with respective processing instances, wherein increasing a number of segments in the ordered event stream allows additional processing instances to be engaged, which increases a key space associated with the ordered event stream, and wherein the key space is symmetrically divided into respective ranges corresponding to the at least one segment and one or more additional segments of the ordered event stream;

pointing, by the system, a write cursor to a third progress point, wherein the second progress point and the third progress point are respective earlier progress points than the first progress point, resulting in an updated write cursor; and

overwriting, by the system, from the third progress point, the ordered event stream, resulting in at least one inappropriate event occurring from the third progress point being annulled.

13. The method of claim 12 , wherein the pointing the write cursor comprises the third progress point being a same progress point as the second progress point.

14. The method of claim 12 , wherein the pointing the write cursor is based on the write cursor indicating a progress point in a first storage tier of the ordered event stream storage system, the second progress point of the stream-cut event being in a second storage tier of the ordered event stream storage system, and the first storage tier and the second storage tier being different storage tiers of the ordered event stream storage system.

15. The method of claim 12 , wherein the pointing the write cursor is based on the write cursor indicating a progress point in a first storage tier of the ordered event stream storage system, the second progress point of the stream-cut event being in a second storage tier of the ordered event stream storage system, and the first storage tier and the second storage tier being a same storage tier of the ordered event stream storage system.

16. The method of claim 12 , wherein the overwriting results in lossy annulment for the event.

17. The method of claim 12 , wherein the overwriting results in lossless annulment for the event.

18. A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

determining a first progress point of an event stored via a segment of an ordered event stream of an ordered event stream storage system, wherein the ordered event stream storage system is associated with a first type of storage that balances performance and cost of storing the event in favor of enhancing the performance and a second type of storage that balances the performance and the cost of storing the event in favor of reducing the cost;

determining a second progress point of a stream-cut event, wherein the stream-cut event indicates one or more progress points in one or more segments of the ordered event stream, wherein the stream-cut event is generated based on a determinable input value, wherein respective segments of the ordered event stream are associated with respective processing instances such that increasing a number of segments in the ordered event stream allows additional processing instances to be engaged, which increases a key space associated with the ordered event stream, and wherein the key space is asymmetrically divided into respective ranges corresponding to at least two segments of the ordered event stream; and

in response to updating a write cursor to a third progress point, wherein the second progress point and the third progress point are respective earlier progress points than the first progress point, resulting in an updated write cursor, annulling the segment from the third progress point, resulting in one or more invalid events occurring from the third progress point being annulled.

19. The non-transitory machine-readable medium of claim 18 , wherein the annulling is a lossy annulling of the segment.

20. The non-transitory machine-readable medium of claim 18 , wherein the annulling is a lossless annulling of the segment.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2021
From: DANILOV, MIKHAIL; VAZHENIN, MAKSIM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054957/0691 →
Continuity (1)
Related Publication 20220229845A1 · Jul 21, 2022