IP Library Granted Patent US 11,016,850
Granted Patent B2
US 11,016,850 · App. 15/925,809 · Granted May 25, 2021

Systems and methods for detecting bit rot in distributed storage devices having failure domains

Inventors: Sushrut Gajbhiye (Pune, IN); Deodatta Barhate (Pune, IN); Roshan Kolhe (Wardha, IN); Shailesh Marathe (Pune, IN); Anindya Banerjee (Pune, IN)
Assignee: Veritas Technologies LLC
G06F11/1088G06F11/1076G06F21/554G06F21/577G06F2221/034
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,016,850
App. No.
15/925,809
Granted
May 25, 2021
Kind
B2
Abstract

The disclosed computer-implemented method for detecting bit rot in distributed storage devices having failure domains may include (1) receiving, at a computing device, a combination of data chunks created by adding, for each failure domain storing data chunks, data chunks from different stripes, (2) receiving a combination of parity chunks created by adding, for each failure domain storing parity chunks, parity chunks from the different stripes, (3) creating at least one new parity chunk from the combination of data chunks, and (4) identifying a presence of bit rot in the failure domains when the at least one new parity chunk does not match the combination of parity chunks. Various other methods, systems, and computer-readable media are also disclosed.

Claims (62)

1. A computer-implemented method for detecting bit rot in distributed storage devices having failure domains, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

receiving, at the computing device, sums of data chunks, wherein:

each sum of data chunks in the sums of data chunks is created by adding, for each respective failure domain storing data chunks, one data chunk from each different stripe in a plurality of stripes; and

only one sum of data chunks is received for each respective failure domain storing data chunks;

receiving sums of parity chunks, wherein:

each sum of parity chunks in the sums of parity chunks is created by adding, for each respective failure domain storing parity chunks, one parity chunk from each different stripe in the plurality of stripes; and

only one sum of parity chunks is received for each respective failure domain storing parity chunks;

creating at least one new parity chunk from the sums of data chunks; and

identifying a presence of bit rot in the failure domains when the at least one new parity chunk does not match any of the received sums of parity chunks.

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

sending a command to the failure domains storing data chunks to create the sums of data chunks.

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

sending a command to the failure domains storing parity chunks to create the sums of parity chunks.

4. The computer-implemented method of claim 1 , wherein creating at least one new parity chunk further includes multiplying each sum of data chunks by a respective weight and adding the resultant products.

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

rewriting, when bit rot is identified, at least one data chunk to a respective failure domain in which the bit rot is identified in a respective distributed storage device.

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

rewriting, when bit rot is identified, at least one parity chunk to a respective failure domain storing a parity chunk corresponding to at least one data chunk in which the bit rot is identified in a respective distributed storage device.

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

identifying, in response to identifying the bit rot, a potential security risk associated with the distributed storage devices; and

performing, in response to identifying the potential security risk, a security action in an attempt to ameliorate the potential security risk.

8. The computer-implemented method of claim 1 , wherein the receiving the sums of parity chunks further comprises receiving one sum of parity chunks per distributed storage device.

9. A system for detecting bit rot in distributed storage devices having failure domains, the system comprising:

a first receiving module, stored in a memory, that receives sums of data chunks, wherein:

each sum of data chunks in the sums of data chunks is created by adding, for each respective failure domain storing data chunks, one data chunk from each different stripe in a plurality of stripes; and

only one sum of data chunks is received for each respective failure domain storing data chunks;

a second receiving module, stored in the memory, that receives sums of parity chunks, wherein:

each sum of parity chunks in the sums of parity chunks is created by adding, for each respective failure domain storing parity chunks, one parity chunk from each different stripe in the plurality of stripes; and

only one sum of parity chunks is received for each respective failure domain storing parity chunks;

a creating module, stored in the memory, that creates at least one new parity chunk from the sums of data chunks;

an identifying module, stored in the memory, that identifies a presence of bit rot in the failure domains when the at least one new parity chunk does not match any of the received sums of parity chunks; and

at least one physical processor that executes the first receiving module, the second receiving module, the creating module, and the identifying module.

10. The system of claim 9 , further comprising:

a sending module, stored in the memory, that sends a command to the failure domains storing data chunks to create the sums of data chunks.

11. The system of claim 9 , further comprising:

a sending module, stored in the memory, that sends a command to the failure domains storing parity chunks to create the sums of parity chunks.

12. The system of claim 9 , wherein creating at least one new parity chunk further includes multiplying each sum of data chunks by a respective weight and adding the resultant products.

13. The system of claim 9 , further comprising:

a rewriting module, stored in the memory, that rewrites, when bit rot is identified, at least one data chunk to a respective failure domain in which the bit rot is identified in a respective distributed storage device.

14. The system of claim 9 , further comprising:

a rewriting module, stored in the memory, that rewrites, when bit rot is identified, at least one parity chunk to a respective failure domain storing a parity chunk corresponding to at least one data chunk in which the bit rot is identified in a respective distributed storage device.

15. The system of claim 9 , further comprising:

an identifying module, stored in the memory, that identifies, in response to identifying the bit rot, a potential security risk associated with the distributed storage devices; and

a performing module, stored in the memory, that performs, in response to identifying the potential security risk, a security action in an attempt to ameliorate the potential security risk.

16. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive, at the computing device, sums of data chunks, wherein:

each sum of data chunks in the sums of data chunks is created by adding, for each respective failure domain storing data chunks, one data chunk from each different stripe in a plurality of stripes; and

only one sum of data chunks is received for each respective failure domain storing data chunks;

receive sums of parity chunks, wherein:

each sum of parity chunks in the sums of parity chunks is created by adding, for each respective failure domain storing parity chunks, one parity chunk from each different stripe in the plurality of stripes; and

only one sum of parity chunks is received for each respective failure domain storing parity chunks;

create at least one new parity chunk from the sums of data chunks; and

identify a presence of bit rot in the failure domains when the at least one new parity chunk does not match any of the received sums of parity chunks.

17. The non-transitory computer-readable medium of claim 16 , wherein the computer-executable instructions comprise computer-executable instructions that cause the computing device to:

send a command to the failure domains storing data chunks to create the sums of data chunks.

18. The non-transitory computer-readable medium of claim 16 , wherein the computer-executable instructions comprise computer-executable instructions that cause the computing device to:

send a command to the failure domains storing parity chunks to create the sums of parity chunks.

19. The non-transitory computer-readable medium of claim 16 , wherein creating at least one new parity chunk further comprises multiplying each sum of data chunks by a respective weight and adding the resultant products.

20. The non-transitory computer-readable medium of claim 16 , wherein the computer-executable instructions comprise computer-executable instructions that cause the computing device to:

rewrite, when bit rot is identified, at least one data chunk to a respective failure domain in which the bit rot is identified in a respective distributed storage device.

21. The non-transitory computer-readable medium of claim 16 , wherein the computer-executable instructions comprise computer-executable instructions that cause the computing device to:

rewrite, when bit rot is identified, at least one parity chunk to a respective failure domain storing a parity chunk corresponding to at least one data chunk in which the bit rot is identified in a respective distributed storage device.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2018
From: GAJBHIYE, SUSHRUT; BARHATE, DEODATTA; KOLHE, ROSHAN; MARATHE, SHAILESH; BANERJEE, ANINDYA
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 045282/0512 →