# US 12,001,293 B2 · Coordinated data backup for a container system

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

- Number: US 12,001,293 B2
- Document ID: US12001293B2
- Status: Granted
- Kind: B2
- Application number: 17/513,440
- Filed: 2021-10-28
- Published: 2023-05-04
- Granted: 2024-06-04
- Earliest claimed: 2021-10-28
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Mohammed Umair Mufti
- Web page: https://patentgrep.com/patent/US12001293B2

## CPC

- G06F 11/1464: {for networked environments}
- G06F 11/1461: {Backup scheduling policy}
- G06F 11/1484: {involving virtual machines}
- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 2201/815: Virtual
- G06F 2201/82: Solving problems relating to consistency
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A coordinated data backup for a container system that includes: determining, by a control layer of a container system, a dependency between a first service and a second service, where the first service and the second service are part of a set of services of an application; determining, based on the dependency, a backup sequence of first data associated with the first service and second data associated with the second service, where the backup sequence maintains consistency of one or more operations between the first service and the second service; and generating, based on the backup sequence, backup data comprising the first data and the second data.

## Claims

### Claim 1

A method comprising:
determining, by a control layer of a container system based on log data collected from a service mesh that handles service-to-service communications for a set of services of an application, a dependency between a first service and a second service, wherein the first service and the second service are part of the set of services of the application;
determining, based on the determination of the dependency based on the log data collected from the service mesh, a backup sequence of first data associated with the first service and second data associated with the second service, wherein the backup sequence maintains consistency of one or more operations between the first service and the second service; and
generating, based on the backup sequence, backup data comprising the first data and the second data.

### Claim 2 (depends on 1)

The method of claim 1,
wherein:
the first service executes within a first container,
the second service executes within a second container, and
the control layer comprises a controller that executes within a third container.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining that the first service issues a request to the second service;
wherein:
the request indicates an operation associated with an application programming interface (API) of the second service,
the first data and the second data are associated with the operation, and
the dependency is based on the request from the first service to the second service.

### Claim 4 (depends on 1)

The method of claim 1, wherein generating the backup data comprises:
determining that a first one or more in-flight storage operations associated with the first data have completed;
determining that a second one or more in-flight storage operations associated with the second data have completed; and
generating, based on the first one or more in-flight storage operations having completed and the second one or more in-flight storage operations having completed, a snapshot comprising the first data and the second data.

### Claim 5 (depends on 1)

The method of claim 1,
wherein the backup data is generated within a time period that is less than a timeout threshold.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first data comprises first state data associated with the first service at a first time, and wherein the second data comprises second state data associated with the second service at a second time.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
determining that a first container has failed, wherein the first service executes within the first container;
generating, responsive to determining that the first container has failed, a second container; and
creating, based on the first state data, an instance of the first service within the second container.

### Claim 8 (depends on 1)

The method of claim 1, wherein determining the dependency between the first service and the second service comprises:
determining the dependency based on a dependency graph for the application, wherein each given service of the set of service is indicated by a given node of the dependency graph, and wherein each given dependency in the dependency graph is indicated by an edge between given nodes.

### Claim 9 (depends on 1)

The method of claim 1, wherein the backup data represents an application-consistent backup of the application.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
determining, using a machine learning application, a backup schedule;
wherein:
the machine learning application uses one or more failure patterns of one or more containers of the container system,
the set of services execute within the one or more containers, and
the backup data is generated in accordance with the backup schedule.

### Claim 11

A method comprising:
determining, in a cloud computing environment based on log data collected from a service mesh that handles service-to-service communications for a set of services of an application, a dependency between a first service of the set of services and a second service of the set of services;
determining a first dataset associated with the first service;
determining a second dataset associated with the second service;
determining, based on the determination of the dependency based on the log data collected from the service mesh, a backup sequence indicative of an order in which to generate backup data for the first service and the second service; and
generating, based on the backup sequence, backup data comprising the first dataset and the second dataset.

### Claim 12 (depends on 11)

The method of claim 11,
wherein:
the first service executes within a first virtual machine within the cloud computing environment, and
the second service executes within a second virtual machine within the cloud computing environment.

### Claim 13 (depends on 11)

The method of claim 11, further comprising:
determining that the first service issues a request to the second service;
wherein:
the request indicates an operation associated with an application programming interface (API) of the second service,
the first dataset and the second dataset are associated with the operation, and
the dependency is based on the request from the first service to the second service.

### Claim 14 (depends on 11)

The method of claim 11, wherein generating the backup data comprises:
determining that a first one or more in-flight storage operations associated with the first dataset have completed;
determining that a second one or more in-flight storage operations associated with the second dataset have completed; and
generating, based on the first one or more in-flight storage operations having completed and the second one or more in-flight storage operations having completed, a snapshot comprising the first dataset and the second dataset.

### Claim 15 (depends on 11)

The method of claim 11, wherein the backup data is generated within a time period that is less than a timeout threshold.

### Claim 16 (depends on 11)

The method of claim 11, wherein the first dataset comprises first state data associated with the first service at a first time, and wherein the second dataset comprises second state data associated with the second service at a second time.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
determining that a first virtual machine has failed, wherein the first service executes within the first virtual machine;
generating, responsive to determining that the first virtual machine has failed, a second virtual machine; and
creating, based on the first state data, an instance of the first service within the second virtual machine.

### Claim 18

A system comprising:
one or more memories storing computer-executable instructions; and
one or more processors to execute the computer-executable instructions to:
determine, based on log data collected from a service mesh that handles service-to-service communications for a set of services of a containerized application, a dependency between a first service and a second service of the set of services of the containerized application;
determine, based on the determination of the dependency based on the log data collected from the service mesh, a backup sequence of first data associated with the first service and second data associated with the second service, wherein the backup sequence maintains consistency of one or more operations between the first service and the second service; and
generate, based on the backup sequence, backup data comprising the first data and the second data, the backup data representing an application-consistent backup of the containerized application.

### Claim 19 (depends on 18)

The system of claim 18,
wherein:
the first service executes within a first container, and
the second service executes within a second container.

### Claim 20 (depends on 18)

The system of claim 18, wherein the one or more processors further execute the computer-executable instructions to:
determine that the first service issues a request to the second service;
wherein:
the request indicates an operation associated with an application programming interface (API) of the second service,
the first data and the second data are associated with the operation, and
the dependency is based on the request from the first service to the second service.
