Patent application number | Description | Published |
20090059862 | Method for Efficient Delivery of Clustered Data Via Adaptive TCP Connection Migration - The present invention relates generally to a method for efficient I/O handling in a cluster-based architecture. According to one aspect, the invention enables efficient scheduling of TCP connection migrations within a cluster. According to another aspect, the invention enables I/Os performed as TCP handoff operations to coexist on the same TCP/IP connection with I/Os performed as remote operations. | 03-05-2009 |
20130024641 | APPARATUS, SYSTEM, AND METHOD FOR MANAGING STORAGE CAPACITY RECOVERY - An apparatus, system, and method are disclosed for managing storage capacity recovery. A monitor module determines a workload write bandwidth for a sequential log-based data storage device. The workload write bandwidth includes a rate at which workload write operations generate reclaimable storage capacity on the data storage device. A target module determines a target reclamation write bandwidth for the data storage device. A capacity reclaim rate is associated with the target reclamation write bandwidth. The capacity reclaim rate satisfies the workload write bandwidth for the data storage device. A reclaim rate module determines a prospective reclamation write bandwidth for the data storage device, based on the workload write bandwidth, to correspond to the capacity reclaim rate associated with the target reclamation write bandwidth. | 01-24-2013 |
20130097369 | APPARATUS, SYSTEM, AND METHOD FOR AUTO-COMMIT MEMORY MANAGEMENT - An apparatus, system, and method are disclosed for auto-commit memory management. The method includes receiving an auto-commit request from a client, such as a barrier request or a checkpoint request. The auto-commit request is associated with an auto-commit buffer of a non-volatile recording device. The method includes issuing a serializing instruction that flushes data from a processor complex to the auto-commit buffer. The method includes determining completion of the serializing instruction flushing the data to the auto-commit buffer. | 04-18-2013 |
20130166820 | METHODS AND APPRATUSES FOR ATOMIC STORAGE OPERATIONS - A method and apparatus for storing data packets in two different logical erase blocks pursuant to an atomic storage request is disclosed. Each data packet stored in response to the atomic storage request comprises persistent metadata indicating that the data packet pertains to an atomic storage request. In addition, a method and apparatus for restart recovery is disclosed. A data packet preceding an append point is identified as satisfying a failed atomic write criteria, indicating that the data packet pertains to a failed atomic storage request. One or more data packets associated with the failed atomic storage request are identified and excluded from an index of a non-volatile storage media. | 06-27-2013 |
20130166855 | SYSTEMS, METHODS, AND INTERFACES FOR VECTOR INPUT/OUTPUT OPERATIONS - Data of a vector storage request pertaining to one or more disjoint, non-adjacent, and/or non-contiguous logical identifier ranges are stored contiguously within a log on a non-volatile storage medium. A request consolidation module modifies one or more sub-requests of the vector storage request in response to other, cached storage requests. Data of an atomic vector storage request may comprise persistent indicators, such as persistent metadata flags, to identify data pertaining to incomplete atomic storage requests. A restart recovery module identifies and excludes data of incomplete atomic operations. | 06-27-2013 |
20130185475 | SYSTEMS AND METHODS FOR CACHE PROFILING - A cache module leverages a logical address space and storage metadata of a storage module (e.g., virtual storage module) to cache data of a backing store. The cache module maintains access metadata to track access characteristics of logical identifiers in the logical address space, including accesses pertaining to data that is not currently in the cache. The access metadata may be separate from the storage metadata maintained by the storage module. The cache module may calculate a performance metric of the cache based on profiling metadata, which may include portions of the access metadata. The cache module may determine predictive performance metrics of different cache configurations. An optimal cache configuration may be identified based on the predictive performance metrics. | 07-18-2013 |
20130185488 | SYSTEMS AND METHODS FOR COOPERATIVE CACHE MANAGEMENT - A cache module leverages storage metadata to cache data of a backing store on a non-volatile storage device. The cache module maintains access metadata pertaining to access characteristics of logical identifiers in the logical address space, including access characteristics of un-cached logical identifiers (e.g., logical identifiers associated with data that is not stored on the non-volatile storage device). The access metadata may be separate and/or distinct from the storage metadata. The cache module determines whether to admit data into the cache and/or evict data from the cache using the access metadata. A storage module may provide eviction candidates to the cache module. The cache module may select candidates for eviction. The storage module may leverage the eviction candidates to improve the performance of storage recovery and/or grooming operations. | 07-18-2013 |
20130185508 | SYSTEMS AND METHODS FOR MANAGING CACHE ADMISSION - A cache layer leverages a logical address space and storage metadata of a storage layer (e.g., virtual storage layer) to cache data of a backing store. The cache layer maintains access metadata to track data characteristics of logical identifiers in the logical address space, including accesses pertaining to data that is not in the cache. The access metadata may be separate and distinct from the storage metadata maintained by the storage layer. The cache layer determines whether to admit data into the cache using the access metadata. Data may be admitted into the cache when the data satisfies cache admission criteria, which may include an access threshold and/or a sequentiality metric. Time-ordered history of the access metadata is used to identify important/useful blocks in the logical address space of the backing store that would be beneficial to cache. | 07-18-2013 |
20130191601 | APPARATUS, SYSTEM, AND METHOD FOR MANAGING A CACHE - An apparatus, system, and method are disclosed for managing a cache. A cache interface module provides access to a plurality of virtual storage units of a solid-state storage device over a cache interface. At least one of the virtual storage units comprises a cache unit. A cache command module exchanges cache management information for the at least one cache unit with one or more cache clients over the cache interface. A cache management module manages the at least one cache unit based on the cache management information exchanged with the one or more cache clients. | 07-25-2013 |
20130205097 | ENHANCED INTEGRITY THROUGH ATOMIC WRITES IN CACHE - A system and method facilitate processing atomic storage requests. The method includes receiving, from a storage client, an atomic storage request for a first storage device that is incapable of processing atomic write operations. The method also includes processing the atomic storage request at a translation interface. The method also includes storing the atomic storage request in one or more storage operations in a second storage device capable of processing the atomic storage request. | 08-08-2013 |
20130212321 | Apparatus, System, and Method for Auto-Commit Memory Management - Apparatuses, systems, methods, and computer program products are disclosed. A method includes receiving a request to copy data from a first location to a second location. The data may be associated with an identifier known to a client that initiated the request. One of the locations may include an auto-commit buffer of a non-volatile device. An auto-commit buffer may be configured to commit stored data from the auto-commit buffer to a non-volatile medium of a non-volatile device in response to a restart event. A method includes copying the data from the first location to the second location. A method includes preserving the identifier known to the client and an association between the identifier and a location of the data at the second location such that client can retrieve the data based on the identifier known to the client. | 08-15-2013 |
20130227201 | Apparatus, System, and Method for Accessing Auto-Commit Memory - Apparatuses, systems, methods, and computer program products are disclosed for providing access to auto-commit memory. An auto-commit memory module is configured to cause an auto-commit memory to commit stored data to a non-volatile memory medium in response to a failure condition. A mapping module is configured to determine whether to associate a range of data with the auto-commit memory. A bypass module is configured to service a request for the range of data directly from the auto-commit memory in response to the auto-commit mapping module determining to associate the range of data with the auto-commit memory. | 08-29-2013 |
20130227236 | SYSTEMS AND METHODS FOR STORAGE ALLOCATION - Resources of an address space are managed in dynamically sized ranges, extents, sets, and/or blocks. The address space may be divided into regions, each corresponding to a different, respective allocation granularity. Allocating a block within a first region of the address space may comprise allocating a particular number of logical addresses (e.g., a particular range, set, and/or block of addresses), and allocating a block within a different region may comprise allocating a different number of logical addresses. The regions may be configured to reduce the metadata overhead needed to identify free address blocks (and/or maintain address block allocations), while facilitating efficient use of the address space for differently sized data structures. | 08-29-2013 |
20130262752 | EFFICIENT USE OF HYBRID MEDIA IN CACHE ARCHITECTURES - A multi-tiered cache manager and methods for managing multi-tiered cache are described. Multi-tiered cache manager causes cached data to be initially stored in the RAM elements and selects portions of the cached data stored in the RAM elements to be moved to the flash elements. Each flash element is organized as a plurality of write blocks having a block size and wherein a predefined maximum number of writes is permitted to each write block. The portions of the cached data may be selected based on a maximum write rate calculated from the maximum number of writes allowed for the flash device and a specified lifetime of the cache system. | 10-03-2013 |
20130275391 | Data Expiry in a Non-Volatile Device - Apparatuses, systems, and methods are disclosed for data expiry. A method includes examining metadata associated with data in a non-volatile recording medium. A method includes expiring data from a non-volatile recording medium in response to metadata indicating that an expiration period for the data has been satisfied. | 10-17-2013 |
20130275656 | APPARATUS, SYSTEM, AND METHOD FOR KEY-VALUE POOL IDENTIFIER ENCODING - Apparatuses, systems, and methods are disclosed for a key-value store. A method includes encoding a key of a key-value pair into a logical address of a sparse logical address space for a non-volatile medium. A method includes mapping a logical address to a physical location in the non-volatile medium. A method includes storing a value of a key-value pair at a physical location. | 10-17-2013 |
20130332660 | Hybrid Checkpointed Memory - Apparatuses, systems, methods, and computer program products are disclosed for hybrid checkpointed memory. A method includes referencing data of a range of virtual memory of a host. The referenced data is already stored by a non-volatile medium. A method includes writing, to a non-volatile medium, data of a range of virtual memory that is not stored by the non-volatile medium. A method includes providing access to data of a range of virtual memory from a non-volatile medium using a persistent identifier associated with referenced data and written data. | 12-12-2013 |
20140006685 | SYSTEMS, METHODS, AND INTERFACES FOR MANAGING PERSISTENT DATA OF ATOMIC STORAGE OPERATIONS | 01-02-2014 |
20140025877 | AUTO-COMMIT MEMORY METADATA - Apparatuses, systems, methods, and computer program products are disclosed. A method includes tracking which portions of data stored in a volatile memory buffer are not yet stored in a non-volatile memory medium. A volatile memory buffer may be accessible using memory semantics. A volatile memory buffer may be associated with logic configured to ensure that the data stored in the volatile memory buffer is non-volatile. A method includes maintaining consistency of data between a volatile memory buffer and a non-volatile memory medium based on tracked portions of the data. A method includes copying at least portions of data not yet stored in a non-volatile memory medium to the non-volatile memory medium in response to a trigger. | 01-23-2014 |
20140089264 | SNAPSHOTS FOR A NON-VOLATILE DEVICE - Apparatuses, systems, and methods are disclosed for snapshots of a non-volatile device. A method includes writing data in a sequential log structure for a non-volatile device. A method includes marking a point, in a sequential log structure, for a snapshot of data. A method includes preserving a logical-to-physical mapping for a snapshot based on a marked point and a temporal order for data in a sequential log structure. | 03-27-2014 |
20140089265 | Time Sequence Data Management - An apparatus, system, and method are disclosed for data management. The method includes writing data in a sequential log structure. The method also includes receiving a time sequence request from a client. The method further includes servicing the time sequence request based on a temporal order of the data in the sequential log structure. | 03-27-2014 |
20140095775 | SYSTEMS AND METHODS FOR CACHE ENDURANCE - A cache and/or storage module may be configured to reduce write amplification in a cache storage. Cache layer write amplification (CLWA) may occur due to an over-permissive admission policy. The cache module may be configured to reduce CLWA by configuring admission policies to avoid unnecessary writes. Admission policies may be predicated on access and/or sequentiality metrics. Flash layer write amplification (FLWA) may arise due to the write-once properties of the storage medium. FLWA may be reduced by delegating cache eviction functionality to the underlying storage layer. The cache and storage layers may be configured to communicate coordination information, which may be leveraged to improve the performance of cache and/or storage operations. | 04-03-2014 |
20140101389 | CACHE MANAGEMENT - A system includes a data store and a memory cache subsystem. A method for pre-fetching data from the data store for the cache includes determining a performance characteristic of a data store. The method also includes identifying a pre-fetch policy configured to utilize the determined performance characteristic of the data store. The method also includes pre-fetching data stored in the data store by copying data from the data store to the cache according to the pre-fetch policy identified to utilize the determined performance characteristic of the data store. | 04-10-2014 |
20140156965 | ADVANCED GROOMER FOR STORAGE ARRAY - Techniques are disclosed relating to reclaiming data on recording media. In one embodiment, an apparatus has a solid-state memory array including a plurality of blocks. The solid-state memory array may implement a cache for one or more storage devices. Respective operational effects are determined relating to reclaiming ones of the plurality of blocks. One of the plurality of blocks is selected as a candidate for reclamation based on the determined operational effects, and the selected block is reclaimed. In some embodiments, the determined operational effects for a given block indicate a number of write operations to be performed to reclaim the given block. In some embodiments, operational effects are determined based on criteria relating to assigned quality-of-service levels. In some embodiments, operational effects are determined based on information relating virtual storage units. | 06-05-2014 |
20140195480 | PERSISTENT MEMORY MANAGEMENT - Apparatuses, systems, methods, and computer program products are disclosed for persistent memory management. Persistent memory management may include providing a persistent data structure stored at least partially in volatile memory configured to ensure persistence of the data structure in a non-volatile memory medium. Persistent memory management may include replicating a persistent data structure in volatile memory buffers of at least two non-volatile storage devices. Persistent memory management may include preserving a snapshot copy of data in association with completion of a barrier operation for the data. Persistent memory management may include determining which interface of a plurality of supported interfaces is to be used to flush data from a processor complex. | 07-10-2014 |
20140195564 | PERSISTENT DATA STRUCTURES - Apparatuses, systems, methods, and computer program products are disclosed for a persistent data structure. A method includes associating a logical identifier with a data structure. A method includes writing data of a data structure to a first region of a volatile memory module. A volatile memory module may be configured to ensure that data is preserved in response to a trigger. A method includes copying data of a data structure from a volatile memory module to a non-volatile storage medium such that the data of the data structure remains associated with a logical identifier. | 07-10-2014 |
20140281307 | HANDLING SNAPSHOT INFORMATION FOR A STORAGE DEVICE - Techniques are disclosed relating to handling snapshot data for a storage device. In one embodiment, a computing system maintains information that indicates the state of data associated with an application at a particular point in time. In this embodiment, the computing system assigns an epoch number to a current epoch, where the current epoch is an interval between the particular point in time and a future point in time. In this embodiment, the computing system writes, during the current epoch, a block of data to the storage device. In this embodiment, the writing the block of data includes storing the epoch number with the block of data. | 09-18-2014 |
20140282514 | VIRTUALIZATION SUPPORT FOR STORAGE DEVICES - Techniques are disclosed relating to enabling virtual machines to access data on a physical recording medium. In one embodiment, a computing system provides a logical address space for a storage device to an allocation agent that is executable to allocate the logical address space to a plurality of virtual machines having access to the storage device. In such an embodiment, the logical address space is larger than a physical address space of the storage device. The computing system may then process a storage request from one of the plurality of virtual machines. In some embodiments, the allocation agent is a hypervisor executing on the computing system. In some embodiments, the computing system tracks utilizations of the storage device by the plurality of virtual machines, and based on the utilizations, enforces a quality of service level associated with one or more of the plurality of virtual machines. | 09-18-2014 |
20140310499 | SYSTEMS, METHODS AND INTERFACES FOR DATA VIRTUALIZATION - A data services module performs log storage operations in response to requests by storing data on one or more storage devices, and appending information pertaining to the requests to a separate metadata log. A log order of the metadata log may correspond to an order in which the requests were received, regardless of the order in which data of the requests are written to the storage devices. The requests may correspond to identifiers of a logical address space. The data services module implements an any-to-any translation layer configured to map identifiers of the logical address space to the stored data. The virtualization module may include a metadata management module configured to checkpoint the translation layer metadata by, inter alia, appending aggregate, checkpoint entries to the metadata log. The data services module may leverage the translation layer between the logical identifiers and underlying storage locations to efficiently implement logical manipulation operations. | 10-16-2014 |
20140325115 | Conditional Iteration for a Non-Volatile Device - Apparatuses, systems, methods, and computer program products are disclosed for conditional iteration. A method includes receiving a request comprising a condition. A method includes checking an address mapping structure for entries satisfying a condition for a request. A method includes providing a result for a request based on one or more entries satisfying a condition for a request. | 10-30-2014 |
20140344507 | SYSTEMS AND METHODS FOR STORAGE METADATA MANAGEMENT - A storage layer may be configured to over-provision logical storage resources to objects. The storage layer may provision the resources in response to, inter alia, a request to open and/or create a zero-length file. The storage layer may be further configured to store data of the objects in a contextual format configured to associate the data with respective logical identifiers. The storage layer may determine an actual, storage size of the object based on the associations stored on the stored associations. Storage clients may rely on the storage layer to determine the size of the object and, as such, may defer and/or eliminate updates to persistent metadata. | 11-20-2014 |
20140365707 | MEMORY DEVICE WITH VOLATILE AND NON-VOLATILE MEDIA - Apparatuses, systems, methods, and computer program products are disclosed for providing a memory device with volatile and non-volatile media. A volatile memory medium is on a circuit board configured to be installed on a memory bus of a processor. A non-volatile memory medium is on the same circuit board. A mapping module is configured to selectively store data in either the volatile memory medium or the non-volatile memory medium. The data is provided by way of one or more commands from the processor. | 12-11-2014 |
20150032982 | SYSTEMS AND METHODS FOR STORAGE CONSISTENCY - A storage layer is configured to implement efficient open-close consistency operations. Open close consistency may comprise preserving the original state of a file until the file is closed. The storage layer may be configured to clone a file in response to a file open request. Cloning the file may comprise referencing file data by two separate sets of identifiers. One set may be configured to reflect file modifications, and the other set may be configured to preserve the original state of the file. Subsequent operations configured to modify the file may be performed in reference to one of the sets of identifiers, while the storage layer provides access to the unmodified file through the other set of identifiers. Closing the file may comprise merging the sets of identifiers according to a merge policy. | 01-29-2015 |
20150039577 | SYSTEMS AND METHODS FOR ATOMIC STORAGE OPERATIONS - An atomic storage module may be configured to implement atomic storage operation directed to a first set of identifiers in reference to a second, different set of identifiers. In response to completing the atomic storage operation, the atomic storage module may move the corresponding data to the first, target set of identifiers. The move operation may comprise modifying a logical interface of the data. The move operation may further include storing persistent metadata configured to bind the data to the first set of identifiers. | 02-05-2015 |
20150113223 | SYSTEMS AND METHODS FOR ADAPTIVE RESERVE STORAGE - A storage layer may over-provision physical storage resources of a storage medium by reserving a portion of the full physical storage capacity of the storage medium for use as reserve capacity. The reserve capacity may be used to prevent write stall conditions and/or for grooming operations, such as storage recovery, refresh, and the like. A reserve module may be configured to adapt the reserve capacity in accordance with, inter alia, operating conditions on the storage layer. The reserve module may be configured to dynamically modify the storage capacity available through the storage layer. A cache layer configured to cache data of a backing store on the storage layer, may be configured to add and/or remove cache entries in response to changes in the reserve capacity. | 04-23-2015 |
20150113326 | SYSTEMS AND METHODS FOR DISTRIBUTED ATOMIC STORAGE OPERATIONS - An aggregation module combines a plurality of logical address spaces to form a conglomerated address space. The logical address spaces comprising the conglomerated address space may correspond to different respective storage modules and/or storage devices. An atomic aggregation module coordinates atomic storage operations within the conglomerated address space, and which span multiple storage modules. The aggregation module may identify the storage modules used to implement the atomic storage request, assign a sequence indicator to the atomic storage request, and issue atomic storage requests (sub-requests) to the storage modules. The storage modules may be configured to store a completion tag comprising the sequence indicator upon completing the sub-requests issued thereto. The aggregation module may identify incomplete atomic storage requests based on the completion information stored on the storage modules. | 04-23-2015 |
20150134926 | SYSTEMS AND METHODS FOR LOG COORDINATION - A storage module may be configured to perform log storage operations on a storage log maintained on a non-volatile storage medium. An I/O client may utilize storage services of the storage module to maintain an upper-level log. The storage module may be configured to coordinate log storage and/or management operations between the storage log and the upper-level log. The coordination may include adapting a segment size of the logs to reduce write amplification. The coordination may further include coordinating validity information between log layers, adapting log grooming operations to reduce storage recovery overhead, defragmenting upper-level log data within the storage address space, preventing fragmentation of upper-level log data, and so on. The storage module may coordinate log operations by use of log coordination messages communicated between log layers. | 05-14-2015 |
20150242309 | SYSTEMS AND METHODS FOR STORAGE COMPRESSION - A compression manager generates a reduced-size data set for a page. The reduced-size data set is stored on a storage medium by a storage module, and unused portions of the page are identified and/or recorded by the storage module. The reduced-size data set may be generated by compressing the page. The reduced-size data set may be written in response to a request from a client, which provides a message that identifies the unused portion(s) of the page. The page may be stored in a file, and the unused portion may correspond to empty portion(s) within the file. The storage module may maintain an index to map the page to the reduced-size data set, such that portions of the page are unmapped. The storage capacity used by the page may correspond to the mapped portion of the page, and exclude portion(s) of the page that are unmapped. | 08-27-2015 |