IP Library › Granted Patent US 11,740,831
Granted Patent B2
US 11,740,831 · App. 17/454,494 · Granted Aug 29, 2023

Storage optimization for event streaming for multiple consumers

Inventors: John Mark Clifton (Hertford, GB); Jack Philip Boad (Rainham, GB); David Jonathan Richards (Romsey, GB); Callum Peter Jackson (Romsey, GB)
Assignee: International Business Machines Corporation
G06F3/0655G06F3/0604G06F3/067
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,740,831
App. No.
17/454,494
Granted
Aug 29, 2023
Kind
B2
Abstract

Method and system are provided for storage optimization for event streaming for multiple consumers. The method provides an entire event stream for storage in a first tier storage and dynamically determines advance portions of the event stream for at least some of the consumers based on a consumer's position index in the event stream. The advance portions are portions of the event stream that will be consumed next by the consumer and the method provides the advance portions of the event stream for storage in second tier storage that has a higher performance than the first tier storage.

Claims (34)

1. A computer-implemented method for storage optimization for event streaming for multiple consumers, comprising:

providing an entire event stream for storage in a first tier storage;

dynamically determining advance portions of the event stream for at least some of the consumers based on a consumer's position index in the event stream, wherein advance portions are portions of the event stream that will be consumed next by the consumer;

optimizing a size of each advance portion for each consumer or a group of consumers, the size of each advance portion defining a number of events to be stored on an allocated volume of storage, wherein optimizing the size of each advance portion for each consumer or a group of consumers includes analyzing consumer behavior and a number of events a consumer is behind a head of the event stream to increase the size of each advance portion; and

providing the dynamically determined advance portions of the event stream for storage in a second tier storage that has a higher performance than the first tier storage.

2. The method as claimed in claim 1 , wherein optimizing the size of each advance portion further comprises:

determining a speed that a consumer is processing events and optimizing a greater size of advance portion for a consumer with a higher speed compared to other consumers.

3. The method as claimed in claim 1 , wherein optimizing the size of each advance portion further comprises:

determining a future number of consumers that need access to the advance portion in the future.

4. The method as claimed in claim 1 , further comprising:

scoring advance portions for the consumers to select the most frequently required advance portions and to accommodate overlaps of the advance portions across the consumers.

5. The method as claimed in claim 1 , further comprising:

optimizing each advance portion for a representative proportion of consumers or a group for which it is determined optimization is required.

6. The method as claimed in claim 1 , wherein providing the dynamically determined advance portions of the event stream for storage in second tier storage augments a tier adjusting storage mechanism for the advance portions.

7. A system for storage optimization for event streaming for multiple consumers, comprising:

one or more computer processors, one or more computer-readable storage media, and program instructions stored on the one or more of the computer-readable storage media for execution by at least one of the one or more processors, the program instructions causing the at least one of the one or more processors to execute:

providing an entire event stream for storage in a first tier storage;

dynamically determining advance portions of the event stream for at least some of the consumers based on a consumer's position index in the event stream, wherein advance portions are portions of the event stream that will be consumed next by the consumer;

optimizing a size of each advance portion for each consumer or a group of consumers, the size of each advance portion defining a number of events to be stored on an allocated volume of storage, wherein optimizing the size of each advance portion for each consumer or a group of consumers includes analyzing consumer behavior and a number of events a consumer is behind a head of the event stream to increase the size of each advance portion; and

providing the dynamically determined advance portions of the event stream for storage in second tier storage that has a higher performance than the first tier storage.

8. The system as claimed in claim 7 , wherein optimizing the size of each advance portion further comprises:

determining a speed that a consumer is processing events and optimizing a greater size of advance portion for a consumer with a higher speed compared to other consumers; and

determining a future number of consumers that need access to the advance portion in the future.

9. The system as claimed in claim 7 , further comprising:

scoring advance portions for the consumers to select the most frequently required advance portions and to accommodate overlaps of the advance portions across the consumers.

10. The system as claimed in claim 7 , further comprising:

optimizing each advance portion for a representative proportion of consumers or a group for which it is determined optimization is required.

11. The system as claimed in claim 7 , wherein providing the dynamically determined advance portions of the event stream for storage in second tier storage augments a tier adjusting storage mechanism for the advance portions.

12. The system as claimed in claim 7 , wherein the first tier of storage is provided by hard disk drives (HDD) and the second tier of storage is provided by solid-state drives (SSD).

13. A computer program product for storage optimization for event streaming for multiple consumers, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:

provide an entire event stream for storage in a first tier storage;

dynamically determine advance portions of the event stream for at least some of the consumers based on a consumer's position index in the event stream, wherein advance portions are portions of the event stream that will be consumed next by the consumer;

optimize a size of each advance portion for each consumer or a group of consumers, the size of each advance portion defining a number of events to be stored on an allocated volume of storage, wherein optimizing the size of each advance portion for each consumer or a group of consumers includes analyzing consumer behavior and a number of events a consumer is behind a head of the event stream to increase the size of each advance portion; and

provide the dynamically determined advance portions of the event stream for storage in second tier storage that has a higher performance than the first tier storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2021
From: CLIFTON, JOHN MARK; BOAD, JACK PHILIP; RICHARDS, DAVID JONATHAN; JACKSON, CALLUM PETER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058084/0687 →
Continuity (1)
Related Publication 20230143076A1 · May 11, 2023