# US 12,762,019 B2 · Backing file system with cloud object store

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

- Number: US 12,762,019 B2
- Document ID: US12762019B2
- Status: Granted
- Kind: B2
- Application number: 17/521,038
- Filed: 2021-11-08
- Published: 2023-05-11
- Granted: 2026-10-13
- Earliest claimed: 2021-11-08
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Anshul Gupta; Arjun D. Sinha; Avishek Ganguli; Dylan Dreyer; Vijay Karthik
- Web page: https://patentgrep.com/patent/US12762019B2

## CPC

- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for backing a file system with a cloud-based object store are disclosed. In some embodiments, a computer system performs operations comprising: receiving, by a user space file system, a first request to write a first set of data to a file; based on the receiving of the first request to write the first set of data to the file, writing, by the user space file system, the first set of data to the file in a cloud-based key-value object store; receiving, by the user space file system, a second request to read a second set of data from the file; and based on the receiving of the second request to read the second set of data from the file, fetching, by the user space file system, the second set of data from the file in the cloud-based key-value object store.

## Claims

### Claim 1

A computer-implemented method performed by a computer system having memory and at least one hardware processor, the computer-implemented method comprising:
receiving, by a user space file system hosted on the computer system and from an application that is hosted on the computer system, a first request to write a first set of snapshot data associated with a previously generated snapshot of a virtual machine accessible by the computer system, wherein the first request is directed to a file of the user space file system, wherein the previously generated snapshot of the virtual machine captures a point-in-time version of the virtual machine;
based on the receiving of the first request to write the first set of snapshot data to the file from the application hosted on the computer system and on a write pattern of the first set of snapshot data, writing, by the user space file system, the first set of snapshot data to a disk-based data storage on the computer system, wherein the first set of snapshot data is written to the disk-based data storage when the write pattern is in-place;
determining that a stripe in the disk-based data storage is closed as a result of the stripe being full;
in response to determining that the stripe in the disk-based data storage is closed, appending the stripe containing the first set of snapshot data to the file in a cloud-based key-value object store that is separate from the computer system that hosts the user space file system and the application;
receiving, by the user space file system, a second request to read, for recovery of the virtual machine, a second set of snapshot data from the file;
based on the receiving of the second request to read the second set of snapshot data from the file, fetching, by the user space file system, the second set of snapshot data from the file in the cloud-based key-value object store;
receiving, by the user space file system, a third request to write a third set of snapshot data to the user space file system, wherein the third set of snapshot data is stored in the memory of the computer system and wherein a write pattern of the third set of snapshot data is append-only; and
writing the third set of snapshot data directly from the memory of the computer system to the cloud-based key-value object store instead of to the disk-based data storage based on the write pattern of the third set of snapshot data being append-only.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the appending the stripe containing the first set of snapshot data to the file in the cloud-based key-value object store comprises:
writing, by the user space file system, the first set of snapshot data from the disk-based data storage to the file in the cloud-based key-value object store based at least in part on a time period after the writing of the first set of snapshot data to the disk-based data storage satisfying a threshold amount of time and being devoid of a request to write data to the file.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the disk-based data storage comprises a solid-state disk.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
storing, by the user space file system, the fetched second set of snapshot data in a cache of the disk-based data storage;
receiving, by the user space file system, a fourth request to read the second set of snapshot data from the file; and
based on the receiving of the fourth request to read the second set of snapshot data from the file, reading, by the user space file system, the second set of snapshot data from the cache of the disk-based data storage.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the appending the stripe containing the first set of snapshot data to the file in the cloud-based key-value object store comprises:
writing, by the user space file system, chunks of data to the file in the cloud-based key-value object store in parallel, the chunks of data included in the first set of snapshot data.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the appending the stripe containing the first set of snapshot data to the file in the cloud-based key-value object store comprises:
writing, by the user space file system, chunks of data to the file in the cloud-based key-value object store, wherein each chunk is referenced by a respective key in the cloud-based key-value object store.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
prefetching, by the user space file system and prior to receiving the second request, at least a minimum predefined amount of data from the cloud-based key-value object store into a read cache area of the disk-based data storage, wherein at least a portion of the minimum predefined amount of data comprises the second set of snapshot data.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising:
evicting data from the disk-based data storage to the cloud-based key-value object store in response to the disk-based data storage reaching a threshold data capacity, wherein the evicted data is devoid of a write request for a threshold amount of time.

### Claim 9

A computer system comprising:
at least one hardware processor of a managed private cloud architecture serving an organization; and
a non-transitory computer-readable medium storing executable instructions that, when executed, cause the at least one hardware processor to perform operations comprising:
receiving, by a user space file system hosted on the computer system and from an application that is hosted on the computer system, a first request to write a first set of snapshot data associated with a previously generated snapshot of a virtual machine accessible by the computer system, wherein the first request is directed to a file of the user space file system, wherein the previously generated snapshot of the virtual machine captures a point-in-time version of the virtual machine;
based on the receiving of the first request to write the first set of snapshot data to the file from the application hosted on the computer system and on a write pattern of the first set of snapshot data, writing, by the user space file system, the first set of snapshot data to a disk-based data storage on the computer system, wherein the first set of snapshot data is written to the disk-based data storage when the write pattern is in-place;
determining that a stripe in the disk-based data storage is closed as a result of the stripe being full;
in response to determining that the stripe in the disk-based data storage is closed, appending the stripe containing the first set of snapshot data to the file in a cloud-based key-value object store that is separate from the computer system that hosts the user space file system and the application;
receiving, by the user space file system, a second request to read, for recovery of the virtual machine, a second set of snapshot data from the file;
based on the receiving of the second request to read the second set of snapshot data from the file, fetching, by the user space file system, the second set of snapshot data from the file in the cloud-based key-value object store;
receiving, by the user space file system, a third request to write a third set of snapshot data to the user space file system, wherein the third set of snapshot data is stored in a memory of the computer system and wherein a write pattern of the third set of snapshot data is append-only; and
writing the third set of snapshot data directly from the memory of the computer system to the cloud-based key-value object store instead of to the disk-based data storage based on the write pattern of the third set of snapshot data being append-only.

### Claim 10 (depends on 9)

The computer system of claim 9, wherein the appending the stripe containing the first set of snapshot data to the file in the cloud-based key-value object store comprises:
writing, by the user space file system, the first set of snapshot data from the disk-based data storage to the file in the cloud-based key-value object store based at least in part on a time period after the writing of the first set of snapshot data to the disk-based data storage satisfying a threshold amount of time and being devoid of a request to write data to the file.

### Claim 11 (depends on 9)

The computer system of claim 9, wherein the disk-based data storage comprises a solid-state disk.

### Claim 12 (depends on 9)

The computer system of claim 9, wherein the operations further comprise:
storing, by the user space file system, the fetched second set of snapshot data in a cache of the disk-based data storage;
receiving, by the user space file system, a fourth request to read the second set of snapshot data from the file; and
based on the receiving of the fourth request to read the second set of snapshot data from the file, reading, by the user space file system, the second set of snapshot data from the cache of the disk-based data storage.

### Claim 13 (depends on 9)

The computer system of claim 9, wherein the appending the stripe containing the first set of snapshot data to the file in the cloud-based key-value object store comprises:
writing, by the user space file system, chunks of data to the file in the cloud-based key-value object store in parallel, the chunks of data included in the first set of snapshot data.

### Claim 14

A non-transitory machine-readable storage medium tangibly embodying a set of instructions that, when executed by at least one hardware processor of a computer system, causes the at least one hardware processor to perform operations comprising:
receiving, by a user space file system hosted on the computer system and from an application that is hosted on the computer system, a first request to write a first set of snapshot data associated with a previously generated snapshot of a virtual machine accessible by the computer system, wherein the first request is directed to a file of the user space file system, wherein the previously generated snapshot of the virtual machine captures a point-in-time version of the virtual machine;
based on the receiving of the first request to write the first set of snapshot data to the file from the application hosted on the computer system and on a write pattern of the first set of snapshot data, writing, by the user space file system, the first set of snapshot data to a disk-based data storage on the computer system, wherein the first set of snapshot data is written to the disk-based data storage when the write pattern is in-place;
determining that a stripe in the disk-based data storage is closed as a result of the stripe being full;
in response to determining that the stripe in the disk-based data storage is closed, appending the stripe containing the first set of snapshot data to the file in a cloud-based key-value object store that is separate from the computer system that hosts the user space file system and the application;
receiving, by the user space file system, a second request to read, for recovery of the virtual machine, a second set of snapshot data from the file;
based on the receiving of the second request to read the second set of snapshot data from the file, fetching, by the user space file system, the second set of snapshot data from the file in the cloud-based key-value object store;
receiving, by the user space file system, a third request to write a third set of snapshot data to the user space file system, wherein the third set of snapshot data is stored in a memory of the computer system and wherein a write pattern of the third set of snapshot data is append-only; and
writing the third set of snapshot data directly from the memory of the computer system to the cloud-based key-value object store instead of to the disk-based data storage based on the write pattern of the third set of snapshot data being append-only.

### Claim 15 (depends on 14)

The non-transitory machine-readable storage medium of claim 14, wherein the appending the stripe containing the first set of snapshot data to the file in the cloud-based key-value object store comprises:
writing, by the user space file system, the first set of snapshot data from the disk-based data storage to the file in the cloud-based key-value object store based at least in part on a time period after the writing of the first set of snapshot data to the disk-based data storage satisfying a threshold amount of time and being devoid of a request to write data to the file.
