IP Library › Granted Patent US 12,182,067
Granted Patent B2
US 12,182,067 · App. 17/242,448 · Granted Dec 31, 2024

Containerization and serverless thread implementation for processing objects

Inventors: Sharankumar Yelheri (Santa Clara, CA); Atul Ramesh Pandit (Los Gatos, CA); Tijin George (Sunnyvale, CA); Kiran Nenmeli Srinivasan (Los Gatos, CA); Jeffrey David Prem (Pittsburgh, PA)
Assignee: NetApp, Inc.
G06F16/128G06F11/1448G06F2201/80G06F2201/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,182,067
App. No.
17/242,448
Filed
Apr 28, 2021
Granted
Dec 31, 2024
Kind
B2
Art Unit
2167
USPC
707/649
Abstract

Techniques are provided for on-demand creation and/or utilization of containers and/or serverless threads for hosting data connector components. The data connector components can be used to perform integrity checking, anomaly detection, and file system metadata analysis associated with objects stored within an object store. The data connector components may be configured to execute machine learning functionality to perform operations and tasks. The data connector components can perform full scans or incremental scans. The data connector components may be stateless, and thus may be offlined, upgraded, onlined, and/or have tasks transferred between data connector components. Results of operations performed by the data connector components upon base objects may be stored within sibling objects.

Claims (50)

1. A method of processing a snapshot, snapshot data of the snapshot stored into objects within one or more storage structures of an object store, wherein the snapshot is represented by an object format of the objects where the snapshot data is structured according to a snapshot file system tree structure, the method comprising:

in response to receiving an operation targeting the snapshot, implementing a wrapper controller to preprocess the operation for determining an amount of work to be performed by functionality being requested by the operation;

determining, by the wrapper controller, a number of data connector components to instantiate based upon the amount of work to be performed;

instantiating the number of data connector components as a plurality of data connector components instantiated as containers on-demand for processing the operation; and

independently processing different portions of the snapshot file system tree structure using different data connector components of the plurality of data connector components for parallel execution of the operation by the plurality of data connector components upon the objects.

2. The method of claim 1 , wherein the independently processing different portions of the snapshot file system tree structure comprises:

processing first snapshot data of the snapshot represented by a first portion of the snapshot file system tree structure using a first data connector component.

3. The method of claim 2 , wherein the independently processing different portions of the snapshot file system tree structure comprises:

processing second snapshot data of the snapshot represented by a second portion of the snapshot file system tree structure using a second data connector component.

4. The method of claim 3 , wherein the first snapshot data is processed by the first data connector in parallel with the second snapshot data being processed by the second data connector.

5. The method of claim 1 , comprising:

traversing the snapshot file system tree structure to identify branches as the different portions of the snapshot file system tree structure, wherein a first branch comprises first snapshot data of the snapshot and a second branch comprises second snapshot data of the snapshot.

6. The method of claim 5 , wherein the first snapshot data is stored within a first object and the second snapshot data is stored within a second object.

7. The method of claim 5 , wherein the first snapshot data and the second snapshot data is stored within a first object.

8. The method of claim 1 , comprising:

deconstructing one or more data connector components of the plurality of data connector components on-demand in response to the operation completing.

9. The method of claim 1 , comprising:

migrating the objects from being stored within the object store to being stored within a destination object store.

10. The method of claim 1 , comprising:

copying the objects comprising the snapshot data of the snapshot to create copied objects representing a replicated copy of the snapshot.

11. The method of claim 1 , comprising

migrating an object from a first storage structure to a second storage structure based upon at least one of a load balancing consideration, a proximity of a region comprising the second storage structure with respect to a first operation to be performed upon the object, or a characteristic of the second storage structure.

12. The method of claim 1 ,

wherein bits within a bitmap for the snapshot comprise values set to indicate whether the objects within the object store comprise the snapshot data of the snapshot.

13. The method of claim 12 , comprising:

utilizing the bitmap to identify the objects as comprising the snapshot data of the snapshot;

traversing the snapshot file system tree structure to identify one or more of the objects as comprising only unique snapshot data that is unique to the snapshot and not shared with other snapshots; and

performing a first operation upon the one or more of the objects.

14. The method of claim 12 , comprising:

utilizing the bitmap to identify a list of the objects that represent the snapshot.

15. A non-transitory machine readable medium comprising instructions for performing a method of processing a snapshot, snapshot data of the snapshot stored into objects within one or more storage structures of an object store, wherein the snapshot is represented by an object format of the objects where the snapshot data is structured according to a snapshot file system tree structure, the method, when executed by a machine, causes the machine to:

in response to receiving a request targeting the snapshot, break down the request into a number of separate operations that can be processed in parallel;

determine a number of serverless threads to create on-demand for processing based upon the number of separate operations that can be processed in parallel;

create the number of serverless threads on-demand for execution through a serverless thread architecture, wherein each serverless thread is assigned a different operation of the number of separate operations that can be processed in parallel; and

independently process different portions of the snapshot file system tree structure using different serverless threads for parallel execution of the request by the serverless threads upon the objects.

16. The non-transitory machine readable medium of claim 15 , wherein the instructions cause the machine to:

deconstruct, by the serverless thread architecture, one or more of the serverless threads in response to the one or more serverless threads completing execution associated with the request.

17. The non-transitory machine readable medium of claim 15 , wherein the instructions cause the machine to:

trigger creation of the serverless threads to perform an integrity check upon a first object as the request based upon an event corresponding to a determination that a second object was identified as being corrupt, wherein the first object is identified as having a probability of being corrupt above a threshold probability based upon the second object being corrupt.

18. The non-transitory machine readable medium of claim 15 , wherein the instructions cause the machine to:

trigger creation of the serverless threads to perform an integrity check upon a first object as the request based upon an event corresponding to a failure associated with the object store, wherein the first object is identified as having a probability of being corrupt above a threshold probability based upon the failure of the object store.

19. The non-transitory machine readable medium of claim 15 , wherein the instructions cause the machine to:

create a set of serverless threads for execution through the serverless thread architecture for creating a catalog of snapshots stored within objects in the object store.

20. A computing device for processing a snapshot, snapshot data of the snapshot stored into objects within one or more storage structures of an object store, wherein the snapshot is represented by an object format of the objects where the snapshot data is structured according to a snapshot file system tree structure, the computing device comprising:

a memory comprising machine executable code for performing a method; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

in response to receiving an operation targeting the snapshot, implement a wrapper controller to preprocess the operation for determining an amount of work to be performed by functionality being requested by the operation;

determine, by the wrapper controller, a number of data connector components to instantiate based upon the amount of work to be performed;

instantiate the number of data connector components as a plurality of data connector components instantiated as object store provider agnostic plugins on-demand for processing the operation; and

independently process different portions of the snapshot file system tree structure using different data connector components of the plurality of data connector components for parallel execution of the operation by the plurality of data connector components upon the objects.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2021
From: YELHERI, SHARANKUMAR; PANDIT, ATUL RAMESH; GEORGE, TIJIN; SRINIVASAN, KIRAN NENMELI; PREM, JEFFREY DAVID
To: NETAPP INC.
Reel/Frame 056065/0737 →
Continuity (2)
Provisional Application 63109717 · Nov 4, 2020
Related Publication 20220138153A1 · May 5, 2022
Cited By (1)
US 12,608,283