IP Library Granted Patent US 12711108
Granted Patent B2
US 12711108 · App. 17/653,011 · Granted Aug 18, 2026

Compact representation of object store workloads

Inventor: Morgan Mears (Raleigh, NC)
Assignee: NetApp, Inc.
G06F16/21
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 12711108
App. No.
17/653,011
Granted
Aug 18, 2026
Kind
B2
Abstract

Systems and techniques that facilitate compact representation of object store workloads are provided. In various embodiments, a system can access a stream of object-storage operation requests associated with an object store. In various aspects, the system can identify a set of repeating object-storage operation sequences, based on the stream of object-storage operation requests. In various instances, the system can generate a set of distribution ensembles that quantify variation of first attributes associated with respective ones of the set of repeating object-storage operation sequences. In various cases, the stream of object-storage operation requests can be considered as fully and/or bulkily representing the workload experienced by the object store. In contrast, the set of distribution ensembles can be considered as compactly representing the workload experienced by the object store (e.g., the set of distribution ensembles can take up far less memory space than the stream of object-storage operation requests).

Claims (56)

1 . A system, comprising:

a processor that executes computer-executable components stored in a computer-readable memory, the computer-executable components comprising:

an access component that accesses a stream of object-storage operation requests associated with an object store;

a bin component that segments the stream of object-storage operation requests into a set of bins, based on first attributes of the stream of object-storage operation requests;

a sequence component that identifies a set of repeating object-storage operation sequences for at least one bin in the set of bins, based on the stream of object-storage operation requests in a bin-wise fashion, wherein identifying the set of repeating object-storage operation sequences comprises:

for each bin in the set of bins, selecting an object-storage operation request that has not been assigned to a repeating object-storage operation sequence for that bin and has an object identifier; and

for each bin in the set of bins, creating a new repeating object-storage operation sequence for that bin that corresponds to the object identifier or replacing an existing repeating object-storage operation sequence with the new repeating object-storage operation sequence based on available memory slots;

a model component that generates a set of distribution ensembles for at least one bin in the set of bins that quantify variation of second attributes associated with respective ones of the set of repeating object-storage operation sequences in that bin; and

an execution component that reconfigures the object store to handle a current workload based on the set of distribution ensembles.

2 . The system of claim 1 , wherein the execution component compares the set of distribution ensembles to at least one threshold distribution associated with the object store, and wherein the execution component recommends that the object store be reconfigured when the set of distribution ensembles fail to satisfy the at least one threshold distribution.

3 . The system of claim 1 , wherein the second attributes include object sizes associated with repeating object-storage operation sequences or operation interarrival times associated with repeating object-storage operation sequences.

4 . The system of claim 1 , wherein the first attributes include time periods or dates associated with object-storage operation requests, bucket identifiers associated with object-storage operation requests, or tenant identifiers associated with object-storage operation requests.

5 . The system of claim 1 , wherein the sequence component identifies the set of repeating object-storage operation sequences by performing regex matching on the stream of object-storage operation requests.

6 . The system of claim 1 , wherein the computer-executable components further comprise:

an execution component that generates a synthetic workload based on the set of distribution ensembles and that troubleshoots the object store with the synthetic workload.

7 . The system of claim 1 , wherein replacing the existing repeating object-storage operation sequence comprises:

selecting, in response to no available memory slots, two distribution ensembles; and

merging the two distribution ensembles; and

creating a distribution ensemble that corresponds to a repeating object-storage operation sequence that replaces the existing repeating object-storage operation sequence.

8 . A computer-implemented method, comprising:

accessing, by a device operatively coupled to a processor, a stream of object-storage operation requests received by an object store from one or more client devices;

segmenting, by the device, the stream of object-storage operation requests into a set of bins, based on first attributes associated with the stream of object-storage operation requests;

identifying, by the device, a set of repeating object-storage operation sequences within the stream of object-storage operation requests for at least one bin in the set of bins in a bin-wise fashion, wherein identifying the set of repeating object-storage operation sequences comprises:

for each bin in the set of bins, selecting an object-storage operation request that has not been assigned to a repeating object-storage operation sequence for that bin and has an object identifier; and

for each bin in the set of bins, creating a new repeating object-storage operation sequence that corresponds to the object identifier or replacing an existing repeating object-storage operation sequence with the new repeating object-storage operation sequence based on available memory slots;

generating, by the device, a set of distribution ensembles for at least one bin in the set of bins that describe how second attributes associated with respective ones of the set of repeating object-storage operation sequences in that bin vary, wherein the set of distribution ensembles collectively represent a current workload of the object store; and

reconfiguring, by the device, the object store to handle the current workload based on the set of distribution ensembles.

9 . The computer-implemented method of claim 8 , further comprising:

determining, by the device, that the set of distribution ensembles fail to satisfy at least one threshold distribution; and

recommending, by the device, that the object store should undergo reconfiguration.

10 . The computer-implemented method of claim 8 , wherein the second attributes include object sizes associated with repeating object-storage operation sequences and operation interarrival times associated with repeating object-storage operation sequences.

11 . The computer-implemented method of claim 8 , wherein the first attributes include time periods or dates associated with object-storage operation requests, bucket identifiers associated with object-storage operation requests, and tenant identifiers associated with object-storage operation requests.

12 . The computer-implemented method of claim 8 , wherein the identifying the set of repeating object-storage operation sequences includes performing, by the device, object-identifier regex matching on the stream of object-storage operation requests.

13 . The computer-implemented method of claim 8 , further comprising:

troubleshooting, by the device, the object store with a synthetic workload, wherein the synthetic workload is created based on the set of distribution ensembles.

14 . The computer-implemented method of claim 8 , wherein replacing the existing repeating object-storage operation sequence comprises:

selecting, in response to no available memory slots, two distribution ensembles; and

merging the two distribution ensembles; and

creating a distribution ensemble that corresponds to a repeating object-storage operation sequence that replaces the existing repeating object-storage operation sequence.

15 . A computer program product for facilitating compact representation of object store workloads, the computer program product comprising a non-transitory computer-readable memory having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:

access a stream of object-storage operation requests of an object store;

segment the stream of object-storage operation requests into a set of bins, based on first attributes of the stream of object-storage operation requests;

identify, for at least one bin in the set of bins, a set of repeating object-storage operation sequences within the stream of object-storage operation requests for the object-storage operations requests in a bin-wise fashion, wherein identifying the set of repeating object-storage operation sequences comprises:

for each bin in the set of bins, selecting an object-storage operation request that has not been assigned to a repeating object-storage operation sequence for that bin and has an object identifier; and

for each bin in the set of bins, creating a new repeating object-storage operation sequence that corresponds to the object identifier or replacing an existing repeating object-storage operation sequence with the new repeating object-storage operation sequence based on available memory slots;

generate, for at least one bin in the set of bins, a set of distribution ensembles conveying how second attributes of the set of repeating object-storage operation sequences in that bin vary, wherein the set of distribution ensembles collectively represent a current workload of the object store, and wherein the set of distribution ensembles take up less memory than the stream of object-storage operation requests; and

reconfigure the object store to handle the current workload based on the set of distribution ensembles.

16 . The computer program product of claim 15 , wherein the program instructions are further executable to cause the processor to:

compare the set of distribution ensembles to one or more threshold distributions; and

recommend whether the object store should be reconfigured, based on the comparison.

17 . The computer program product of claim 15 , wherein the program instructions are further executable to cause the processor to:

generate a synthetic workload based on the set of distribution ensembles; and

troubleshoot the object store with the synthetic workload.

18 . The computer program product of claim 15 , wherein:

the first attributes include time periods or dates associated with object-storage operation requests, bucket identifiers associated with object-storage operation requests, and tenant identifiers associated with object-storage operation requests, and

the second attributes include object sizes associated with repeating object-storage operation sequences and operation interarrival times associated with repeating object-storage operation sequences.