Nearstore compression of data in a storage system
AssigneeNetApp, Inc.
InventorsDnyaneshwar Pawar, Subramaniam V. Periyagaram, Sandeep Yadav
Life of this patent
Estimating the term…
Abstract
A network adapter receives a request to store a data block. The data block is sent from the network adapter to a compression module. The compression module generates a compressed data block from the data block. The compressed data block or a reference to the compressed data block is stored in a buffer cache. The compressed data block is stored in nonvolatile memory. It is determined that the compressed data block should be flushed a storage device. In response to determining that the compressed data block should be flushed to the storage device, the compressed data block is flushed from the nonvolatile memory to the storage device.
Claims20
A computer-implemented method, comprising:
- receiving, at a network adapter of a storage controller, a data block to store;
- sending, from the network adapter to a compression module of the storage controller, the data block;
- in response to receiving the data block from the network adapter, generating, by the compression module, a compressed data block from the data block;
- storing, by the compression module, the compressed data block or a reference to the compressed data block in a buffer cache, wherein the storage controller comprises the buffer cache;
- storing, by the compression module, the compressed data block in nonvolatile memory, wherein the storage controller comprises the nonvolatile memory;
- determining, by the storage controller, that the compressed data block should be flushed to a physical storage device coupled with the storage controller;
- and
- in response to determining that the compressed data block should be flushed to the physical storage device, flushing the compressed data block from the nonvolatile memory to the physical storage device.
A device comprising:
- a processor;
- nonvolatile memory;
- and
- a computer readable storage medium coupled with the processor, wherein the computer readable storage medium includes instructions which, when executed by the processor, cause the device to:
- receive, from a network adapter, a data block to store;
- in response to receiving the data block, generating, by a compression module, a compressed data block from the data block;
- store, by the compression module, the compressed data block or a reference to the compressed data block in a buffer cache, wherein the device comprises the buffer cache;
- store, by the compression module, the compressed data block in nonvolatile memory;
- determine that the compressed data block should be flushed to a storage device coupled with the device;
- and
- in response to a determination that the compressed data block should be flushed to the storage device, flush the compressed data block from the nonvolatile memory to the storage device.
A non-transitory computer readable storage medium having computer usable program code embodied therewith, the computer usable program code comprising computer usable program code to:
- receive, from a network adapter of a storage controller, a data block to store;
- in response to receiving the data block, generate, by a compression module of the storage controller, a compressed data block from the data block;
- store, by the compression module, the compressed data block or a reference to the compressed data block in a buffer cache, wherein the storage controller comprises the buffer cache;
- store, by the compression module, the compressed data block in nonvolatile memory, wherein the storage controller comprises the nonvolatile memory;
- determine that the compressed data block should be flushed to a storage device coupled with the device;
- and
- in response to a determination that the compressed data block should be flushed to the storage device, flush the compressed data block from the nonvolatile memory to the storage device.
Dependencies are inferred from the claim text.