IP Library Granted Patent US 9,552,382
Granted Patent B2
US 9,552,382 · App. 14/257,905 · Granted Jan 24, 2017

Reference counter integrity checking

Inventor: Frank E. Barrus (New Ipswich, NH)
Assignee: Exablox Corporation
G06F17/30303G06F12/0253G06F12/0261G06F17/5022
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 9,552,382
App. No.
14/257,905
Granted
Jan 24, 2017
Kind
B2
Abstract

Disclosed is a method for checking the integrity of a reference counter for objects in a file system. A unique identifier can be associated with the reference referring to the object. A reference check can be associated with the object and set to a predefined initial value before any references referring to the object are added. When a new reference referring to the object is added, the reference counter is increased by one and the identifier associated with the new reference is added to the reference check. When an existing reference referring to the object is about to be removed, the reference counter is decreased by one and the identifier associated with the existing reference is subtracted from the reference check. If the reference check is not equal to the initial value when the reference counter is zero, then an error message is sent to the file system.

Claims (66)

1. A method for checking integrity of a reference counter of an object in a file system, the method comprising:

associating the reference counter with the object;

associating a reference check with the object, the reference check being set to a predefined initial value before any references referring to the object are added;

associating a unique identifier with each reference referring to the object;

determining a pair of binary operations of adding and subtracting the unique identifier associated with the reference to the reference check associated with the object;

wherein in response to a new reference referring to the object being added the method further comprises:

increasing a reference count by one; and

adding a unique identifier associated with the new reference to the reference check;

wherein in response to a set of new references referring to the object being added the method further comprises:

assigning a single identifier to the set of new references referring to the object; and

adding the single identifier associated with the set of new references to the reference check;

wherein in response to an existing reference referring to the object being removed the method further comprises:

decreasing the reference count by one;

subtracting a unique identifier associated with the existing reference from the reference check;

determining whether the reference counter is equal to zero;

when it is determined the reference counter is not equal to zero, the object is not deleted from a storage;

when it is determined the reference counter is equal to zero, determine whether the reference check is equal to the predefined initial value;

if it is determined that the reference check is equal to the predefined initial value, deleting the object from the storage; and

if the reference check is not equal to the predefined initial value, sending an error message to the file system; and

wherein in response to a set of new references referring to the object being removed, the method further comprises:

subtracting a single identifier from the reference check, wherein the single identifier is assigned to the set of new references referring to the object.

2. The method of claim 1 , wherein the unique identifier associated with the reference referring to the object is determined by compressing a hash of the object.

3. The method of claim 2 , wherein compressing the hash of the object further comprises truncating first 64 bits of the hash of the object.

4. The method of claim 2 , wherein the hash of the object is determined by a hash function.

5. The method of claim 4 , wherein the hash function is one of cryptographic hash functions of SHA family.

6. The method of claim 4 , wherein the hash function is one of a Tiger hash function.

7. The method of claim 1 , wherein the binary operation of adding has associative and commutative properties.

8. The method of claim 1 , wherein the binary operation of subtracting ([ 31 ]) is defined using the binary operation of adding ([+]) by following equations:

a[+]b=c,

c[−]b=a,

for any unique identifiers a, b, and c.

9. The method of claim 1 , wherein the binary operation of adding is a regular integer number addition.

10. The method of claim 1 , wherein the binary operation of adding is a bitwise XOR operation.

11. A non-transitory processor-readable medium having instructions stored thereon, which when executed by one or more processors, cause the one or more processors to perform the following steps of a method for checking integrity of a reference counter of an object, the method comprising:

associating the reference counter with the object;

associating a reference check with the object, the reference check being set to a predefined initial value before any references referring to the object are added;

associating a unique identifier with each reference referring to the object;

determining a pair of binary operations of adding and subtracting the unique identifier associated with the reference to the reference check associated with the object;

wherein in response to a new reference referring to the object being added the method further comprises:

increasing a reference count by one; and

adding a unique identifier associated with the new reference to the reference check;

wherein in response to a set of new references referring to the object being added the method further comprises:

assigning a single identifier to the set of new references referring to the object; and

adding the single identifier associated with the set of new references to the reference check;

wherein in response to an existing reference referring to the object being removed the method further comprises:

decreasing the reference count by one;

subtracting a unique identifier associated with the existing reference from the reference check;

determining whether the reference counter is equal to zero;

when it is determined the reference counter is not equal to zero, the object is not deleted from a storage;

when it is determined the reference counter is equal to zero, determine whether the reference check is equal to the predefined initial value;

if it is determined that the reference check is equal to the predefined initial value, deleting the object from the storage; and

if the reference check is not equal to the predefined initial value, sending an error message to the file system; and

wherein in response to a set of new references referring to the object being removed, the method further comprises:

subtracting a single identifier from the reference check, wherein the single identifier is assigned to the set of new references referring to the object.

12. The non-transitory processor-readable medium of claim 11 , wherein the unique identifier associated with the reference referring to the object is determined by compressing a hash of the object.

13. The non-transitory processor-readable medium of claim 12 , wherein compressing the hash of the object further comprises truncating first 64 bits of the hash of the object.

14. The non-transitory processor-readable medium of claim 12 , wherein the hash of the object is determined by a hash function.

15. The non-transitory processor-readable medium of claim 14 , wherein the hash function is one of cryptographic hash functions of SHA family.

16. The non-transitory processor-readable medium of claim 14 , wherein the hash function is one of a Tiger hash function.

17. The non-transitory processor-readable medium of claim 11 , wherein the binary operation of adding has associative and commutative properties.

18. The non-transitory processor-readable medium of claim 11 , wherein the binary operation of subtracting ([−]) is defined using the binary operation of adding ([+]) by following equations:

a[+]b=c,

c[−]b=a,

for any unique identifiers a, b, and c.

19. The non-transitory processor-readable medium of claim 11 , wherein the binary operation of adding is a regular integer number addition.

20. The non-transitory processor-readable medium of claim 11 , wherein the binary operation of adding is a bitwise XOR operation.

Assignments (6)
CHANGE OF NAME Recorded Aug 16, 2024
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: STORAGECRAFT TECHNOLOGY LLC
Reel/Frame 068660/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC; ARCSTOR MIDCO LLC; ARCSERVE ACQUISITION COMPANY LLC; ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY, LLC
To: STORAGECRAFT, LLC
Reel/Frame 068660/0208 →
SECURITY INTEREST Recorded Mar 16, 2021
From: ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY LLC; ZETTA, LLC
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 055603/0219 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 16, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: EXABLOX CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION
Reel/Frame 055614/0852 →
SECURITY INTEREST Recorded Mar 27, 2017
From: EXABLOX CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 041748/0849 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2014
From: BARRUS, FRANK E.
To: EXABLOX CORPORATION
Reel/Frame 033198/0801 →
Continuity (2)
Provisional Application 61815215 · Apr 23, 2013
Related Publication 20140317065A1 · Oct 23, 2014