Patents Assigned to Fusion-IO, Inc.
-
Publication number: 20130275656Abstract: 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.Type: ApplicationFiled: August 20, 2012Publication date: October 17, 2013Applicant: FUSION-IO, INC.Inventors: Nisha Talagala, Swaminathan Sundararaman, Bharath Ramsundar, Ashish Batwara
-
Patent number: 8533569Abstract: An apparatus, system, and method are disclosed for managing data in a solid-state storage device. A solid-state storage and solid-state controller are included. The solid-state storage controller includes a write data pipeline and a read data pipeline The write data pipeline includes a packetizer and an ECC generator. The packetizer receives a data segment and creates one or more data packets sized for the solid-state storage. The ECC generator generates one or more error-correcting codes (“ECC”) for the data packets received from the packetizer. The read data pipeline includes an ECC correction module, a depacketizer, and an alignment module. The ECC correction module reads a data packet from solid-state storage, determines if a data error exists using corresponding ECC and corrects errors. The depacketizer checks and removes one or more packet headers. The alignment module removes unwanted data, and re-formats the data as data segments of an object.Type: GrantFiled: August 30, 2012Date of Patent: September 10, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
-
Patent number: 8533406Abstract: An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.Type: GrantFiled: September 7, 2012Date of Patent: September 10, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
-
Patent number: 8527693Abstract: An auto-commit memory is capable of implementing a pre-configured, triggered commit action in response to a failure condition, such as a loss of power, invalid shutdown, fault, or the like. A computing device may access the auto-commit memory using memory access semantics (using a memory mapping mechanism or the like), bypassing system calls typically required in virtual memory operations. Since the auto-commit memory is pre-configured to commit data stored thereon in the event of a failure, users of the auto-commit memory may view these memory semantic operations as being instantly committed. Operations to commit the data are taken out of the write-commit path.Type: GrantFiled: December 13, 2011Date of Patent: September 3, 2013Assignee: Fusion IO, Inc.Inventors: David Flynn, David Nellans, John Strasser, James G. Peterson, Robert Wipfel
-
Patent number: 8527841Abstract: A controller is used for an electronic memory device which has multi-level cell (MLC) memory elements. The individual MLC memory elements are capable of storing at least two bits. The controller includes a physical interface to couple the controller to the electronic memory device. The controller also includes a processing unit coupled to the physical interface. The processing unit operates the electronic memory device using a restricted number of programming states for a single data bit. The restricted number of programming states includes first and second states used to represent a most significant bit (MSB) of the at least two bits of data of the designated programming states.Type: GrantFiled: September 11, 2012Date of Patent: September 3, 2013Assignee: Fusion-Io, Inc.Inventors: Robert Wood, Jea Woong Hyun
-
Publication number: 20130227236Abstract: 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.Type: ApplicationFiled: April 17, 2013Publication date: August 29, 2013Applicant: Fusion-io, Inc.Inventor: Fusion-io, Inc.
-
Publication number: 20130227201Abstract: 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.Type: ApplicationFiled: March 15, 2013Publication date: August 29, 2013Applicant: FUSION-IO, INC.Inventor: Fusion-io, Inc.
-
Patent number: 8521915Abstract: An Input/Output (IO) Virtualization (IOV) system provides for sharing of computer peripheral devices between multiple host computers by presenting a single device multiple times to numerous host systems. The IOV system, in coupling or connecting multiple host computers and multiple IO devices, provides IO virtualization and host-to-host communication services to the host computers. The system comprises device interfaces coupled to IO devices, and host interfaces coupled to each of a number of host computers. The IO devices are initialized in a first domain. Each host interface exposes functions of the independent IO devices to the host computer to which it is coupled. Each host computer accesses functions from a host domain that is an independent domain specific to the host computer performing the access. The first domain is different from the host domain.Type: GrantFiled: May 31, 2010Date of Patent: August 27, 2013Assignee: Fusion-io, Inc.Inventors: Karagada R. Kishore, Kiron Malwankar, Peter E. Kirkpatrick
-
Patent number: 8516343Abstract: Apparatuses, systems, and methods are disclosed for retiring storage regions. A determination module (a) determines that data stored in an Error Correcting Code (“ECC”) chunk contains ECC correctable errors, and (b) determines a bit error count for the ECC chunk. The ECC chunk is read from non-volatile solid-state storage media. A threshold module determines if the bit error count satisfies an ECC chunk error threshold. A storage region error module determines if a storage region that contains at least a portion of the ECC chunk satisfies region retirement criteria. The storage region may include a first portion on a first solid-state storage die and a second portion on a second solid-state storage die. A retirement module retires the storage region, including the first portion and the second portion in parallel, in response to the storage region containing at least a portion of the ECC chunk and satisfying the region retirement criteria.Type: GrantFiled: November 10, 2009Date of Patent: August 20, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Edward Shober
-
Publication number: 20130212321Abstract: 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.Type: ApplicationFiled: March 15, 2013Publication date: August 15, 2013Applicant: FUSION-IO, INC.Inventor: Fusion-io, Inc.
-
Patent number: 8503468Abstract: Embodiments provide load balancing in a virtual computing environment comprising a plurality of PCI-Express switches (the PCIe switching cloud) coupled to a plurality of network interface devices (NICs). An NIC cluster is added between the PCIe switching cloud and the NICs. The NIC cluster is configured to hide NICs from system images and allow the system images to access functions across multiple NICs. The NIC cluster of an embodiment dynamically load balances network resources by performing a hashing function on a header field of received packets. The NIC cluster of an embodiment performs load balancing and state management in association with driver software, which is embedded in the system image. The driver software adds a tag for flow identification to downstream data packets. The NIC cluster distributes data packets based on information in the tag.Type: GrantFiled: November 5, 2008Date of Patent: August 6, 2013Assignee: Fusion-io, Inc.Inventors: Bora Akyol, Daniel Talayco, Ali Ekici
-
Publication number: 20130198459Abstract: A de-duplication is configured to cache data for access by a plurality of different storage clients, such as virtual machines. A virtual machine may comprise a virtual machine de-duplication module configured to identify data for admission into the de-duplication cache. Data admitted into the de-duplication cache may be accessible by two or more storage clients. Metadata pertaining to the contents of the de-duplication cache may be persisted and/or transferred with respective storage clients such that the storage clients may access the contents of the de-duplication cache after rebooting, being power cycled, and/or being transferred between hosts.Type: ApplicationFiled: January 25, 2013Publication date: August 1, 2013Applicant: Fusion-io, Inc.Inventor: Fusion-io, Inc.
-
Publication number: 20130191601Abstract: 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.Type: ApplicationFiled: January 24, 2012Publication date: July 25, 2013Applicant: FUSION-IO, INC.Inventors: Jim Peterson, Nisha Talagala, Robert Wipfel, David Atkisson, Jonathan Ludwig, Ann Martin
-
Patent number: 8495460Abstract: An apparatus, system, and method are disclosed for reconfiguring an array of solid-state storage elements. The method includes determining that one or more storage elements are unavailable to store data. The storage elements are configured in an array of N storage elements that each store a portion of a first ECC chunk and P storage elements that store first parity data corresponding to the first ECC chunk. The method includes generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk. The method includes storing the second ECC chunk and associated second parity data across (N+P)?Z storage elements where 1?Z?P.Type: GrantFiled: October 4, 2012Date of Patent: July 23, 2013Assignee: Fusion-IO, Inc.Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
-
Patent number: 8495292Abstract: An apparatus and system are disclosed for an in-server storage area network (“SAN”). A first storage controller is included within a first server. The first storage controller controls at least one storage device. The first server includes a network interface shared by the first server and the first storage controller. A storage communication module is included that facilitates communication between the first storage controller and at least one device external to the first server, where the communication between the first storage controller and the external device is independent from the first server. An in-server SAN module is included that services a storage request using at least one of a network protocol and a bus protocol. The in-server SAN module services the storage request independent from the first server, the service request received from a client.Type: GrantFiled: December 6, 2007Date of Patent: July 23, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, David Atkisson, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
-
Publication number: 20130185508Abstract: 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.Type: ApplicationFiled: January 12, 2012Publication date: July 18, 2013Applicant: FUSION-IO, INC.Inventors: Nisha Talagala, Swaminathan Sundararaman
-
Publication number: 20130185488Abstract: 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.Type: ApplicationFiled: February 22, 2013Publication date: July 18, 2013Applicant: Fusion-io, Inc.Inventors: Nisha Talagala, Swaminathan Sundararaman
-
Publication number: 20130185532Abstract: A storage controller is configured to append data to a sequential log. The data may be appended sequentially within erase regions of the non-volatile storage medium. An order of the sequential log may be defined by, inter alia, the order in which the erase regions are filled and/or the sequential order of physical storage locations and/or addresses within the erase regions. The erase regions may comprise sequence information which may be applied in response to recovering the erase regions, appending data to the erase regions, or the like. Data appended to the sequential log may be associated with source parameters, which may include a virtual identifier of the data. The physical storage location of the data on the non-volatile storage medium may be independent of the source parameters. The sequential log may, therefore, comprise a set of mappings between virtual identifiers and physical storage locations.Type: ApplicationFiled: December 4, 2012Publication date: July 18, 2013Applicant: Fusion-io, Inc.Inventor: Fusion-io, Inc.
-
Publication number: 20130185475Abstract: 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.Type: ApplicationFiled: February 22, 2013Publication date: July 18, 2013Applicant: Fusion-io, Inc.Inventors: Nisha Talagala, Swaminathan Sundararaman
-
Patent number: 8489817Abstract: An apparatus, system, and method are disclosed for caching data. A storage request module detects an input/output (“I/O”) request for a storage device cached by solid-state storage media of a cache. A direct mapping module references a single mapping structure to determine that the cache comprises data of the I/O request. The single mapping structure maps each logical block address of the storage device directly to a logical block address of the cache. The single mapping structure maintains a fully associative relationship between logical block addresses of the storage device and physical storage addresses on the solid-state storage media. A cache fulfillment module satisfies the I/O request using the cache in response to the direct mapping module determining that the cache comprises at least one data block of the I/O request.Type: GrantFiled: August 12, 2011Date of Patent: July 16, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, David Atkisson, Joshua Aune