Patent ID: 8554745
Filing Date: 2013-10-08
Classification: G06F,H03M,H04L

Abstract:
1. A computer-implemented method, comprising: receiving, at a storage server, a request to store a data block, wherein a location for the data block is stored in an indirect block in a buffer tree having a root node containing storage server file information, the data block storing actual data that comprises a file; in response to receiving the request, storing a compressed version of the data block in a compression group, wherein the compression group includes a plurality of logically related compressed data blocks, and wherein each of the plurality of logically related compressed data blocks are referenced by an indirect block pointer in the buffer tree; storing the compressed version of the data block in a buffer cache; receiving, from a client, a request for the data block on the storage server; in response to the request from the client for the data block, searching for the compression group delimiter within metadata associated with a predetermined number of data blocks adjacent to the compressed data block to determine whether the data block is within the compression group, wherein the searching is performed before decompressing the compressed version of the data block from the buffer cache; sending the requested data block to the client; storing the compression group in a nonvolatile memory prior to flushing the compression group to a physical storage device; and in response to reaching a consistency point, flushing the compression group from the nonvolatile memory to the physical storage device.