Patent ID: 9098208
Filing Date: 2015-08-04
Classification: G06F,H04L

Abstract:
1. A method for transformation of logical data objects for storage, comprising: transmitting, by a server via a storage network, a plurality of data chunks and a plurality of write requests to write the data chunks to a plurality of storage devices, each data chunk associated with a respective write request and each storage device comprising one or more logical data objects (LOs); intercepting, by a processor in a transformation system coupled to the server via the storage network such that the storage network is located between the transformation system and the server and coupled to the plurality of storage devices via the storage network such that the storage network is located between the transformation system and the plurality of storage devices, each of the plurality of data chunks and each of the plurality of write requests prior to each of the plurality of data chunks and each of the plurality of write requests reaching the plurality of storage devices, wherein the interception is transparent to the server and the plurality of storage devices; transforming, by the processor, each data chunk; determining a destination storage device of each transformed data chunk and each associated write request; queuing each transformed data chunk and its associated write request that includes a same destination storage device in a respective queue; temporarily storing in a buffer in the transformation system each queue of the transformed data chunks and their respective associated write requests prior to transmitting each transformed data chunk and its associated write request to their respective destination storage device; grouping each transformed data chunk in each queue to form a plurality of groups of transformed data chunks and associated write requests, determining if a target LO for storing a particular group of transformed data chunks in a respective storage device includes sufficient free space to accommodate the particular group of transformed data chunks; if the target LO includes sufficient free space to accommodate the particular group of transformed data chunks: if the target LO includes insufficient free space to accommodate the particular group of transformed data chunks: