Systems and methods for transformation of logical data objects for storage
First Claim
1. A method for writing data to a storage device, said method comprising:
- generating, in the storage device, a logical data object comprising at least one transformed section including a predefined size;
receiving variable size chunks of raw data;
comparing a characteristic of the variable size chunks of raw data to a predefined criterion related to an actual time of transformation or an estimated time of transformation, the estimated time of transformation including an estimated time necessary to transform data that, when transformed, would substantially amount to a transformed section size;
transforming the variable size chunks of raw data in accordance with an order said chunks are received to generate transformed data chunks, wherein at least two of the transformed data chunks comprise different sizes;
accumulating the transformed data chunks to form said at least one transformed section if the predefined criterion matches the characteristic of the variable size chunks of raw data;
identifying each of the variable size chunks of raw data as being non-transformed data or partially transformed data and accumulating the non-transformed data or the partially transformed data in the at least one transformed section if the predefined criterion does not match the characteristic, wherein the identification of the variable size chunks of raw data as being non-transformed data or partially transformed data is included as entries in an index; and
repeating the comparing step, repeating at least one of the transforming step and the identifying step for subsequently received variable size chunks of raw data, and accumulating subsequently transformed data chunks and non-transformed data chunks or subsequently transformed data chunks and partially transformed data chunks,wherein;
the transformed data chunks are accumulated until the at least one transformed section includes a size matching the predefined size, andaccumulating comprises sequentially writing said transformed data chunks into said at least one transformed section in accordance with the order said chunks are received.
0 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for transforming a logical data object for storage in a storage device operable with at least one storage protocol, creating, reading, writing, optimization and restoring thereof. Transforming the logical data object comprises creating in the storage device a transformed logical data object comprising one or more allocated storage sections with a predefined size; transforming one or more sequentially obtained chunks of obtained data corresponding to the transforming logical data object; and sequentially storing the processed data chunks into said storage sections in accordance with a receive order of said chunks, wherein said storage sections serve as atomic elements of transformation/de-transformation operations during input/output transactions on the logical data object. The processing may comprise two or more data transformation techniques coordinated in time, concurrently executing autonomous sets of instructions, and provided in a manner preserving the sequence of processing and storing the processed data chunks.
138 Citations
21 Claims
-
1. A method for writing data to a storage device, said method comprising:
-
generating, in the storage device, a logical data object comprising at least one transformed section including a predefined size; receiving variable size chunks of raw data; comparing a characteristic of the variable size chunks of raw data to a predefined criterion related to an actual time of transformation or an estimated time of transformation, the estimated time of transformation including an estimated time necessary to transform data that, when transformed, would substantially amount to a transformed section size; transforming the variable size chunks of raw data in accordance with an order said chunks are received to generate transformed data chunks, wherein at least two of the transformed data chunks comprise different sizes; accumulating the transformed data chunks to form said at least one transformed section if the predefined criterion matches the characteristic of the variable size chunks of raw data; identifying each of the variable size chunks of raw data as being non-transformed data or partially transformed data and accumulating the non-transformed data or the partially transformed data in the at least one transformed section if the predefined criterion does not match the characteristic, wherein the identification of the variable size chunks of raw data as being non-transformed data or partially transformed data is included as entries in an index; and repeating the comparing step, repeating at least one of the transforming step and the identifying step for subsequently received variable size chunks of raw data, and accumulating subsequently transformed data chunks and non-transformed data chunks or subsequently transformed data chunks and partially transformed data chunks, wherein; the transformed data chunks are accumulated until the at least one transformed section includes a size matching the predefined size, and accumulating comprises sequentially writing said transformed data chunks into said at least one transformed section in accordance with the order said chunks are received. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for writing data, said system comprising:
-
a processor; and a storage device coupled to said processor, wherein the storage device is configured to store computer code that, when executed by the processor, causes the processor to; generate, in the storage device, a logical data object, the logical data object comprising at least one transformed section with a predefined size, receive variable size chunks of raw data, compare a characteristic of the variable size chunks of raw data to a predefined criterion related to an actual time of transformation or an estimated time of transformation, the estimated time of transformation including an estimated time necessary to transform data that, when transformed, would substantially amount to a transformed section size; transform the variable size chunks of raw data in accordance with an order said chunks are received to generate transformed data chunks, wherein at least two of the transformed data chunks comprise different sizes, accumulate the transformed data chunks to form said at least one transformed section if the predefined criterion matches the characteristic of the variable size chunks of raw data, identify each of the variable size chunks of raw data as being non-transformed data or partially transformed data and accumulating the non-transformed data or the partially transformed data in the at least one transformed section if the predefined criterion does not match the characteristic, wherein the identification of the variable size chunks of raw data as being non-transformed data or partially transformed data is included as entries in an index, and repeat the comparing step, repeat at least one of the transforming step and the identifying step for subsequently received variable size chunks of raw data, and accumulate subsequently transformed data chunks and non-transformed data chunks or subsequently transformed data chunks and partially transformed data chunks, wherein; the transformed data chunks are accumulated until the at least one transformed section includes a size matching the predefined size, and accumulating comprises sequentially writing said transformed data chunks into said at least one transformed section in accordance with the order said chunks are received. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product comprising a computer readable storage medium including a computer readable program code embodied therein for writing data to a storage device, said computer program product comprising:
-
computer code for generating, in the storage device, a logical data object comprising at least one transformed section with a predefined size; computer code for receiving variable size chunks of raw data; computer code for comparing a characteristic of the variable size chunks of raw data to a predefined criterion related to an actual time of transformation or an estimated time of transformation, the estimated time of transformation including an estimated time necessary to transform data that, when transformed, would substantially amount to a transformed section size; computer code for transforming the variable size chunks of raw data in accordance with an order said chunks are received to generate transformed data chunks, wherein at least two of the transformed data chunks comprise different sizes; computer code for accumulating the transformed data chunks to form said at least one transformed section if the predefined criterion matches the characteristic of the variable size chunks of raw data; computer code for identifying each of the variable size chunks of raw data as being non-transformed data or partially transformed data and accumulating the non-transformed data or the partially transformed data in the at least one transformed section if the predefined criterion does not match the characteristic, wherein the identification of the variable size chunks of raw data as being non-transformed data or partially transformed data is included as entries in an index; computer code for repeating the comparing step, computer code for repeating at least one of the transforming step and the identifying step for subsequently received variable size chunks of raw data, and computer code for accumulating subsequently transformed data chunks and non-transformed data chunks or subsequently transformed data chunks and partially transformed data chunks, wherein; the transformed data chunks are accumulated until the at least one transformed section includes a size matching the predefined size, and accumulating comprises sequentially writing said transformed data chunks into said at least one transformed section in accordance with the order said chunks are received. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification