IP Library Granted Patent US 12,487,887
Granted Patent B2
US 12,487,887 · App. 18/098,677 · Granted Dec 2, 2025

Fileset partitioning for data storage and management

Inventors: Looi Chow Lee (Mountain View, CA); Guilherme Vale Ferreira Menezes (San Jose, CA)
Assignee: Rubrik, Inc.
G06F11/1435G06F3/0644G06F11/0712G06F16/128G06F16/13G06F2201/84
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 12,487,887
App. No.
18/098,677
Granted
Dec 2, 2025
Kind
B2
Abstract

In one approach, filesets to be backed up are divided into partitions and snapshots are pulled for each partition. In one architecture, a data management and storage (DMS) cluster includes a plurality of peer DMS nodes and a distributed data store implemented across the peer DMS nodes. One of the peer DMS nodes receives fileset metadata for the fileset and defines a plurality of partitions for the fileset based on the fileset metadata. The peer DMS nodes operate autonomously to execute jobs to pull snapshots for each of the partitions and to store the snapshots of the partitions in the distributed data store.

Claims (46)

1 . A method, comprising:

receiving, by a data management and storage (DMS) cluster that stores data from a compute infrastructure comprising a plurality of machines, a request to take a snapshot of a fileset from a first machine of the plurality of machines, wherein the DMS cluster has N available DMS nodes, N being a variable representing an integer quantity of available DMS nodes, and wherein partitions for the fileset are undefined prior to the request to take the snapshot being received;

obtaining, by the DMS cluster, fileset metadata associated with the fileset;

determining, by the DMS cluster, whether to divide the fileset into a plurality of partitions based on the fileset metadata prior to taking the snapshot of the fileset and in response to the request to take the snapshot;

defining, by the DMS cluster, based on determining to divide the fileset in response to the request to take the snapshot, and prior to taking the snapshot of the fileset, the plurality of partitions for the fileset based on the fileset metadata;

creating, by the DMS cluster, to take the snapshot of the fileset, a plurality of jobs for taking snapshots associated with the plurality of partitions, wherein a job of the plurality of jobs corresponds to a single partition of the plurality of partitions;

executing in parallel, by the N available DMS nodes of the DMS cluster, the plurality of jobs to obtain a plurality of snapshots associated with the plurality of partitions, wherein a respective job obtains a respective snapshot of the plurality of snapshots for a respective partition of the plurality of partitions;

storing respective snapshots of the plurality of snapshots associated with the plurality of partitions in respective DMS nodes of a distributed data store implemented across the N available DMS nodes of the DMS cluster, wherein the N available DMS nodes are physically separated from one another; and

restoring in parallel, two or more partitions of the plurality of partitions of the fileset using the respective snapshots of the two or more partitions stored in the respective DMS nodes.

2 . The method of claim 1 , wherein determining whether to divide the fileset into the plurality of partitions is based on a size of the fileset.

3 . The method of claim 1 , wherein determining whether to divide the fileset into the plurality of partitions is based on a predetermined partition size.

4 . The method of claim 1 , wherein the first machine is a virtual machine, and the fileset comprises a virtual disk file.

5 . The method of claim 1 , wherein the DMS cluster maintains information identifying a correspondence between the plurality of partitions and the fileset.

6 . The method of claim 5 , wherein the information associates a first partition of the plurality of partitions to a first DMS node of the N available DMS nodes, and the first DMS node stores data associated with the first partition.

7 . The method of claim 1 , wherein the fileset includes multiple files.

8 . A data management and storage (DMS) system, wherein the DMS system comprises:

one or more processors; and

one or more non-transitory computer-readable storage media, operatively coupled with at least one of the one or more processors, comprising instructions that, when executed by the one or more processors, cause the DMS system to:

receive a request to take a snapshot of a fileset from a first machine of a plurality of machines, wherein the DMS system comprises a DMS cluster that stores data from a compute infrastructure, the compute infrastructure comprises the plurality of machines, and the DMS cluster has N available DMS nodes, N being a variable representing an integer quantity of available DMS nodes, and wherein partitions for the fileset are undefined prior to the request to take the snapshot being received;

obtain fileset metadata associated with the fileset;

determine whether to divide the fileset into a plurality of partitions based on the fileset metadata prior to taking the snapshot of the fileset and in response to the request to take the snapshot;

define, based on determining to divide the fileset in response to the request to take the snapshot and prior to taking the snapshot of the fileset, the plurality of partitions for the fileset based on the fileset metadata;

create, to take the snapshot of the fileset, a plurality of jobs for taking snapshots associated with the plurality of partitions, wherein a job of the plurality of jobs corresponds to a single partition of the plurality of partitions;

execute in parallel, by the N available DMS nodes of the DMS cluster, the plurality of jobs to obtain a plurality of snapshots associated with the plurality of partitions, wherein a respective job obtains a respective snapshot of the plurality of snapshots for a respective partition of the plurality of partitions;

store respective snapshots of the plurality of snapshots associated with the plurality of partitions in respective DMS nodes of a distributed data store implemented across the N available DMS nodes of the DMS cluster, wherein the N available DMS nodes are physically separated from one another; and

restore in parallel, two or more partitions of the plurality of partitions of the fileset using the respective snapshots of the two or more partitions stored in the respective DMS nodes.

9 . The DMS system of claim 8 , wherein determining whether to divide the fileset into the plurality of partitions is based on a size of a file of the fileset indicated by the fileset metadata.

10 . The DMS system of claim 8 , wherein determining whether to divide the fileset into the plurality of partitions is based on a predetermined partition size.

11 . The DMS system of claim 8 , wherein the first machine is a virtual machine, and the fileset comprises a virtual disk file.

12 . The DMS system of claim 8 , wherein the DMS cluster maintains information identifying a correspondence between the plurality of partitions and the fileset.

13 . The DMS system of claim 12 , wherein the information associates a first partition of the plurality of partitions to a first DMS node of the N available DMS nodes, and the first DMS node stores data associated with the first partition.

14 . The DMS system of claim 8 , wherein the fileset includes multiple files.

15 . One or more non-transitory computer-readable storage media comprising instructions that, when executed by one or more processors, cause a data management and storage (DMS) system to:

receive a request to take a snapshot of a fileset from a first machine of a plurality of machines, wherein the DMS system comprises a DMS cluster that stores data from a compute infrastructure, the compute infrastructure comprises the plurality of machines, and the DMS cluster has N available DMS nodes, N being a variable representing an integer quantity of available DMS nodes, and wherein partitions for the fileset are undefined prior to the request to take the snapshot being received;

obtain fileset metadata associated with the fileset;

determine whether to divide the fileset into a plurality of partitions based on the fileset metadata prior to taking the snapshot of the fileset and in response to the request to take the snapshot;

define, based on determining to divide the fileset in response to the request to take the snapshot and prior to taking the snapshot of the fileset, the plurality of partitions for the fileset based on the fileset metadata;

create, to take the snapshot of the fileset, a plurality of jobs for taking snapshots associated with the plurality of partitions, wherein a job of the plurality of jobs corresponds to a single partition of the plurality of partitions;

execute in parallel, by the N available DMS nodes of the DMS cluster, the plurality of jobs to obtain a plurality of snapshots associated with the plurality of partitions, wherein a respective job obtains a respective snapshot of the plurality of snapshots for a respective partition of the plurality of partitions;

store respective snapshots of the plurality of snapshots associated with the plurality of partitions in respective DMS nodes of a distributed data store implemented across the N available DMS nodes of the DMS cluster, wherein the N available DMS nodes are physically separated from one another; and

restore in parallel, two or more partitions of the plurality of partitions of the fileset using the respective snapshots of the two or more partitions stored in the respective DMS nodes.

16 . The one or more non-transitory computer-readable storage media of claim 15 , wherein determining whether to divide the fileset into the plurality of partitions is based on a size of the fileset.

17 . The one or more non-transitory computer-readable storage media of claim 15 , wherein determining whether to divide the fileset into the plurality of partitions is based on a predetermined partition size.

18 . The one or more non-transitory computer-readable storage media of claim 15 , wherein the first machine is a virtual machine, and the fileset comprises a virtual disk file.

19 . The one or more non-transitory computer-readable storage media of claim 15 , wherein the DMS cluster maintains information identifying a correspondence between the plurality of partitions and the fileset.

20 . The one or more non-transitory computer-readable storage media of claim 15 , wherein the fileset includes multiple files.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64659/0236 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071566/0187 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2023
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 064659/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2023
From: LEE, LOOI CHOW; VALE FERREIRA MENEZES, GUILHERME
To: RUBRIK, INC.
Reel/Frame 062696/0587 →
Continuity (2)
Continuation 15897084 · Feb 14, 2018
Related Publication 20230267046A1 · Aug 24, 2023
References Cited (53)
US 5924095A · White · 1999 [cited by examiner]
US 8074035B1 · Per et al. · 2011 [cited by applicant]
US 9460147B1 · Chang · 2016 [cited by examiner]
US 10042711B1 · Chopra · 2018 [cited by examiner]
US 10387073B2 · Bhagi · 2019 [cited by examiner]
US 10423493B1 · Vig · 2019 [cited by examiner]
US 10656865B1 · Janse van Rensburg · 2020 [cited by examiner]
US 10659523B1 · Joseph · 2020 [cited by examiner]
US 10853182B1 · Vig · 2020 [cited by examiner]
US 10990581B1 · Jain · 2021 [cited by examiner]
US 11579978B2 · Lee et al. · 2023 [cited by applicant]
US 11620191B2 · Wang et al. · 2023 [cited by applicant]
US 20050187992A1 · Prahlad · 2005 [cited by examiner]
US 20050203973A1 · Yagawa · 2005 [cited by examiner]
US 20050234867A1 · Shinkai · 2005 [cited by examiner]
US 20070288490A1 · Longshaw · 2007 [cited by applicant]
US 20110078118A1 · Kushwah · 2011 [cited by applicant]
US 20110145207A1 · Agrawal · 2011 [cited by examiner]
US 20110153650A1 · Lee · 2011 [cited by examiner]
US 20110219208A1 · Asaad · 2011 [cited by examiner]
US 20120089775A1 · Ranade · 2012 [cited by examiner]
US 20130283097A1 · Chen · 2013 [cited by examiner]
US 20140006465A1 · Davis et al. · 2014 [cited by applicant]
US 20140047342A1 · Breternitz · 2014 [cited by examiner]
US 20140280520A1 · Baier · 2014 [cited by examiner]
US 20150074168A1 · Hartman · 2015 [cited by examiner]
US 20150212897A1 · Kottomtharayil · 2015 [cited by examiner]
US 20150234846A1 · Moore · 2015 [cited by examiner]
US 20150244795A1 · Cantwell et al. · 2015 [cited by applicant]
US 20150309765A1 · Nagahara · 2015 [cited by examiner]
US 20150348177A1 · Craft · 2015 [cited by examiner]
US 20160048342A1 · Jia · 2016 [cited by examiner]
US 20170003899A1 · Raja · 2017 [cited by examiner]
US 20170090688A1 · Anderson et al. · 2017 [cited by applicant]
US 20170099200A1 · Ellenbogen · 2017 [cited by examiner]
US 20170109243A1 · Kumar · 2017 [cited by examiner]
US 20170371748A1 · Levy · 2017 [cited by examiner]
US 20180081766A1 · Ghuge · 2018 [cited by examiner]
US 20180107562A1 · Goodman · 2018 [cited by examiner]
US 20180152512A1 · Nung · 2018 [cited by examiner]
US 20180300242A1 · Liu · 2018 [cited by examiner]
US 20180314749A1 · Raja · 2018 [cited by examiner]
US 20180349095A1 · Wu · 2018 [cited by examiner]
US 20190026187A1 · Gulam · 2019 [cited by examiner]
US 20190205449A1 · Erickson et al. · 2019 [cited by applicant]
US 20190243547A1 · Duggal · 2019 [cited by examiner]
US 20190354390A1 · Gill · 2019 [cited by examiner]
US 20190391880A1 · Wang et al. · 2019 [cited by applicant]
US 20200034248A1 · Nara et al. · 2020 [cited by applicant]
US 20200104216A1 · Wang · 2020 [cited by examiner]
US 20200404055A1 · Kusters · 2020 [cited by examiner]
US 20210117289A1 · Lin · 2021 [cited by examiner]
KR 20110125788A · 2011 [cited by applicant]