IP Library Granted Patent US 12711022
Granted Patent B2
US 12711022 · App. 18/446,780 · Granted Aug 18, 2026

Bulk recovery framework for computing objects

Inventors: Gaurav Jain (Cork, IE); Rishabh Singhal (Bangalore, IN); Eran Carmel (Campbell, CA); Prateek Pandey (Bangalore, IN); Shaomin Chen (San Jose, CA)
Assignee: Rubrik, Inc.
G06F11/1469G06F11/1464G06F11/328G06F2201/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 12711022
App. No.
18/446,780
Granted
Aug 18, 2026
Kind
B2
Abstract

Methods, systems, and devices for data management are described. A data management system may support techniques for bulk object selection and recovery for a set of computing objects. The data management system may receive an indication of a backup snapshot group identifier which defines a selection of a group of backup snapshots for performing a bulk recovery. The backup snapshot group identifier is then translated into a materialized list of object identifiers corresponding to the set of backup snapshots for storage in a binary large object (BLOB) data store. The data management system may then perform the bulk recovery on a subset of the set of backup snapshots contained within a sliding window that is iterated through the list of object identifiers within the BLOB data store.

Claims (46)

1 . A method, comprising:

receiving an indication of a backup snapshot group identifier, wherein the backup snapshot group identifier comprises a definition for selecting a plurality of backup snapshots from a set of backup snapshots for one or more recovery operations associated with a bulk recovery process for a type of data object;

translating the backup snapshot group identifier into a list of object identifiers corresponding to the plurality of backup snapshots, the list of object identifiers being stored in a file object in a binary large object data store;

preparing, based at least in part on the type of data object, a recovery environment for the bulk recovery process by allocating resources for the bulk recovery process to be used in the recovery environment; and

performing the one or more recovery operations associated with the bulk recovery process on a subset of the plurality of backup snapshots contained within a sliding window of recovery jobs, wherein the sliding window iterates through the list of object identifiers within the binary large object data store to iteratively recover the subset of the plurality of backup snapshots, wherein a relative size of the sliding window is configured based at least in part on one or more types of backup snapshots of the plurality of backup snapshots, and wherein the one or more recovery operations occur in parallel for each of the subset of the plurality of backup snapshots contained within the sliding window of recovery jobs.

2 . The method of claim 1 , wherein preparing the recovery environment for the bulk recovery process further comprises:

performing one or more recovery environment validation procedures, tuning one or more application service providers for recovery job configuration, or both.

3 . The method of claim 1 , wherein performing the one or more recovery operations associated with the bulk recovery process comprises:

parsing the plurality of backup snapshots corresponding to the list of object identifiers; and

initiating a set of child recovery processes associated with the bulk recovery process, wherein the set of child recovery processes are included within the sliding window during recovery of a child recovery process and iterated through after completion of the child recovery process.

4 . The method of claim 3 , further comprising:

reading a first identifier associated with the child recovery process, wherein the child recovery process corresponds to a first child recovery process in a sorted list of the set of child recovery processes; and

iterating through the set of child recovery processes based at least in part on sequential identifiers associated with sequential child recovery processes in the set of child recovery processes.

5 . The method of claim 1 , further comprising:

tracking one or more metrics of the bulk recovery process based at least in part on updating respective statuses of a set of child recovery processes associated with the bulk recovery process stored in a relational database.

6 . The method of claim 5 , wherein the one or more metrics of the bulk recovery process comprise a quantity of executed recoveries of the plurality of backup snapshots, a quantity of failed recoveries of the plurality of backup snapshots, a quantity of pending recoveries of the plurality of backup snapshots, a quantity of canceled recoveries of the plurality of backup snapshots, or any combination thereof.

7 . The method of claim 5 , further comprising:

displaying, in accordance with a periodicity, a set of aggregated recovery metrics associated with the bulk recovery process via a user interface.

8 . The method of claim 5 , further comprising:

saving, after completion of the bulk recovery process, a set of aggregated recovery metrics associated with the set of child recovery processes in a separate binary large object data store.

9 . The method of claim 5 , further comprising:

determining that a child recovery process of the set of child recovery processes has failed; and

displaying, via a user interface, an indication of a failure event for the child recovery process and one or more sources of the failure event.

10 . The method of claim 1 , further comprising:

performing a single deletion of the list of object identifiers corresponding to the plurality of backup snapshots from storage in the binary large object data store after completion of the bulk recovery process.

11 . The method of claim 1 , further comprising:

receiving a cancellation command to cancel the one or more recovery operations associated with the bulk recovery process; and

cancelling the one or more recovery operations associated with the bulk recovery process corresponding to selection of the plurality of backup snapshots.

12 . The method of claim 1 , further comprising:

reverting one or more configuration changes of the recovery environment associated with the bulk recovery process, one or more persisted states of the recovery environment, or a combination thereof, after completion of the bulk recovery process.

13 . The method of claim 1 , wherein the definition for selecting the plurality of backup snapshots is based at least in part on one or more active directory groupings, one or more shared file groups, one or more comma separated value (CSV) files, one or more infected snapshots, or any combination thereof.

14 . The method of claim 1 , wherein the definition for selecting the plurality of backup snapshots comprises a set of definitions stored in the binary large object data store.

15 . The method of claim 1 , wherein the bulk recovery process is automated via a bulk recovery task chain.

16 . The method of claim 1 , wherein the bulk recovery process is performed in a software-as-a-service (SaaS) recovery domain.

17 . An apparatus, comprising:

one or more memories storing processor-executable code; and

one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:

receive an indication of a backup snapshot group identifier, wherein the backup snapshot group identifier comprises a definition for selecting a plurality of backup snapshots from a set of backup snapshots for one or more recovery operations associated with a bulk recovery process for a type of data object;

translate the backup snapshot group identifier into a list of object identifiers corresponding to the plurality of backup snapshots, the list of object identifiers being stored in a file object in a binary large object data store;

prepare, based at least in part on the type of data object, a recovery environment for the bulk recovery process by allocating resources for the bulk recovery process to be used in the recovery environment; and

perform the one or more recovery operations associated with the bulk recovery process on a subset of the plurality of backup snapshots contained within a sliding window of recovery jobs, wherein the sliding window iterates through the list of object identifiers within the binary large object data store to iteratively recover the subset of the plurality of backup snapshots, wherein a relative size of the sliding window is configured based at least in part on one or more types of backup snapshots of the plurality of backup snapshots, and wherein the one or more recovery operations occur in parallel for each of the subset of the plurality of backup snapshots contained within the sliding window of recovery jobs.

18 . A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:

receive an indication of a backup snapshot group identifier, wherein the backup snapshot group identifier comprises a definition for selecting a plurality of backup snapshots from a set of backup snapshots for one or more recovery operations associated with a bulk recovery process for a type of data object;

translate the backup snapshot group identifier into a list of object identifiers corresponding to the plurality of backup snapshots, the list of object identifiers being stored in a file object in a binary large object data store;

prepare, based at least in part on the type of data object, a recovery environment for the bulk recovery process by allocating resources for the bulk recovery process to be used in the recovery environment; and

perform the one or more recovery operations associated with the bulk recovery process on a subset of the plurality of backup snapshots contained within a sliding window of recovery jobs, wherein the sliding window iterates through the list of object identifiers within the binary large object data store to iteratively recover the subset of the plurality of backup snapshots, wherein a relative size of the sliding window is configured based at least in part on one or more types of backup snapshots of the plurality of backup snapshots, and wherein the one or more recovery operations occur in parallel for each of the subset of the plurality of backup snapshots contained within the sliding window of recovery jobs.