IP Library Granted Patent US 11,157,450
Granted Patent B2
US 11,157,450 · App. 16/234,976 · Granted Oct 26, 2021

High availability distributed deduplicated storage system

Inventors: Manoj Kumar Vijayan (Marlboro, NJ); Jaidev Oppath Kochunni (Santa Clara, CA); Saurabh Agrawal (Ocean, NJ); Abhishek Narulkar (Ocean, NJ)
Assignee: Commvault Systems, Inc.
G06F16/1748G06F11/1451G06F11/1453G06F2201/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 11,157,450
App. No.
16/234,976
Granted
Oct 26, 2021
Kind
B2
Abstract

A high availability distributed, deduplicated storage system according to certain embodiments is arranged to include multiple deduplication database media agents. The deduplication database media agents store signatures of data blocks stored in secondary storage. In addition, the deduplication database media agents are configured as failover deduplication database media agents in the event that one of the deduplication database media agents becomes unavailable.

Claims (49)

1. A method of performing a storage operation in a distributed, deduplicated storage system, comprising:

receiving a request to perform a storage operation corresponding to a first data block,

wherein the request to perform the storage operation is initiated according to a storage policy, wherein the storage policy comprises a set of settings or preferences for performing storage operations to data stored on one or more devices assigned or associated with the storage policy,

wherein a plurality of deduplication database computing devices comprises a first deduplication database computing device and a second deduplication database computing device, and

wherein the first deduplication database computing device is configured to store a first subset of signature blocks and is designated as a failover deduplication database computing device for the second deduplication database computing device;

in response to the request and using one or more processors, identifying that the second deduplication database computing device is assigned to store a first signature corresponding to the first data block;

determining that the second deduplication database computing device is unavailable;

determining that the first signature is stored in the first deduplication database computing device,

wherein the first subset of signature blocks comprises a first signature block, and

wherein the first signature block comprises the first signature, an indication of a location of the first data block in a secondary storage device, and a value representing a number of references to the first data block in the secondary storage device; and

in response to determining that the first signature is not stored in the second deduplication database computing device, querying the first deduplication database computing device for the first signature and the location of the first data block in the secondary storage device.

2. The method of claim 1 , wherein the first signature is stored in the first deduplication database computing device instead of the second deduplication database computing device because the second deduplication database computing device was unavailable when the first signature block was stored in the first deduplication database computing device.

3. The method of claim 1 , further comprising modifying the value representing the number of references to the first data block in the secondary storage device.

4. The method of claim 1 , wherein the request is received at the first deduplication database computing device.

5. The method of claim 1 , wherein the storage operation comprises a pruning operation.

6. The method of claim 1 , wherein the second deduplication database computing device is configured to store a second subset of signature blocks that is different from the first subset of signature blocks.

7. The method of claim 1 , further comprising deleting the first data block from the secondary storage device in response to a determination that the value representing the number of references is zero.

8. The method of claim 1 , further comprising querying a failover index using the first signature, and receiving an indication, from the failover index, that the first signature is stored in the first deduplication database computing device.

9. The method of claim 1 , wherein identifying that the second deduplication database computing device is assigned to store the first signature corresponding to the first data block further comprises:

determining a second signature of the first data block;

performing a modulo operation on the second signature; and

identifying that the second deduplication database computing device is assigned to store the first data block based on a result of the performed modulo operation.

10. The method of claim 1 , wherein each deduplication database computing device of the plurality of deduplication database computing devices is identified as a failover deduplication database computing device to another one of the plurality of deduplication database computing devices.

11. The method of claim 1 , wherein a third deduplication database computing device in the plurality of deduplication database computing devices is designated as a failover deduplication database computing device for the first deduplication database computing device, and wherein the second deduplication database computing device is designated as a failover deduplication database computing device for the third deduplication database computing device.

12. A distributed deduplicated storage system, comprising:

a first deduplication database computing device configured to store a first subset of signature blocks; and

a second deduplication database computing device,

wherein the first deduplication database computing device is designated as a failover deduplication database computing device for the second deduplication database computing device,

wherein the second deduplication database computing device is configured to:

receive a request to perform a storage operation corresponding to a first data block,

wherein the request to perform the storage operation is initiated according to a storage policy,

wherein the storage policy comprises a set of settings or preferences for performing storage operations to data stored on one or more devices assigned or associated with the storage policy;

identify that the second deduplication database computing device is assigned to store a first signature corresponding to the first data block;

determine that the second deduplication database computing device is unavailable;

determine that the first signature is stored in the first deduplication database computing device,

wherein the first subset of signature blocks comprises a first signature block, and

wherein the first signature block comprises the first signature, an indication of a location of the first data block in a secondary storage device, and a value representing a number of references to the first data block in the secondary storage device; and

in response to determining that the first signature is not stored in the second deduplication database computing device, querying the first deduplication database computing device for the first signature and the location of the first data block in the secondary storage device.

13. The system of claim 12 , wherein the first deduplication database computing device and the second deduplication database computing device are part of a plurality of deduplication database computing devices; wherein each deduplication database computing device of the plurality of deduplication database computing devices is identified as a failover deduplication database computing device to another one of the plurality of deduplication database computing devices.

14. The system of claim 13 , wherein the plurality of deduplication database computing devices is communicatively coupled to the first deduplication database computing device.

15. The system of claim 12 , wherein the second deduplication database computing device is configured to store a second subset of signature blocks that is different from the first subset of signature blocks.

16. The system of claim 12 , wherein the storage operation comprises a pruning operation.

17. The system of claim 12 , wherein the first deduplication database computing device is further configured to modify the value representing the number of references to the first data block in the secondary storage device.

18. The system of claim 17 , wherein the second deduplication database computing device is further configured to delete the first data block from the secondary storage device in response to a determination that the modified value is zero.

19. The system of claim 12 , wherein the second deduplication database computing device is further configured to:

determine a second signature of the first data block;

perform a modulo operation on the second signature; and

identify that the second deduplication database computing device is assigned to store the first data block based on a result of the performed modulo operation.

20. The system of claim 12 , wherein the system further comprises a third deduplication database computing device, wherein the third deduplication database computing device is designated as a failover deduplication database computing device for the first deduplication database computing device, and wherein the second deduplication database computing device is designated as a failover deduplication database computing device for a third deduplication database computing device.

Assignments (2)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →