IP Library Granted Patent US 11,816,139
Granted Patent B2
US 11,816,139 · App. 17/077,836 · Granted Nov 14, 2023

Block-level classification of unstructured data

Inventors: Sanjib Mallick (Bangalore, IN); Kundan Kumar (Bangalore, IN); Sumana Ramachandra (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F16/355G06F16/13G06F16/172
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,816,139
App. No.
17/077,836
Granted
Nov 14, 2023
Kind
B2
Abstract

Methods, apparatus, and processor-readable storage media for block-level classification of unstructured data are provided herein. An example apparatus includes a host device comprising a processor coupled to memory, the host device being configured to communicate over a network with a storage system, and further being configured to: obtain a pointer to a page cache associated with an input-output operation for at least one page of unstructured data of a file; obtain an index node object of the file based at least in part on the pointer to the page cache; derive at least one characteristic of the file based at least in part on the obtained index node object; and provide an indication of the at least one characteristic to the storage system. The storage system determines whether to apply one or more functions to the unstructured data based on the indication.

Claims (62)

1. An apparatus comprising:

a host device comprising a processor coupled to a memory, the host device being configured to communicate over a network with a storage system, the host device being configured:

to obtain, by an input-output driver of the host device, a pointer to a page cache of the host device, wherein the pointer is:

(i) associated with an input-output operation for at least one page of unstructured data of a file, and

(ii) obtained at least in part by intercepting a queue request corresponding to the input-output operation at a block layer;

to obtain an index node object of the file based at least in part on the pointer to the page cache;

to derive at least one characteristic of the file based at least in part on the obtained index node object of the file, wherein the at least one characteristic comprises a file type;

to insert, using the input-output driver of the host device, an indication of the at least one characteristic into the input-output operation;

to provide the input-output operation to the storage system, wherein the storage system determines, based at least in part on the indication, at least one of:

(i) to apply at least one function to the unstructured data of the file; and

(ii) to prevent at least one function from being applied to the unstructured data of the file;

to update the index node object of the file with the derived file type; and

to insert an indication of the derived file type into one or more subsequent input-output operations using the updated index node object of the file.

2. The apparatus of claim 1 , wherein the page cache comprises a pointer to the index node object of the file, and wherein the index node object of the file is obtained based at least in part on the pointer to the index node object of the file.

3. The apparatus of claim 1 ,

wherein the index node object of the file comprises a file header offset value; and

wherein the file type is derived by extracting a file header from the unstructured data of the file based on the file header offset value and comparing the extracted file header to a set of file headers defined for a plurality of file types.

4. The apparatus of claim 1 , wherein the file type is derived based on a filename extension indicated in the index node object of the file.

5. The apparatus of claim 1 , wherein the indication of the derived file type is inserted into a command descriptor block.

6. The apparatus of claim 1 , wherein the at least one characteristic comprises a type of a file system, and wherein the providing comprises using a file system mount status mechanism to indicate the type of the file system to the storage system.

7. The apparatus of claim 6 , wherein the index node object of the file comprises a pointer to a superblock, and wherein the type of the file system is derived based on the superblock.

8. The apparatus of claim 1 , wherein the at least one function comprises at least one of:

a deduplication function;

an encryption function; and

a compression function.

9. The apparatus of claim 1 , wherein obtaining the pointer to the page cache comprises:

using the intercepted queue request to obtain a block request packet comprising the pointer to the page cache.

10. A method performed by a host device configured to communicate over a network with a storage system, comprising:

obtaining, by an input-output driver of the host device, a pointer to a page cache of the host device, wherein the pointer is:

(i) associated with an input-output operation for at least one page of unstructured data of a file, and

(ii) obtained at least in part by intercepting a queue request corresponding to the input-output operation at a block layer;

obtaining an index node object of the file based at least in part on the pointer to the page cache;

deriving at least one characteristic of the file based at least in part on the obtained index node object of the file, wherein the at least one characteristic comprises a file type;

inserting, using the input-output driver of the host device, an indication of the at least one characteristic into the input-output operation;

providing the input-output operation to the storage system, wherein the storage system determines, based at least in part on the indication, at least one of:

(i) to apply at least one function to the unstructured data of the file; and

(ii) to prevent at least one function from being applied to the unstructured data of the file;

updating the index node object of the file with the derived file type; and

inserting an indication of the derived file type into one or more subsequent input-output operations using the updated index node object of the file;

wherein the host device comprises a processor coupled to a memory.

11. The method of claim 10 , wherein the page cache comprises a pointer to the index node object of the file, and wherein the index node object of the file is obtained based at least in part on the pointer to the index node object of the file.

12. The method of claim 10 ,

wherein the index node object of the file comprises a file header offset value; and

wherein the file type is derived by extracting a file header from the unstructured data of the file based on the file header offset value and comparing the extracted file header to a set of file headers defined for a plurality of file types.

13. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by a host device configured to communicate over a network with a storage system, causes the host device:

to obtain, by an input-output driver of the host device, a pointer to a page cache of the host device, wherein the pointer is: (i) associated with an input-output operation for at least one page of unstructured data of a file, and (ii) obtained at least in part by intercepting a queue request corresponding to the input-output operation at a block layer;

to obtain an index node object of the file based at least in part on the pointer to the page cache;

to derive at least one characteristic of the file based at least in part on the obtained index node object of the file, wherein the at least one characteristic comprises a file type;

to insert, using the input-output driver of the host device, an indication of the at least one characteristic into the input-output operation;

to provide the input-output operation to the storage system, wherein the storage system determines, based at least in part on the indication, at least one of: (i) to apply at least one function to the unstructured data of the file; and (ii) to prevent at least one function from being applied to the unstructured data of the file;

to update the index node object of the file with the derived file type; and

to insert an indication of the derived file type into one or more subsequent input-output operations using the updated index node object of the file.

14. The computer program product of claim 13 , wherein the page cache comprises a pointer to the index node object of the file, and wherein the index node object of the file is obtained based at least in part on the pointer to the index node object of the file.

15. The computer program product of claim 13 ,

wherein the index node object of the file comprises a file header offset value; and

wherein the file type is derived by extracting a file header from the unstructured data of the file based on the file header offset value and comparing the extracted file header to a set of file headers defined for a plurality of file types.

16. The computer program product of claim 13 , wherein obtaining the pointer to the page cache comprises:

using the intercepted queue request to obtain a block request packet comprising the pointer to the page cache.

17. The method of claim 10 , wherein the derived file type is derived based on a filename extension indicated in the index node object of the file.

18. The method of claim 10 , wherein the indication of the derived file type is inserted into a command descriptor block.

19. The method of claim 10 , wherein the at least one characteristic comprises a type of a file system, and wherein the providing comprises using a file system mount status mechanism to indicate the type of the file system to the storage system.

20. The method of claim 19 , wherein the index node object of the file comprises a pointer to a superblock, and wherein the type of the file system is derived based on the superblock.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2020
From: MALLICK, SANJIB; KUMAR, KUNDAN; RAMACHANDRA, SUMANA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054143/0870 →
Continuity (1)
Related Publication 20220129494A1 · Apr 28, 2022