IP Library Granted Patent US 10,558,531
Granted Patent B2
US 10,558,531 · App. 15/490,236 · Granted Feb 11, 2020

Systems and methods for backup and restore of master-less distributed database clusters

Inventors: Priya Sehgal (Pune, IN); Atish Kathpal (Bangalore, IN)
Assignee: NETAPP, INC.
G06F11/1469G06F11/1448G06F11/1451G06F11/1453G06F11/1466G06F16/128G06F16/166G06F2201/80G06F2201/82G06F2201/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 10,558,531
App. No.
15/490,236
Granted
Feb 11, 2020
Kind
B2
Abstract

Methods and systems for generating a cluster consistent backup of a distributed, master-less database cluster is provided. One method includes a first phase of a backup operation where a crash consistent backup of the various LUNs used by the cluster nodes is taken. The crash consistent backup is then transformed into a cluster consistent backup during a second phase of the backup operation.

Claims (66)

1. A machine implemented method for a distributed, master-less database cluster having a plurality of nodes each executing a database application and storing at least a portion of a database for the cluster, comprising:

capturing a topology of the distributed, master-less database cluster prior to a first phase of a backup operation;

associating token information of each node with a logical storage object of a shared storage system that stores data of the database for each node on behalf of the database application; wherein the token information is based on a hash value of a portion of the data of the database;

generating a snapshot of all logical storage objects associated with each of the plurality of nodes during the first phase;

storing token information of each node with backup metadata for the snapshot of all the logical storage objects during the first phase, where the token information determines what data is stored by each node for the database;

initiating a second phase of the backup operation at a recovery node using the backup metadata from the first phase of the backup operation;

cloning snapshots of all the logical storage objects from the first phase of the backup operation;

flushing information from a commit log for each node to data containers of the database;

creating a new backup logical storage object as a read and write object for storing a cluster consistent backup of the database; and

mounting clones of the snapshots of all the logical storage objects from the first phase of the backup operation as read only objects.

2. The method of claim 1 , further comprising:

retrieving each node's data directory and renaming data files maintained by each node for storing a portion of the database.

3. The method of claim 2 , further comprising:

executing compaction of the data files for the plurality of nodes by eliminating duplicate data for portions of the database.

4. The method of claim 3 , further comprising:

generating a snapshot of the backup logical storage object after compaction; and

storing token information for the plurality of nodes.

5. The method of claim 4 , further comprising:

deleting clones of the snapshot of the logical storage objects and snapshots of the logical storage objects from the first phase.

6. The method of claim 4 , further comprising:

using the snapshot of the backup logical storage object to restore the database at a target cluster with a topology different from a topology of the distributed, master-less database cluster.

7. The method of claim 6 , wherein the target cluster topology is same as a topology of the distributed, master-less, database cluster.

8. A non-transitory, machine-readable storage medium having stored thereon instructions for performing a method for a distributed, master-less database cluster having a plurality of nodes each executing a database application and storing at least a portion of a database for the cluster, comprising machine executable code which when executed by at least one machine, causes the machine to:

capture a topology of the distributed, master-less database cluster prior to a first phase of a backup operation;

associate token information of each node with a logical storage object of a shared storage system that stores data of the database for each node on behalf of the database application; wherein the token information is based on a hash value of a portion of the data of the database for each node;

generate a snapshot of all logical storage objects associated with each of the plurality of nodes during the first phase;

store token information of each node with backup metadata for the snapshot of all the logical storage objects, where the token information determines what data is stored by each node for the database during the first phase;

initiate a second phase of the backup operation at a recovery node using the backup metadata from the first phase of the backup operation;

clone snapshots of all the logical storage objects from the first phase of the backup operation;

flush information from a commit log for each node to data containers of the database;

create a new backup logical storage object as a read and write object for storing a cluster consistent backup of the database; and

mount clones of the snapshots of all the logical storage objects from the first phase of the backup operation as read only objects.

9. The non-transitory machine-readable storage medium of claim 8 , the machine executable code further causing the machine to:

retrieve each node's data directory and renaming data files maintained by each node for storing a portion of the database.

10. The non-transitory machine-readable storage medium of claim 9 , the machine executable code further causing the machine to:

execute compaction of the data files for the plurality of nodes by eliminating duplicate data for portions of the database.

11. The non-transitory machine-readable of claim 10 , the machine executable code further causing the machine to:

generate a snapshot of the backup logical storage object after compaction; and

store token information for the plurality of nodes.

12. The non-transitory machine-readable of claim 11 , the machine executable code further causing the machine to:

delete clones of the snapshot of the logical storage objects and snapshots of the logical storage objects from the first phase.

13. The non-transitory machine-readable of claim 11 , the machine executable code further causing the machine to:

use the snapshot of the backup logical storage object to restore the database at a target cluster with a topology different from a topology of the distributed, master-less database cluster.

14. The non-transitory machine-readable of claim 13 , wherein the target cluster topology is same as a topology of the distributed, master-less, database cluster.

15. A system, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions; and a processor coupled to the memory, the processor configured to execute the machine executable code to:

capture a topology of a distributed, master-less database cluster having a plurality of nodes each executing a database application and storing at least a portion of a database for the cluster, prior to a first phase of a backup operation;

associate token information of each node with a logical storage object of a shared storage system that stores data of the database for each node on behalf of the database application; wherein the token information is based on a hash value of a portion of the data of the database for each node;

generate a snapshot of all logical storage objects associated with each of the plurality of nodes during the first phase;

store token information of each node with backup metadata for the snapshot of all the logical storage objects, where the token information determines what data is stored by each node for the database during the first phase;

initiate a second phase of the backup operation at a recovery node using the backup metadata from the first phase of the backup operation;

clone snapshots of all the logical storage objects from the first phase of the backup operation;

flush information from a commit log for each node to data containers of the database;

create a new backup logical storage object as a read and write object for storing a cluster consistent backup of the database; and

mount clones of the snapshots of all the logical storage objects from the first phase of the backup operation as read only objects.

16. The system of claim 15 , the machine executable code further causing the machine to:

retrieve each node's data directory and renaming data files maintained by each node for storing a portion of the database.

17. The system of claim 16 , the machine executable code further causing the machine to:

execute compaction of the data files for the plurality of nodes by eliminating duplicate data for portions of the database.

18. The system of claim 17 , the machine executable code further causing the machine to:

generate a snapshot of the backup logical storage object after compaction; and

store token information for the plurality of nodes.

19. The system of claim 17 , the machine executable code further causing the machine to:

delete clones of the snapshot of the logical storage objects and snapshots of the logical storage objects from the first phase.

20. The system of claim 17 , the machine executable code further causing the machine to:

use the snapshot of the backup logical storage object to restore the database at a target cluster with a topology different from a topology of the distributed, master-less database cluster.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2017
From: SEHGAL, PRIYA; KATHPAL, ATISH
To: NETAPP, INC.
Reel/Frame 042044/0318 →
Continuity (1)
Related Publication 20180300205A1 · Oct 18, 2018