Systems and methods for transformation of logical data objects for storage
First Claim
1. A method for reading data from a transformed logical object comprising a plurality of transformed storage sections, said method comprising:
- receiving, by a processor, a plurality of data chunks for storage in the transformed logical object;
comparing a characteristic of each data chunk to a predefined criterion comprising estimated or actual time of transformation of each data chunk;
transforming each data chunk and accumulating each transformed data chunk in a first storage section if the predefined characteristic matches the characteristic of each particular data chunk;
identifying each data chunk as being non-transformed or partly transformed and accumulating each non-transformed data chunk and each partly transformed data chunk in a second storage section if the predefined characteristic does not match the characteristic of each particular data chunk;
receiving, by the processor, a read request to read a range of data stored in the transformed logical object, wherein the read request includes a starting point in time at which the data was stored;
identifying the range of data utilizing the starting point in time included in the read request;
selecting a last-updated data related to the range of data, wherein the last-updated data is included in an index entry that facilitates a one-to-one relationship between the range of data and live data to be extracted from the transformed logical object;
de-transforming the first storage section including a first portion of the live data to generate first data;
determining that the second storage section includes a second portion of the live data;
de-transforming the partly transformed data chunks in the second storage section to generate second data comprising a combination of the de-transformed partly transformed data chunks and the non-transformed data chunks;
identifying each portion of the requested range of data included in the first data and the second data;
storing each portion of the requested range of data identified in the first data and the second data in cache; and
transmitting each portion of the requested range of data identified in the first data and the second data from the cache to a requestor, wherein;
the first portion of the live data is less than the first storage section in its entirety, andthe second portion of the live data is less than the second storage section in its entirety.
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.
143 Citations
21 Claims
-
1. A method for reading data from a transformed logical object comprising a plurality of transformed storage sections, said method comprising:
-
receiving, by a processor, a plurality of data chunks for storage in the transformed logical object; comparing a characteristic of each data chunk to a predefined criterion comprising estimated or actual time of transformation of each data chunk; transforming each data chunk and accumulating each transformed data chunk in a first storage section if the predefined characteristic matches the characteristic of each particular data chunk; identifying each data chunk as being non-transformed or partly transformed and accumulating each non-transformed data chunk and each partly transformed data chunk in a second storage section if the predefined characteristic does not match the characteristic of each particular data chunk; receiving, by the processor, a read request to read a range of data stored in the transformed logical object, wherein the read request includes a starting point in time at which the data was stored; identifying the range of data utilizing the starting point in time included in the read request; selecting a last-updated data related to the range of data, wherein the last-updated data is included in an index entry that facilitates a one-to-one relationship between the range of data and live data to be extracted from the transformed logical object; de-transforming the first storage section including a first portion of the live data to generate first data; determining that the second storage section includes a second portion of the live data; de-transforming the partly transformed data chunks in the second storage section to generate second data comprising a combination of the de-transformed partly transformed data chunks and the non-transformed data chunks; identifying each portion of the requested range of data included in the first data and the second data; storing each portion of the requested range of data identified in the first data and the second data in cache; and transmitting each portion of the requested range of data identified in the first data and the second data from the cache to a requestor, wherein; the first portion of the live data is less than the first storage section in its entirety, and the second portion of the live data is less than the second storage section in its entirety. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for reading data from a transformed logical object, 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; receive a plurality of data chunks for storage in the transformed logical object; comparing a characteristic of each data chunk to a predefined criterion comprising estimated or actual time of transformation of each data chunk, transform each data chunk and accumulating each transformed data chunk in a first storage section if the predefined characteristic matches the characteristic of each particular data chunk, identify each data chunk as being non-transformed or partly transformed and accumulating each non-transformed data chunk and each partly transformed data chunk in a second storage section if the predefined characteristic does not match the characteristic of each particular data chunk, receive a read request to read a range of data stored in the transformed logical object, wherein the read request includes a starting point in time at which the data was stored, identifying the range of data utilizing the starting point in time included in the read request, select a last-updated data related to the range of data, wherein the last-updated data is included in an index entry that facilitates a one-to-one relationship between the range of data and live data to be extracted from the transformed logical object, de-transform the first storage section including a first portion of the live data to generate first data, determine that the second storage section includes a second portion of the live data, de-transform the partly transformed data chunks in the second storage section to generate second data comprising a combination of the de-transformed partly transformed data chunks and the non-transformed data chunks, identify each portion of the requested range of data included in the first data and the second data, store each portion of the requested range of data identified in the first data and the second data in cache, and transmit each portion of the requested range of data identified in the first data and the second data from the cache to a requestor, wherein; the first portion of the live data is less than the first storage section in its entirety, and the second portion of the live data is less than the second storage section in its entirety. - 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 reading data from a transformed logical object comprising a plurality of transformed storage sections, said computer program product comprising:
-
computer code for receiving, by a processor, a plurality of data chunks for storage in the transformed logical object; computer code for comparing a characteristic of each data chunk to a predefined criterion comprising an estimated or actual time of transformation of each data chunk; computer code for transforming each data chunk and accumulating each transformed data chunk in a first storage section if the predefined characteristic matches the characteristic of each particular data chunk; computer code for identifying each data chunk as being non-transformed or partly transformed and accumulating each non-transformed data chunk and each partly transformed data chunk in a second storage section if the predefined characteristic does not match the characteristic of each particular data chunk; computer code for receiving, by the processor, a read request to read a range of data stored in the transformed logical object, wherein the read request includes a starting point in time at which the data was stored, computer code for identifying the range of data utilizing the starting point in time included in the read request; computer code for selecting a last-updated data related to the range, wherein the last-updated data is included in an index entry that facilitates a one-to-one relationship between the range of data and live data to be extracted from the transformed logical object; computer code for de-transforming the first storage section including a first portion of the live data to generate first data; computer code for determining that the second storage section includes a second portion of the live data; computer code for de-transforming the partly transformed data chunks in the second storage section to generate second data comprising a combination of the de-transformed partly transformed data chunks and the non-transformed data chunks; computer code for identifying each portion of the requested range of data included in the first data and the second data; computer code for storing each portion of the requested range of data identified in the first data and the second data in cache; and computer code for each portion of the requested range of data identified in the first data and the second data from the cache to a requestor, wherein; the first portion of the live data is less than the first storage section in its entirety, and the second portion of the live data is less than the second storage section in its entirety. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification