Patents Assigned to Fusion-io
-
Patent number: 8832528Abstract: In various embodiments, an apparatus, system, and method may increase data integrity in a redundant storage system. In one embodiment, a request is received for data stored at a storage system having a plurality of storage elements, where one or more of the plurality of storage elements include parity information. A determination is made that one of the plurality of storage elements is unavailable, the unavailable storage element being a functional storage element and including at least a portion of the data. Responsive to the determination, the data is reconstructed based on at least a portion of the parity information and data from one or more of the plurality of storage elements other than the unavailable storage element; a response is provided to the request such that the response includes the reconstructed data.Type: GrantFiled: May 18, 2010Date of Patent: September 9, 2014Assignee: Fusion-io, Inc.Inventors: Jonathan Thatcher, David Flynn, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
-
Patent number: 8825937Abstract: Apparatuses, systems, and methods are disclosed for managing contents of a cache. A method includes receiving a read request for data stored in a non-volatile cache. A method includes determining whether a read request satisfies a frequent read threshold for a cache. A method includes writing data of a read request forward on a sequential log-based writing structure of a cache in response to determining that the read request satisfies a frequent read threshold.Type: GrantFiled: February 25, 2013Date of Patent: September 2, 2014Assignee: Fusion-io, Inc.Inventors: David Atkisson, David Flynn
-
Publication number: 20140237147Abstract: A storage module may be configured to service I/O requests according to different persistence levels. The persistence level of an I/O request may relate to the storage resource(s) used to service the I/O request, the configuration of the storage resource(s), the storage mode of the resources, and so on. In some embodiments, a persistence level may relate to a cache mode of an I/O request. I/O requests pertaining to temporary or disposable data may be serviced using an ephemeral cache mode. An ephemeral cache mode may comprise storing I/O request data in cache storage without writing the data through (or back) to primary storage. Ephemeral cache data may be transferred between hosts in response to virtual machine migration.Type: ApplicationFiled: April 25, 2014Publication date: August 21, 2014Applicant: FUSION-IO, INC.Inventors: VIKRAM JOSHI, Yang Luan, Michael F. Brown, David Flynn, Brent Lim Tze Hao, Jerene Zhe Yang, Prashanth Radhakrishnan
-
Publication number: 20140237159Abstract: A virtual storage layer (VSL) for a non-volatile storage device presents a logical address space of a non-volatile storage device to storage clients. Storage metadata assigns logical identifiers in the logical address space to physical storage locations on the non-volatile storage device. Data is stored on the non-volatile storage device in a sequential log-based format. Data on the non-volatile storage device comprises an event log of the storage operations performed on the non-volatile storage device. The VSL presents an interface for requesting atomic storage operations. Previous versions of data overwritten by the atomic storage device are maintained until the atomic storage operation is successfully completed. Data pertaining to a failed atomic storage operation may be identified using a persistent metadata flag stored with the data on the non-volatile storage device. Data pertaining to failed or incomplete atomic storage requests may be invalidated and removed from the non-volatile storage device.Type: ApplicationFiled: July 28, 2011Publication date: August 21, 2014Applicant: Fusion-io, Inc.Inventors: David Flynn, Stephan Uphoff, Xiangyong Ouyang, David Nellans, Robert Wipfel
-
Patent number: 8806111Abstract: Methods, storage controllers, and systems for backing data of a non-volatile storage device using a backing store are described. One method includes satisfying storage operations using a non-volatile storage device, determining an age for data stored on the non-volatile storage device, and copying data of the non-volatile storage device having an age that satisfies a data retention time threshold to a dedicated backing store. One storage controller includes an operations module that satisfies storage operations using a non-volatile storage device, an age module that determines an age for data stored on the non-volatile storage device, and a backup module that copies data of the non-volatile storage device having an age that satisfies a data retention time threshold to a dedicated backing store.Type: GrantFiled: December 20, 2011Date of Patent: August 12, 2014Assignee: Fusion-io, Inc.Inventor: Nathan M. Whitney
-
Patent number: 8804415Abstract: A method for adaptive voltage range management in non-volatile memory is described. The method includes establishing an adaptive voltage range for a memory element of an electronic memory device. The memory element includes at least two states. The adaptive voltage range comprises a lower state and an upper state. The method also includes establishing an adjustment process to implement a first adjustment of an abode characteristic of a first state and to implement a second adjustment of an abode characteristic of a second state in the adaptive voltage range in response to a trigger event, wherein the first adjustment of an abode characteristic of the first state is different from the second adjustment of an abode characteristic of the second state.Type: GrantFiled: June 19, 2012Date of Patent: August 12, 2014Assignee: Fusion-io, Inc.Inventors: Robert B. Wood, Jea Woong Hyun, Hairong Sun, Warner Losh, David Flynn
-
Publication number: 20140207997Abstract: Techniques are disclosed relating to arranging data on storage media. In one embodiment, a computer system is configured to access a storage array that includes a plurality of storage blocks. The computer system executes a first set of processes and a second set of processes, where the first set of processes operates on selected ones of the plurality of storage blocks to increase a likelihood that the selected storage blocks are operated on by the second set of processes. In some embodiments, the second set of processes determines whether to operate on a storage block based on an amount of invalid data within the storage block. In such an embodiment, the first set of processes increases a likelihood that the storage block is operated on by increasing the amount of invalid data within the storage block.Type: ApplicationFiled: January 21, 2013Publication date: July 24, 2014Applicant: FUSION-IO, INC.Inventors: James Peterson, Ned Plasson
-
Patent number: 8782344Abstract: A cache layer leverages a logical address space and storage metadata of a storage layer (e.g., 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.Type: GrantFiled: January 12, 2012Date of Patent: July 15, 2014Assignee: Fusion-io, Inc.Inventors: Nisha Talagala, Swaminathan Sundararaman, Amar Mudrankit
-
Publication number: 20140195564Abstract: 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.Type: ApplicationFiled: March 12, 2014Publication date: July 10, 2014Applicant: Fusion-io, Inc.Inventors: Nisha Talagala, Swaminathan Sundararaman, David Flynn
-
Publication number: 20140195480Abstract: 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.Type: ApplicationFiled: March 12, 2014Publication date: July 10, 2014Applicant: Fusion-io, Inc.Inventors: Nisha Talagala, Swaminathan Sundararaman, David Flynn
-
Publication number: 20140189216Abstract: An apparatus, system, and method are disclosed for implementing conditional storage operations. Storage clients access and allocate portions of an address space of a non-volatile storage device. A conditional storage request is provided, which causes data to be stored to the non-volatile storage device on the condition that the address space of the device can satisfy the entire request. If only a portion of the request can be satisfied, the conditional storage request may be deferred or fail. An atomic storage request is provided, which may comprise one or more storage operations. The atomic storage request succeeds if all of the one or more storage operations are complete successfully. If one or more of the storage operations fails, the atomic storage request is invalidated, which may comprise deallocating logical identifiers of the request and/or invalidating data on the non-volatile storage device pertaining to the request.Type: ApplicationFiled: November 22, 2013Publication date: July 3, 2014Applicant: Fusion-io, Inc.Inventors: David Flynn, David Nellans, Xiangyong Ouyang
-
Patent number: 8762658Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the storage device. The apparatus, system, and method for managing data include a write request receiver module and a data segment token storage module. The write request receiver module receives a storage request from a requesting device. The storage request includes a request to store a data segment in a storage device. The data segment includes a series of repeated, identical characters or a series of repeated, identical character strings. The data segment token storage module stores a data segment token in the storage device. The data segment token includes at least a data segment identifier and a data segment length. The data segment token is substantially free of data from the data segment.Type: GrantFiled: August 3, 2012Date of Patent: June 24, 2014Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
-
Patent number: 8756375Abstract: Apparatuses, systems, and methods are disclosed for caching data. A method includes directly mapping a logical address of a backing store to a logical address of a non-volatile cache. A method includes mapping, in a logical-to-physical mapping structure, the logical address of the non-volatile cache to a physical location in the non-volatile cache. The physical location may store data associated with the logical address of the backing store. A method includes removing the mapping from the logical-to-physical mapping structure in response to evicting the data from the non-volatile cache so that membership in the logical-to-physical mapping structure denotes storage in the non-volatile cache.Type: GrantFiled: June 29, 2013Date of Patent: June 17, 2014Assignee: Fusion-io, Inc.Inventor: David Flynn
-
Publication number: 20140156965Abstract: 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.Type: ApplicationFiled: February 4, 2013Publication date: June 5, 2014Applicant: FUSION-IO, INC.Inventors: Jingpei Yang, Ned D. Plasson, Nisha Talagala, Dhananjoy Das, Swaminathan Sundararaman
-
Patent number: 8738991Abstract: Apparatuses, systems, and methods are disclosed for reconfiguring an array of storage elements. A storage element error module is configured to determine that one or more storage elements in an array of storage elements are in error. An array of storage elements stores a first ECC block and first parity data generated from the first ECC block. A data reconfiguration module is configured to generate a second ECC block comprising at least a portion of data of a first ECC block. A new configuration storage module is configured to store a second ECC block and associated second parity data on fewer storage elements than a number of storage elements in an array.Type: GrantFiled: May 31, 2013Date of Patent: May 27, 2014Assignee: Fusion-Io, Inc.Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
-
Patent number: 8732349Abstract: An Input/Output (IO) Virtualization (IOV) system provides a mechanism for sharing computer peripheral devices or resources between multiple host computers by presenting a single resource multiple times to numerous host systems. The IOV system provides IO virtualization and host-to-host communication services to the host computers. The system comprises device interfaces coupled to the IO devices. Each IO device comprises at least one endpoint function (EPF). Host interfaces are each coupled to one of a number of host computers. Each host interface includes a proxy, and each proxy comprises configuration data.Type: GrantFiled: May 31, 2010Date of Patent: May 20, 2014Assignee: Fusion-Io, Inc.Inventors: Karagada R. Kishore, Kiron Malwankar, Peter E. Kirkpatrick
-
Patent number: 8725934Abstract: 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.Type: GrantFiled: December 22, 2011Date of Patent: May 13, 2014Assignee: Fusion-io, Inc.Inventors: Ashish Batwara, James G. Peterson, Nisha Talagala, Michael Zappe
-
Patent number: 8725938Abstract: An apparatus, system, and method are disclosed for testing physical regions in a solid-state storage device. The method includes defining a physical storage region on solid-state storage media of a solid-state storage device. The physical storage region includes a subset of storage capacity of the solid-state storage media. The method includes implementing the physical storage region definition on a storage controller such that memory operations are bounded to the physical storage region. The method includes testing wear of solid-state storage media associated with the physical storage region using memory operations bounded to the physical storage region.Type: GrantFiled: September 24, 2012Date of Patent: May 13, 2014Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Robert Barry Wood
-
Patent number: 8719501Abstract: An apparatus, system, and method are disclosed for caching data on a solid-state storage device. The solid-state storage device maintains metadata pertaining to cache operations performed on the solid-state storage device, as well as storage operations of the solid-state storage device. The metadata indicates what data in the cache is valid, as well as information about what data in the nonvolatile cache has been stored in a backing store. A backup engine works through units in the nonvolatile cache device and backs up the valid data to the backing store. During grooming operations, the groomer determines whether the data is valid and whether the data is discardable. Data that is both valid and discardable may be removed during the grooming operation. The groomer may also determine whether the data is cold in determining whether to remove the data from the cache device. The cache device may present to clients a logical space that is the same size as the backing store.Type: GrantFiled: September 8, 2010Date of Patent: May 6, 2014Assignee: Fusion-ioInventors: David Flynn, John Strasser, Jonathan Thatcher, David Atkisson, Michael Zappe, Joshua Aune, Kevin B. Vigor
-
Patent number: 8706968Abstract: An apparatus, system, and method are disclosed for redundant write caching. The apparatus, system, and method are provided with a plurality of modules including a write request module, a first cache write module, a second cache write module, and a trim module. The write request module detects a write request to store data on a storage device. The first cache write module writes data of the write request to a first cache. The second cache write module writes the data to a second cache. The trim module trims the data from one of the first cache and the second cache in response to an indicator that the storage device stores the data. The data remains available in the other of the first cache and the second cache to service read requests.Type: GrantFiled: July 30, 2010Date of Patent: April 22, 2014Assignee: Fusion-io, Inc.Inventor: David Flynn