US2019018605A1PendingUtilityA1

Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server

Assignee: NETAPP INCPriority: Feb 26, 2009Filed: Sep 17, 2018Published: Jan 17, 2019
Est. expiryFeb 26, 2029(~2.6 yrs left)· nominal 20-yr term from priority
G06F 3/0641G06F 2212/222G06F 2206/1014G06F 12/0871G06F 11/1453G06F 3/0679G06F 3/0619G06F 3/0608G06F 16/24G06F 16/1748G06F 3/067G06F 16/1824G06F 17/30156G06F 17/30197G06F 17/30386
62
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.