Dynamic data compression
First Claim
1. A method for performing one or more in-line data compression operations over one or more data units during execution of a storage input-output (IO) operation, the method comprising:
- receiving at least one storage IO operation associated with at least one data group comprising one or more data units, the at least one storage IO operation being received from an application and comprising a read request or a write request;
applying one or more compression rules in-line with the at least one storage IO operation to the data units to determine one or more compression parameters, wherein actions performed in-line are actions completed prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation;
executing the at least one storage IO operation in accordance with the compression parameters, wherein the storage IO operation performs at least one in-line data compression operations on at least a portion of the data group, the at least one in-line data compression operations comprising compressing or decompressing at least the portion of the data group according to the compression parameters prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; and
returning a status to the application, the status pertaining to the execution of the storage IO operation.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for performing compression operations on persistently-stored data blocks during read/write commands. A method embodiment performs in-line data compression operations over data blocks referenced by a caller. The in-line data compression operations are performed during execution of a storage input-output (I/O) command, between the event of receipt of the storage I/O command and the event of returning status of the storage I/O command. The storage I/O operation is associated with at least one data group comprising one or more data blocks that are identified by the caller. Upon receipt of the storage I/O command, one or more compression rules are applied to the data blocks to determine one or more compression parameters, which compression parameters are used to form specific compression operations that are performed over at least a portion of the data group. The status pertaining to the execution of the storage I/O operation is returned to the caller.
41 Citations
20 Claims
-
1. A method for performing one or more in-line data compression operations over one or more data units during execution of a storage input-output (IO) operation, the method comprising:
-
receiving at least one storage IO operation associated with at least one data group comprising one or more data units, the at least one storage IO operation being received from an application and comprising a read request or a write request; applying one or more compression rules in-line with the at least one storage IO operation to the data units to determine one or more compression parameters, wherein actions performed in-line are actions completed prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; executing the at least one storage IO operation in accordance with the compression parameters, wherein the storage IO operation performs at least one in-line data compression operations on at least a portion of the data group, the at least one in-line data compression operations comprising compressing or decompressing at least the portion of the data group according to the compression parameters prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; and returning a status to the application, the status pertaining to the execution of the storage IO operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer program, embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by one or more processors causes the one or more processor to execute a set of acts for performing one or more in-line data compression operations over one or more data units during execution of a storage input-output (IO) operation, the set of acts comprising:
-
receiving at least one storage IO operation associated with at least one data group comprising one or more data units, the at least one storage IO operation being received from an application and comprising a read request or a write request; applying one or more compression rules in-line with the at least one storage IO operation to the data units to determine one or more compression parameters, wherein actions performed in-line are actions completed prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; executing the at least one storage IO operation in accordance with the compression parameters, wherein the storage IO operation performs at least one in-line data compression operations on at least a portion of the data group, the at least one in-line data compression operations comprising compressing or decompressing at least the portion of the data group according to the compression parameters prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; and returning a status to the application, the status pertaining to the execution of the storage IO operation. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A system for performing one or more in-line data compression operations over one or more data units during execution of a storage input-output (IO) operation, the system comprising:
-
a storage medium having stored thereon a sequence of instructions; and one or more processors that execute the sequence of instructions to cause the one or more processors to perform a set of acts, the set of acts comprising; receiving at least one storage IO operation associated with at least one data group comprising one or more data units, the at least one storage IO operation being received from an application and comprising a read request or a write request; applying one or more compression rules in-line with the at least one storage IO operation to the data units to determine one or more compression parameters, wherein actions performed in-line are actions completed prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; executing the at least one storage IO operation in accordance with the compression parameters, wherein the storage IO operation performs at least one in-line data compression operations on at least a portion of the data group, the at least one in-line data compression operations comprising compressing or decompressing at least the portion of the data group according to the compression parameters prior to returning or writing the one or more data units at one or more storage locations specified by the at least one storage IO operation; and returning a status to the application, the status pertaining to the execution of the storage IO operation. - View Dependent Claims (20)
-
Specification