IP Library Granted Patent US 7,693,859
Granted Patent B2
US 7,693,859 · App. 11/712,271 · Granted Apr 6, 2010

System and method for detecting file content similarity within a file system

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 7,693,859
App. No.
11/712,271
Granted
Apr 6, 2010
Kind
B2
Abstract

A system and method for detecting file content similarity within a file system. The system may include a storage device configured to store a plurality of files and a file system configured to manage access to the storage device. The file system may be configured to compute a compressed size of at least a portion of a given file, and to store an indication of the compressed size in a named stream corresponding to the given file. In one specific implementation of the system, the file system may be further configured to determine a value of a file harmony metric from the compressed size of the concatenation of a first and second file and the compressed sizes of the first and second files, where the compressed sizes of the first and second files may be stored in a corresponding one of a plurality of respective named streams.

Claims (54)

1. A system, comprising:

at least one processor;

a storage device configured to store a plurality of files; and

a memory storing program instructions, wherein the program instructions are executable by the at least one processor to implement a file system configured to manage access to said storage device, wherein for a given one of said plurality of files including a plurality of ordered portions, said file system is configured to:

store a plurality of compression dictionaries, wherein each of said plurality of compression dictionaries corresponds respectively to one of said ordered portions of said given file;

store a plurality of compressed sizes of respective ones of said ordered portions of said given file; and

in response to detecting a write operation to a given one of said ordered portions of said given file, invalidate one or more of said compression dictionaries corresponding respectively to said given ordered portion and any higher-ordered portions than said given ordered portion of said given file.

2. The system as recited in claim 1 , wherein said file system is further configured, subsequent to invalidating said one or more of said compression dictionaries, to recompute a respective compressed size of only said given ordered portion and any higher-ordered portions than said given ordered portion of said given file.

3. The system as recited in claim 2 , wherein said file system is further configured to recompute said respective compressed sizes of said given ordered portion and any higher-ordered portions than said given ordered portion dependent upon one or more of said compression dictionaries corresponding respectively to one or more lower-ordered portions than said given ordered portion.

4. The system as recited in claim 1 , wherein said file system is further configured, subsequent to invalidating one or more of said compression dictionaries, to update only said invalidated one or more compression dictionaries.

5. The system as recited in claim 1 , wherein a given respective compression dictionary corresponding to a higher-ordered portion of said given file includes a given respective compression dictionary corresponding to a lower-ordered portion.

6. The system as recited in claim 1 , wherein said file system is further configured to:

suspend computing a compressed size of a particular ordered portion of said given file; and

subsequent to said suspending, resume computing said compressed size of said particular ordered portion of said given file without recomputing a compressed size of a lower-ordered portion than said particular ordered portion of said given file.

7. The system as recited in claim 1 , wherein said file system is further configured to:

store a compressed size of a second one of said plurality of files;

compute a compressed size of a concatenated file resulting from appending said second file to said given file; and

determine a value of a file harmony metric from said compressed size of said concatenated file, said stored compressed size of said second file, and one or more of said compressed sizes of said ordered portions of said given file.

8. A method, comprising:

storing a plurality of files; and

for a given one of said plurality of files including a plurality of ordered portions, storing a plurality of compression dictionaries, wherein each of said plurality of compression dictionaries corresponds respectively to one of said ordered portions of said given file;

storing a plurality of compressed sizes of respective ones of said ordered portions of said given file; and

in response to detecting a write operation to a given one of said ordered portions of said given file, invalidating one or more of said compression dictionaries corresponding respectively to said given ordered portion and any higher-ordered portions than said given ordered portion of said given file.

9. The method as recited in claim 8 , further comprising:

subsequent to invalidating said one or more of said compression dictionaries, recomputing a respective compressed size of only said given ordered portion and any higher-ordered portions than said given ordered portion of said given file.

10. The method as recited in claim 9 , wherein said recomputing said respective compressed sizes of said given ordered portion and any higher-ordered portions than said given ordered portion is dependent upon one or more of said compression dictionaries corresponding respectively to one or more lower-ordered portions than said given ordered portion.

11. The method as recited in claim 8 , further comprising:

subsequent to invalidating one or more of said compression dictionaries, updating only said invalidated one or more compression dictionaries.

12. The method as recited in claim 8 , wherein a given respective compression dictionary corresponding to a higher-ordered portion of said given file includes a given respective compression dictionary corresponding to a lower-ordered portion.

13. The method as recited in claim 8 , further comprising:

suspending computing a compressed size of a particular ordered portion of said given file; and

subsequent to said suspending, resuming computing said compressed size of said particular ordered portion of said given file without recomputing a compressed size of a lower-ordered portion than said particular ordered portion of said given file.

14. The method as recited in claim 8 , further comprising:

storing a compressed size of a second one of said plurality of files;

computing a compressed size of a concatenated file resulting from appending said second file to said given file; and

determining a value of a file harmony metric from said compressed size of said concatenated file, said stored compressed size of said second file, and one or more of said compressed sizes of said ordered portions of said given file.

15. A computer-accessible physical storage medium comprising program instructions, wherein the program instructions are computer-executable to:

store a plurality of files; and

for a given one of said plurality of files including a plurality of ordered portions, store a plurality of compression dictionaries, wherein each of said plurality of compression dictionaries corresponds respectively to one of said ordered portions of said given file;

store a plurality of compressed sizes of respective ones of said ordered portions of said given file; and

in response to detecting a write operation to a given one of said ordered portions of said given file, invalidate one or more of said compression dictionaries corresponding respectively to said given ordered portion and any higher-ordered portions than said given ordered portion of said given file.

16. The computer-accessible physical storage medium as recited in claim 15 , wherein the program instructions are further computer-executable to:

subsequent to invalidating said one or more of said compression dictionaries, recompute a respective compressed size of only said given ordered portion and any higher-ordered portions than said given ordered portion of said given file.

17. The computer-accessible physical storage medium as recited in claim 16 , wherein the program instructions are further computer-executable to recompute said respective compressed sizes of said given ordered portion and any higher-ordered portions than said given ordered portion dependent upon one or more of said compression dictionaries corresponding respectively to one or more lower-ordered portions than said given ordered portion.

18. The computer-accessible physical storage medium as recited in claim 15 , wherein the program instructions are further computer-executable to:

subsequent to invalidating one or more of said compression dictionaries, update only said invalidated one or more compression dictionaries.

19. The computer-accessible physical storage medium as recited in claim 15 , wherein a given respective compression dictionary corresponding to a higher-ordered portion of said given file includes a given respective compression dictionary corresponding to a lower-ordered portion.

20. The computer-accessible physical storage medium as recited in claim 15 , wherein the program instructions are further computer-executable to:

suspend computing a compressed size of a particular ordered portion of said given file; and

subsequent to said suspending, resume computing said compressed size of said particular ordered portion of said given file without recomputing a compressed size of a lower-ordered portion than said particular ordered portion of said given file.

21. The computer-accessible physical storage medium as recited in claim 15 , wherein the program instructions are further computer-executable to:

store a compressed size of a second one of said plurality of files;

compute a compressed size of a concatenated file resulting from appending said second file to said given file; and

determine a value of a file harmony metric from said compressed size of said concatenated file, said stored compressed size of said second file, and one or more of said compressed sizes of said ordered portions of said given file.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
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 →
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 IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2009
From: BORTHAKUR, DHRUBAJYOTI; PREMO, NUR; PASQUA, JOSEPH
To: VERITAS OPERATING CORPORATION
Reel/Frame 023369/0605 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →