Overwriting part of compressed data without decompressing on-disk compressed data
First Claim
1. A computerized method comprising:
- receiving, by a storage server from a client, a write request for a block of data in a compression group pointed to by an indirection block, the compression group comprising a group of data blocks that is compressed;
partially overwriting, by the storage server, the compression group while the compression group remains compressed, wherein the partial overwriting comprises,storing the block of data of the write request as an uncompressed block outside the compression group, andgenerating an indirection reference in the indirection block to point to the uncompressed block as well as the compression group;
determining at least one of whether one or more predetermined criteria are violated by the partial overwriting of the compression group if the one or more predetermined criteria exist for the storage server and whether a snapshot of data is to occur within a predetermined amount of time, wherein the one or more predetermined criteria comprise at least one of a system usage guarantee, a space usage guarantee, and a user-defined criteria;
determining, by the storage server, whether the partially overwritten compression group including the uncompressed block of data should be compressed, wherein said determining whether the partially overwritten compression group including the uncompressed block of data should be compressed comprises,determining that the partially overwritten compression group should be compressed if the one or more predetermined criteria exist for the storage server and are violated;
determining that the partially overwritten compression group should not be compressed if the one or more predetermined criteria are not violated;
determining that the partially overwritten compression group should be compressed if the snapshot of data is to occur within a predetermined amount of time,determining that the partially overwritten compression group should not be compressed if the snapshot of data is not to occur within a predetermined amount of time;
deferring, by the storage server, compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed; and
compressing the partially overwritten compression group if the partially overwritten compression group should be compressed.
1 Assignment
0 Petitions
Accused Products
Abstract
Overwriting part of compressed data without decompressing on-disk compressed data is implemented by receiving a write request for a block of data in a compression group from a client, wherein the compression group comprises a group of data blocks that is compressed, wherein the block of data is uncompressed. The storage server partially overwrites the compression group, wherein the compression group remains compressed while the partial overwriting is performed. The storage server determines whether the partially overwritten compression group including the uncompressed block of data should be compressed. The storage server defers compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed. The storage server compresses the partially overwritten compression group if the partially overwritten compression group should be compressed.
64 Citations
12 Claims
-
1. A computerized method comprising:
-
receiving, by a storage server from a client, a write request for a block of data in a compression group pointed to by an indirection block, the compression group comprising a group of data blocks that is compressed; partially overwriting, by the storage server, the compression group while the compression group remains compressed, wherein the partial overwriting comprises, storing the block of data of the write request as an uncompressed block outside the compression group, and generating an indirection reference in the indirection block to point to the uncompressed block as well as the compression group; determining at least one of whether one or more predetermined criteria are violated by the partial overwriting of the compression group if the one or more predetermined criteria exist for the storage server and whether a snapshot of data is to occur within a predetermined amount of time, wherein the one or more predetermined criteria comprise at least one of a system usage guarantee, a space usage guarantee, and a user-defined criteria; determining, by the storage server, whether the partially overwritten compression group including the uncompressed block of data should be compressed, wherein said determining whether the partially overwritten compression group including the uncompressed block of data should be compressed comprises, determining that the partially overwritten compression group should be compressed if the one or more predetermined criteria exist for the storage server and are violated; determining that the partially overwritten compression group should not be compressed if the one or more predetermined criteria are not violated; determining that the partially overwritten compression group should be compressed if the snapshot of data is to occur within a predetermined amount of time, determining that the partially overwritten compression group should not be compressed if the snapshot of data is not to occur within a predetermined amount of time; deferring, by the storage server, compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed; and compressing the partially overwritten compression group if the partially overwritten compression group should be compressed. - View Dependent Claims (2, 3, 4)
-
-
5. A storage server comprising:
-
a memory; a processor coupled to the memory through a bus, wherein the processor executes instructions that cause the storage server to, receive a write request for a block of data in a compression group pointed to by an indirection block, the compression group comprising a group of data blocks that is compressed; partially overwrite the compression group while, the compression group remains compressed, wherein the partial overwriting comprises, storing the block of data of the write request as an uncompressed block outside the compression group, and generating an indirection reference in the indirection block to point to the uncompressed block as well as the compression group; determine at least one of whether one or more predetermined criteria are violated by the partial overwriting of the compression group if the one or more predetermined criteria exist for the storage server and whether a snapshot of data is to occur within a predetermined amount of time, wherein the one or more predetermined criteria comprise at least one of a system usage guarantee, a space usage guarantee, and a user-defined criteria; determine whether the partially overwritten compression group including the uncompressed block of data should be compressed, wherein the program instructions executable by the processor to cause the storage server to whether the partially overwritten compression group including the uncompressed block of data should be compressed comprises program instructions executable by the processor to cause the storage server to, determine that the partially overwritten compression group should be compressed if the one or more predetermined criteria exist for the storage server and are violated; determine that the partially overwritten compression group should not be compressed if the one or more predetermined criteria are not violated; determine that the partially overwritten compression group should be compressed if the snapshot of data is to occur within a predetermined amount of time, determine that the partially overwritten compression group should not be compressed if the snapshot of data is not to occur within a predetermined amount of time; defer compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed; and compress the partially overwritten compression group if the partially overwritten compression group should be compressed. - View Dependent Claims (6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium embodied with executable instructions that cause a processor to perform operations comprising:
-
receiving a write request for a block of data in a compression group pointed to by an indirection block, the compression group comprising a group of data blocks that is compressed; partially overwriting the compression group while the compression group remains compressed, wherein the partial overwriting comprises, storing the block of data of the write request as an uncompressed block outside the compression group, and generating an indirection reference in the indirection block to point to the uncompressed block as well as the compression group; determining at least one of whether one or more predetermined criteria are violated by the partial overwriting of the compression group if the one or more predetermined criteria exist for the storage server and whether a snapshot of data is to occur within a predetermined amount of time, wherein the one or more predetermined criteria comprise at least one of a system usage guarantee, a space usage guarantee, and a user-defined criteria determining whether the partially overwritten compression group including the uncompressed block of data should be compressed, wherein said determining whether the partially overwritten compression group including the uncompressed block of data should be compressed comprises, determining that the partially overwritten compression group should be compressed if the one or more predetermined criteria exist for the storage server and are violated; determining that the partially overwritten compression group should not be compressed if the one or more predetermined criteria are not violated; determining that the partially overwritten compression group should be compressed if the snapshot of data is to occur within a predetermined amount of time, determining that the partially overwritten compression group should not be compressed if the snapshot of data is not to occur within a predetermined amount of time; deferring compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed; and compressing the partially overwritten compression group if the partially overwritten compression group should be compressed. - View Dependent Claims (10, 11, 12)
-
Specification