IP Library Granted Patent US 11,726,955
Granted Patent B2
US 11,726,955 · App. 16/190,022 · Granted Aug 15, 2023

Methods and apparatus for efficient container location database snapshot operation

Inventors: Uppaluri Vijaya Saradhi (Hyderabad, IN); Chandra Guru Kiran Babu Sanapala (Hyderabad, IN); Prasad Boddupalli (Hyderabad, IN)
Assignee: Hewlett Packard Enterprise Development LP
G06F16/128G06F16/134G06F16/174G06F16/1844
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 11,726,955
App. No.
16/190,022
Granted
Aug 15, 2023
Kind
B2
Abstract

The efficiency of a container location database (“CLDB”) that is used for retrieving location information of data containers stored on nodes in a cluster is improved by decreasing the number of key-value store transactions performed during snapshot creation and deletion, thereby decreasing both disk I/O and computing cycles. The CLDB is made more scalable by improving the deletion and creation time of snapshots, allowing one to create and delete more snapshots during a given interval of time. CLDB resilience is improved by decreasing the time required to resync a CLDB node. CLDB data is reduced to decrease IO operations, improve resync times, and to cache most of the data in memory.

Claims (56)

1. A computer-implemented method comprising:

generating a volume snapshot for a volume in a distributed file system, the volume snapshot including a plurality of snapshot containers, each of the plurality of snapshot containers having a respective snapshot container identifier;

storing the snapshot container identifiers for the plurality of snapshot containers in one or more blocks, a first block of the one or more blocks including a contiguous sequence of multiple snapshot container identifiers for respective snapshot containers of the plurality of snapshot containers; and

storing information to specify the plurality of snapshot containers, wherein the information includes an identifier for the volume snapshot, a first snapshot container identifier at a beginning of the contiguous sequence of multiple snapshot container identifiers in the first block, and length information specifying a count of a number of snapshot container identifiers in the contiguous sequence of multiple snapshot container identifiers.

2. The computer-implemented method of claim 1 , wherein storing the information includes storing one or more key-value pairs in a key-value store of a container location database (CLDB).

3. The computer-implemented method of claim 1 , further comprising:

obtaining from the information a first set of information for the first block including the contiguous sequence of multiple snapshot container identifiers; and

converting the first set of information into a list of snapshot container identifiers for snapshot containers that are part of the volume snapshot.

4. The computer-implemented method of claim 1 , wherein the information specifies the plurality of snapshot containers as a table of entries, each entry representing a respective block of the one or more blocks.

5. The computer-implemented method of claim 1 , wherein the information specifies the plurality of snapshot containers in a single data structure.

6. The computer-implemented method of claim 1 , further comprising:

receiving a request for a current size of a volume snapshot container for the volume snapshot; and

computing the current size of the volume snapshot container based on a size of each of the plurality of snapshot containers and on updates received when snapshots are deleted.

7. The computer-implemented method of claim 1 , further comprising:

associating each respective snapshot container identifier of the snapshot container identifiers for the volume snapshot with an identifier of a corresponding read-write container, wherein a snapshot container identified by the respective snapshot container identifier is co-resident with the corresponding read-write container in a storage pool;

receiving a request for a location of a first snapshot container, the request including a given snapshot container identifier for the first snapshot container; and

determining the location of the first snapshot container based on a location of a first read-write container corresponding to the first snapshot container, the first read-write container being identified based on association of the given snapshot container identifier with an identifier of the first read-write container.

8. A non-transitory storage medium comprising instructions that upon execution cause one or more processors to:

generate a volume snapshot for a volume in a distributed file system, the volume snapshot including a plurality of snapshot containers, each of the plurality of snapshot containers having a respective snapshot container identifier;

store the snapshot container identifiers for the plurality of snapshot containers in one or more blocks, a first block of the one or more blocks including a contiguous sequence of multiple snapshot container identifiers for respective snapshot containers of the plurality of snapshot containers; and

store information to specify the plurality of snapshot containers, wherein the information includes an identifier for the volume snapshot, a first snapshot container identifier at a beginning of the contiguous sequence of multiple snapshot container identifiers in the first block, and length information specifying a count of a number of snapshot container identifiers in the contiguous sequence of multiple snapshot container identifiers.

9. The non-transitory storage medium of claim 8 , wherein the information includes one or more key-value pairs stored in a key-value store of a container location database (CLDB).

10. The non-transitory storage medium of claim 8 , wherein the instructions upon execution cause the one or more processors further to:

obtain from the information a first set of information for the first block including the contiguous sequence of multiple snapshot container identifiers; and

convert the first set information into a list of snapshot container identifiers for snapshot containers that are part of the volume snapshot.

11. The non-transitory storage medium of claim 8 , wherein the information comprises a table of entries, each entry representing a respective block of the one or more blocks.

12. The non-transitory storage medium of claim 8 , wherein the first snapshot container identifier at the beginning of the contiguous sequence of multiple snapshot container identifiers and the length information together specify an entire content of the first block.

13. The non-transitory storage medium of claim 8 , wherein the instructions upon execution cause the one or more processors further to:

receive a request for a current size of a volume snapshot container for the volume snapshot; and

compute the current size of the volume snapshot container based on a size of each of the plurality of snapshot containers and on updates received when snapshots are deleted.

14. The non-transitory storage medium of claim 8 , wherein of the instructions upon execution cause the one or more processors further to:

associate each respective snapshot container identifier of the snapshot container identifiers for the volume snapshot with an identifier of a corresponding read-write container, wherein a snapshot container is co-resident with the corresponding read-write container in a storage pool;

receive a request for a location of a first snapshot container, the request including a given snapshot container identifier for the first snapshot container; and

determine the location of the first snapshot container based on a location of a first read-write container corresponding to the first snapshot container, the first read-write container being identified based on association of the given snapshot container identifier with an identifier of the first read-write container.

15. A system comprising:

one or more cluster nodes, each cluster node including a storage pool; and

a container location database (CLDB) coupled with the one or more cluster nodes, the CLDB to maintain location information for data containers stored in the storage pools of the cluster nodes;

a processor; and

a non-transitory storage medium storing instructions executable on the processor to:

generate a volume snapshot for a volume of data in the one or more cluster nodes, the volume snapshot including a plurality of snapshot containers, each of the plurality of snapshot containers having a respective snapshot container identifier,

store the snapshot container identifiers for the plurality of snapshot containers in one or more blocks, a first block of the one or more blocks including a contiguous sequence of multiple snapshot container identifiers for respective snapshot containers of the plurality of snapshot containers, and

store a key-value pair in a key-value store of the CLDB to specify the plurality of snapshot containers, wherein the key-value pair includes an identifier for the volume snapshot, a starting snapshot container identifier at a beginning of the contiguous sequence of multiple snapshot container identifiers in the first block, and length information specifying a count of a number of snapshot container identifiers in the contiguous sequence of multiple snapshot container identifiers.

16. The system of claim 15 , wherein the instructions are executable on the processor to:

obtain the key-value pair from the key-value store; and

convert information in the key-value pair into a list of snapshot container identifiers for snapshot containers that are part of the volume snapshot.

17. The system of claim 15 , wherein the starting snapshot container identifier at the beginning of the contiguous sequence of multiple snapshot container identifiers and the length information together specify an entire content of the first block.

18. The system of claim 15 , wherein the key-value pair comprises:

a key that includes the identifier for the volume snapshot and the starting snapshot container identifier, and a value that includes the length information, or

a key that includes the identifier for the volume snapshot, and a value that includes the starting snapshot container identifier and the length information.

19. The system of claim 15 , wherein the instructions are executable on the processor to:

receive a request for a current size of a volume snapshot container for the volume snapshot; and

compute the current size of the volume snapshot container based on a size of each of the plurality of snapshot containers and on updates received when snapshots are deleted.

20. The system of claim 15 , wherein the instructions are executable on the processor to:

associate each respective snapshot container identifier of the snapshot container identifiers for the volume snapshot with an identifier of a corresponding read-write container, wherein a snapshot container identified by the respective snapshot container identifier is co-resident with the corresponding read-write container in a storage pool;

receive a request for a location of a first snapshot container, the request including a given snapshot container identifier for the first snapshot container; and

determine the location of the first snapshot container based on a location of a first read-write container corresponding to the first snapshot container, the first read-write container being identified based on association of the given snapshot container identifier with an identifier of the first read-write container.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: MAPR (ABC), LLC
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 050831/0569 →
NUNC PRO TUNC ASSIGNMENT Recorded Oct 25, 2019
From: MAPR TECHNOLOGIES, INC.
To: MAPR (ABC), LLC
Reel/Frame 050831/0278 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2019
From: SILICON VALLEY BANK
To: MAPR TECHNOLOGIES, INC.
Reel/Frame 049962/0587 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2019
From: LIGHTSPEED VENTURE PARTNERS SELECT, L.P.; LIGHTSPEED VENTURE PARTNERS VIII, L.P.; NEW ENTERPRISES ASSOCIATES 13, LIMITED PARTNERSHIP; CAPITALG II LP; MAYFIELD XIII, A CAYMAN ISLANDS EXEMPTED LIMITED PARTNERSHIP; MAYFIELD SELECT, A CAYMAN ISLANDS EXEMPTED LIMITED PARTNERSHIP
To: MAPR TECHNOLOGIES, INC.
Reel/Frame 049962/0462 →
SECURITY INTEREST Recorded Jun 28, 2019
From: MAPR TECHNOLOGIES, INC.
To: LIGHTSPEED VENTURE PARTNERS VIII, L.P.; LIGHTSPEED VENTURE PARTNERS SELECT, L.P.; NEW ENTERPRISE ASSOCIATES 13, LIMITED PARTNERSHIP; CAPITALG II LP; MAYFIELD XIII, A CAYMAN ISLANDS EXEMPTED LIMITED PARTNERSHIP; MAYFIELD SELECT, A CAYMAN ISLANDS EXEMPTED LIMITED PARTNERSHIP
Reel/Frame 049626/0030 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 21, 2019
From: MAPR TECHNOLOGIES, INC.
To: SILICON VALLEY BANK
Reel/Frame 049555/0484 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2019
From: SARADHI, UPPALURI VIJAYA; KIRAN, SANAPALA CHANDRA GURU; BODDUPALLI, PRASAD
To: MAPR TECHNOLOGIES, INC.
Reel/Frame 049215/0379 →
Continuity (9)
Continuation In Part 16116796 · Aug 29, 2018
Continuation 15668666 · Aug 3, 2017
Continuation 15381733 · Dec 16, 2016
Continuation 14951437 · Nov 24, 2015
Continuation 13340532 · Dec 29, 2011
Continuation In Part 13162439 · Jun 16, 2011
Provisional Application 61356582 · Jun 19, 2010
Provisional Application 62586457 · Nov 15, 2017
Related Publication 20190146947A1 · May 16, 2019