Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server
Abstract
A method and system for eliminating the redundant allocation and deallocation of special data on disk, wherein the redundant allocation and deallocation of special data on disk is eliminated by providing an innovate technique for specially allocating special data of a storage system. Specially allocated data is data that is pre-allocated on disk and stored in memory of the storage system. “Special data” may include any pre-decided data, one or more portions of data that exceed a pre-defined sharing threshold, and/or one or more portions of data that have been identified by a user as special. For example, in some embodiments, a zero-filled data block is specially allocated by a storage system. As another example, in some embodiments, a data block whose contents correspond to a particular type document header is specially allocated.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method, comprising:
receiving a read request by a processor of a computing device having a pre-allocated storage location at a memory for storing data having a certain characteristic and accessible by a designated pointer; wherein the computing device includes a buffer cache at the memory for caching and a storage device for persistent storage; retrieving by the processor a data block requested by the read request directly from the pre-allocated storage location, when a pointer for the data block matches the designated pointer; and retrieving by the processor the data block from the buffer cache, when the pointer does not match the designated pointer and the data block is stored in the buffer cache; wherein when the data block is not stored in the buffer cache and the pointer does not match the designated pointer, the data block is retrieved by the processor from the storage device.
2 . The method of claim 1 , wherein the pointer for the data block matches the designated pointer based on a reference to level one of an indirect block.
3 . The method of claim 1 wherein the designated pointer includes a physical volume block number (PVBN) and virtual volume block number (VVBN).
4 . The method of claim 1 , wherein the certain characteristic is of a header file.
5 . The method of claim 1 , wherein the certain characteristic is of a zero-filled block of data.
6 . The method of claim 1 , wherein the computing device is a storage server that maintains a specially allocated data structure (SAD) at the memory to store a single instance of data designated by the storage server as special data with the certain characteristic.
7 . The method of claim 6 , wherein the storage server uses a hash value of the single instance of data to determine if any data block is to be written at the pre-allocated storage location.
8 . A method, comprising:
comparing content of a first data block by a processor of a computing device, in response to a write request for a storage device, with content of a second data block having a certain characteristic and stored at a pre-allocated storage location of a memory of the computing device; wherein the computing device includes a buffer cache at the memory for caching; assigning by the processor a designated pointer to the first data block indicating that content of the first data block correspond to the content of the second data block; cancelling the write request by the processor by not writing the first data block to the storage device; retrieving data for a read request from the pre-allocated storage location, when a pointer for the read request data matches the designated pointer; and retrieving the read request data from the buffer cache, when the pointer does not match the designated pointer and the read request data is stored at the buffer cache. wherein when the read request data is not stored in the buffer cache and the pointer does not match the designated pointer, the read request data is retrieved from the storage device.
9 . The method of claim 8 , wherein the designated pointer specifies the pre-allocated location at which contents of the first data block are stored.
10 . The method of claim 8 , wherein canceling the write request includes removing the first data block from a buffer that is used to store data blocks that are to be written to the storage device during a consistency point.
11 . The method of claim 8 , wherein the designated pointer includes a physical volume block number (PVBN) and virtual volume block number (VVBN).
12 . The method of claim 8 , wherein the certain characteristic is of a header file.
13 . The method of claim 8 , wherein the certain characteristic is of a zero-filled block of data.
14 . The method of claim 8 , wherein data blocks stored at the storage device without a pointer matching the designated pointer are deduplicated.
15 . A non-transitory storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:
receive a read request by a processor of a computing device having a pre-allocated storage location at a memory for storing data having a certain characteristic and accessible by a designated pointer; wherein the computing device includes a buffer cache at the memory for caching and a storage device for persistent storage; retrieve by the processor a data block requested by the read request directly from the pre-allocated storage location, when a pointer for the data block matches the designated pointer; and retrieve by the processor the data block from the buffer cache, when the pointer does not match the designated pointer and the data block is stored in the buffer cache; wherein when the data block is not stored in the buffer cache and the pointer does not match the designated pointer, the data block is retrieved by the processor from the storage device.
16 . The non-transitory storage medium of claim 15 , wherein the pointer for the data block matches the designated pointer based on a reference to level one of an indirect block.
17 . The non-transitory storage medium of claim 15 , wherein the designated pointer includes a physical volume block number (PVBN) and virtual volume block number (VVBN).
18 . The non-transitory storage medium of claim 15 , wherein the certain characteristic is of a header file.
19 . The non-transitory storage medium of claim 15 , wherein the certain characteristic is of a zero-filled block of data.
20 . The non-transitory storage medium of claim 15 , wherein the computing device is a storage server that maintains a specially allocated data structure (SAD) at the memory to store a single instance of data designated by the storage server as special data having the certain characteristic.Join the waitlist — get patent alerts
Track US2019018605A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.