# US 11,029,855 B1 · Containerized storage stream microservice

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,029,855 B1
- Document ID: US11029855B1
- Status: Granted
- Kind: B1
- Application number: 16/589,500
- Filed: 2019-10-01
- Granted: 2021-06-08
- Earliest claimed: 2019-10-01
- Assignees: DataCore Software Corporation
- Applicants: DataCore Software Corporation
- Inventors: Nicholas C. Connolly; Robert Bassett; Roni J. Putra
- Web page: https://patentgrep.com/patent/US11029855B1

## CPC

- G06F 3/0613: {in relation to throughput}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0683: {Plurality of storage devices}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 2209/5022: Workload threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A containerized stream microservice is described. The containerized stream microservice is configured to provide the functionality of volume presentation along with all related interactions including the receipt and processing of IO requests and related services. The containerized stream microservice preferably implements stream metadata in the management of storage operations, and interacts with a store to provide underlying data storage. The store, which may also be referred to as a data store, is where underlying data is stored in a persistent manner. In one example, the store is an object store.

## Claims

### Claim 1

A method for data representation comprising:
receiving write transactions directed to a given volume; and
retaining stream metadata corresponding to the write transactions, the stream metadata identifying a sequence of the write transactions according to the order in which the write transactions are received for the given volume, and identifying respective location information for each of the write transactions, the location information including object identifiers respectively corresponding to the write transactions, and the location information including offsets respectively corresponding to each of the write transactions.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
associating a stream image to the stream metadata, the stream image providing a representation of the data in the given volume for a point in time by referencing a non-contiguous subset of the sequence of write transactions referenced in the stream metadata.

### Claim 3 (depends on 1)

The method of claim 1, wherein the object identifiers include a first object identifier corresponding to a current object.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
determining whether a current write transaction would exceed a capacity of the current object;
identifying a next object and updating the stream metadata to reference the next object for the current write transaction, where it is determined that the current write transaction would exceed the capacity of the current object.

### Claim 5 (depends on 3)

The method of claim 3, further comprising:
determining where a current write transaction would exceed a capacity of the current object; and
updating the stream metadata to reference the current object for the current write transaction, where it is determined that the current write transaction would not exceed the capacity of the current object.

### Claim 6 (depends on 1)

The method of claim 1, wherein receiving the write transactions and retaining the stream metadata are performed in a containerized microservice.

### Claim 7

A non-transitory computer readable medium storing program code for providing a containerized stream microservice, the program code being executable by a processor to perform operations comprising:
receiving write transactions directed to a given volume; and
retaining stream metadata corresponding to the write transactions, the stream metadata identifying a sequence of the write transactions according to the order in which the write transactions are received for the given volume, and identifying respective location information for each of the write transactions, the location information including object identifiers respectively corresponding to the write transactions, and the location information including offsets respectively corresponding to each of the write transactions.

### Claim 8 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein the operations further comprise:
associating a stream image to the stream metadata, the stream image providing a representation of the data in the given volume for a point in time by referencing a non-contiguous subset of the sequence of write transactions referenced in the stream metadata.

### Claim 9 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein the object identifiers include a first object identifier corresponding to a current object.

### Claim 10 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the operations further comprise:
determining whether a current write transaction would exceed a capacity of the current object;
identifying a next object and updating the stream metadata to reference the next object for the current write transaction, where it is determined that the current write transaction would exceed the capacity of the current object.

### Claim 11 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the operations further comprise:
determining where a current write transaction would exceed a capacity of the current object; and
updating the stream metadata to reference the current object for the current write transaction, where it is determined that the current write transaction would not exceed the capacity of the current object.

### Claim 12 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein receiving the write transactions and retaining the stream metadata are performed in a containerized microservice.

### Claim 13

An apparatus comprising:
a processing platform including an operating system and hosting an application container and a containerized stream microservice, the containerized stream microservice being configured to:
receive write transactions directed to a given volume by the application container; and
retain stream metadata corresponding to the write transactions, the stream metadata identifying a sequence of the write transactions according to the order in which the write transactions are received for the given volume, and identifying respective location information for each of the write transactions, the location information including object identifiers respectively corresponding to the write transactions, and the location information including offsets respectively corresponding to each of the write transactions.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the object identifiers include a first object identifier corresponding to a current object.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the operations further comprise:
determining whether a current write transaction would exceed a capacity of the current object;
identifying a next object and updating the stream metadata to reference the next object for the current write transaction, where it is determined that the current write transaction would exceed the capacity of the current object.

### Claim 16 (depends on 14)

The apparatus of claim 14, wherein the operations further comprise:
determining where a current write transaction would exceed a capacity of the current object; and
updating the stream metadata to reference the current object for the current write transaction, where it is determined that the current write transaction would not exceed the capacity of the current object.

### Claim 17 (depends on 13)

The apparatus of claim 13, wherein receiving the write transactions and retaining the stream metadata are performed in a containerized microservice.
