IP Library Granted Patent US 8,316,008
Granted Patent B1
US 8,316,008 · App. 11/279,855 · Granted Nov 20, 2012

Fast file attribute search

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 8,316,008
App. No.
11/279,855
Granted
Nov 20, 2012
Kind
B1
Abstract

A method of performing a file search with specified attribute criteria includes generating or having access to a file system image of the data storage system. A substantially sequential scan of the file system image can then be performed. Based on the scan, a list of inodes (called a specified criteria inode map) on the file system image that have the specified attribute criteria can be built. This sequential scan eliminates the random scan of the file system image, thereby dramatically reducing the total time associated with reading of the inodes. A file tree of the data storage system can then be walked to find inodes (in the file tree) that match inodes in the specified criteria inode map. A list of files that correspond to matching inodes can thus be quickly and easily generated.

Claims (45)

1. A method comprising:

searching for matching files by performing a physically sequential scan of inodes in a file system image of a data storage device to read meta data attributes of the inodes, the scan being performed according to a physically sequential read pattern along the data storage device, the inodes in the file system image being stored such that the numerical order of the inodes differs from the physical ordering of the inodes in the file system image;

comparing the meta data attributes of the scanned inodes to specified attribute criteria defining the matching files; and

building a list of scanned inodes in the file system image whose meta data attributes match the specified attribute criteria, wherein the list includes a bitmap where each inode is represented by a bit indexed by its inode number.

2. The method of claim 1 , wherein the inodes are organized in chunks, further comprising forming the chunks in anticipation of usage.

3. The method of claim 1 , further comprising forming an inode chunk having a bitmap indicating which inodes are actually in use, wherein the reading of unused inodes can be avoided using the bitmap.

4. The method of claim 1 , further comprising:

walking a file tree of the data storage device to find inodes in the file tree that match the inodes in the list; and

generating a list of the matching files that correspond to matching inodes.

5. A method comprising:

searching for matching files by performing a physically sequential scan of inodes in a data storage device to read meta data attributes of the inodes, the scan being performed according to a physically sequential read pattern along the data storage device, the inodes in the data storage device being stored such that the numerical order of the inodes differs from the physical ordering of the inodes in the data storage device;

comparing the meta data attributes of the scanned inodes to specified attribute criteria defining the matching files; and

building a list of scanned inodes on the data storage device whose meta data attributes match the specified attribute criteria, wherein the list includes a bitmap where each inode is represented by a bit indexed by its inode number.

6. The method of claim 5 , wherein the inodes are organized in chunks, further comprising forming the chunks in anticipation of usage.

7. The method of claim 5 , further comprising forming an inode chunk having a bitmap indicating which inodes are actually in use, wherein the reading of unused inodes can be avoided using the bitmap.

8. The method of claim 5 , further comprising:

walking a file tree of the data storage device to find inodes in the file tree that match the inodes in the list; and

generating a list of the matching files that correspond to matching inodes.

9. A method comprising:

generating a file system image of the data storage system;

searching for matching files by performing a physically sequential scan of inodes in the file system image to read meta data attributes of the inodes, the scan being performed according to a physically sequential read pattern along the file system image, the inodes in the file system image being stored such that the numerical order of the inodes differs from the physical ordering of the inodes in the file system image;

comparing the meta data attributes of the scanned inodes to specified attribute criteria defining the matching files;

building a list of scanned inodes on the file system image whose meta data attributes match the specified attribute criteria;

walking a file tree of the data storage system to find inodes in the file tree that match the inodes in the list; and

generating a list of the matching files that correspond to matching inodes.

10. The method of claim 9 , wherein the list includes a bitmap where each inode is represented by a bit indexed by its inode number.

11. The method of claim 9 , wherein the inodes are organized in chunks, further comprising forming the chunks in anticipation of usage.

12. The method of claim 9 , further comprising forming an inode chunk having a bitmap indicating which inodes are actually in use, wherein the reading of unused inodes can be avoided using the bitmap.

13. A method comprising:

searching for matching files by performing a physically sequential scan of inodes in a data storage system to read meta data attributes of the inodes, the scan being performed according to a physically sequential read pattern along the data storage system, the inodes in the data storage system being stored such that the numerical order of the inodes differs from the physical ordering of the inodes in the data storage system;

comparing the meta data attributes of the inodes to specified attribute criteria defining the matching files;

building a list of inodes on the data storage system whose meta data attributes match the specified attribute criteria;

walking a file tree of the data storage system to find inodes in the file tree that match the inodes in the list; and

generating a list of the matching files that correspond to matching inodes.

14. The method of claim 13 , wherein the list includes a bitmap where each inode is represented by a bit indexed by its inode number.

15. The method of claim 13 , further comprising:

receiving a request for files created within a specified time frame;

determining the specified attribute criteria according to the request for files; and

providing, responsive to the request, the list of the matching files corresponding to the matching inodes.

16. The method of claim 15 , wherein the request for files includes a request for email messages.

17. A method comprising:

searching for matching files by performing a physically sequential scan of inodes in a memory of a data storage device to read meta data attributes of the inodes, the scan being performed according to a physically sequential read pattern along the memory of the data storage device, the inodes in the data storage device being stored such that the numerical order of the inodes differs from the physical ordering of the inodes in the data storage device;

building a list of scanned inodes on the data storage device whose meta data attributes match specified attribute criteria;

walking a file tree of the data storage device to find inodes in the file tree that match the inodes in the list; and

generating a list of the matching files that correspond to matching inodes.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Mar 8, 2016
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: CRITICAL PATH, INC.
Reel/Frame 037924/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2016
From: MIRAPOINT SOFTWARE, INC.
To: CRITICAL PATH, INC.
Reel/Frame 037842/0804 →
SECURITY AGREEMENT Recorded Dec 3, 2013
From: CRITICAL PATH, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 031763/0778 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2010
From: SQUARE 1 BANK
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 025381/0870 →
CONTRIBUTION AGREEMENT, CERTIFICATE OF INCORPORATION, AMENDED AND RESTATED CERTIFICATE OF INCORPORATION Recorded Sep 26, 2008
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 021596/0490 →
CONTRIBUTION AGREEMENT Recorded Sep 26, 2008
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 021596/0433 →
SECURITY AGREEMENT Recorded Feb 15, 2008
From: MIRAPOINT SOFTWARE, INC.
To: SQUARE 1 BANK
Reel/Frame 020526/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2007
From: MIRAPOINT, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 020143/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2007
From: ESCALATE CAPITAL I, L.P.
To: MIRAPOINT SOFTWARE, INC.
Reel/Frame 020143/0249 →
SECURITY AGREEMENT Recorded Nov 21, 2007
From: MIRAPOINT SOFTWARE, INC.
To: ESCALATE CAPITAL I, L.P.
Reel/Frame 020143/0327 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2006
From: KOHLI, JASPAL
To: MIRAPOINT, INC.
Reel/Frame 017476/0723 →