Patents by Inventor Xiangyong Ouyang
Xiangyong Ouyang has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20240220470Abstract: The present disclosure relates to a data storage device and a storage control method based on a log-structured merge tree. The log-structured merge tree comprises a plurality of SST files stored on at least one storage medium. The storage control method comprises: using a first filter to obtain the SST file set matched by the query key; using a second filter to globally sort the matching tags in the SST file set to generate a global tag set; the global tag set selects SST files to perform file IO operations to read key-value pairs. The storage control method selects the SST file to perform file IO operations according to the global tag set, thereby reducing the number of file IO operations in data reading operations, further improving file IO efficiency.Type: ApplicationFiled: April 1, 2023Publication date: July 4, 2024Applicants: HoneycombData Inc., HoneycombData (Nantong) LimitedInventors: Yilun Chen, Meng WANG, Haibo Wu, Yu ZHANG, Yunxiang ZHANG, Xiangyong Ouyang
-
Publication number: 20240220460Abstract: The present invention relates to a data storage device and a storage control method based on a log-structured merge tree. The log-structured merge tree comprises a plurality of SST files stored on at least one storage device. The storage control method uses a standardized storage unit to store key-value pairs and uses two different filters to locate the storage units storing the target key-value pair in the SST files, thereby saving memory usage and improving file IO efficiency.Type: ApplicationFiled: April 1, 2023Publication date: July 4, 2024Applicants: HoneycombData Inc., HoneycombData (Nantong) LimitedInventors: Yilun Chen, Meng WANG, Haibo Wu, Yu ZHANG, Yunxiang ZHANG, Xiangyong Ouyang
-
Publication number: 20190114082Abstract: A distributed storage system stores a storage volume as a primary replica and secondary replicas on one or more servers. Data is written in an append-only scheme and all write requests are completed for the primary and secondary replicas. Read requests are processed by the primary replicas. Compaction for the primary replica is performed only if no secondary replicas (or a minimum number) are being compacted and a server storing the primary replica is not currently compacting another replica. The primary replica is demoted to secondary prior to compaction and a secondary replica is promoted to primary. Compaction of the primary replica is also conditioned on bandwidth conditions being met on the server storing it. Secondary replicas are compacted only if no other secondary replicas are being compacted. Replicas are selected as eligible for compaction based on a number of updates to the replica meeting a threshold condition.Type: ApplicationFiled: October 17, 2017Publication date: April 18, 2019Inventors: Yangyang Pan, Xiangyong Ouyang, Dongqi Xue, Chaoqun Zhu
-
Patent number: 10025531Abstract: A storage device, such as a NAND flash device, includes a controller that assigns host read commands to a high priority queue and all other I/O commands including host write commands to a low priority queue. The controller executes any commands in the high priority queue before executing commands in the low priority queue. Block write commands are broken into page write commands that are added to the low priority queue, thereby enabling any host read commands to be interleaved with execution of the page write commands, rather than waiting for completion of a block write command. Coherency between overlapping commands is performed by a host device coupled to the controller such that no checking of coherency is performed by the SSD controller.Type: GrantFiled: September 10, 2015Date of Patent: July 17, 2018Assignee: HONEYCOMBDATA INC.Inventors: Jongman Yoon, Sushma Devendrappa, Xiangyong Ouyang
-
Patent number: 10013354Abstract: A storage layer (SL) 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 SL 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: GrantFiled: July 28, 2011Date of Patent: July 3, 2018Assignee: SANDISK TECHNOLOGIES LLCInventors: David Flynn, Stephan Uphoff, Xiangyong Ouyang, David Nellans, Robert Wipfel
-
Patent number: 9983993Abstract: 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: GrantFiled: January 13, 2016Date of Patent: May 29, 2018Assignee: SanDisk Technologies LLCInventors: David Flynn, David Nellans, Xiangyong Ouyang
-
Patent number: 9891833Abstract: A storage device, such as a NAND flash device, avoids the need for garbage collection. An application executing on a host system tracks data objects that are marked as invalid and maintains an association between data objects and logical blocks, each logical block corresponding to a physical block of memory in the NAND flash device. Upon determining that the logical block contains no valid objects, the application instructs an SSD to trim the physical block of memory corresponding to the logical block. The application also aggregates write commands until a full block of data is ready to be written, at which point the application transmits a write command to the SSD.Type: GrantFiled: October 22, 2015Date of Patent: February 13, 2018Assignee: HONEYCOMBDATA INC.Inventors: Sushma Devendrappa, Xiangyong Ouyang, Jongman Yoon
-
Patent number: 9645922Abstract: A storage device, such as a NAND flash device, includes a controller that maintains a temperature for a plurality of data blocks, the temperature calculated according to a function that increases with a number of valid data objects in the block and recency with which the valid data objects have been accessed. Blocks with the lowest temperature are selected for garbage collection. Recency for a block is determined based on a number of valid data objects stored in the block that are referenced in a hot list of a LRU list. During garbage collection, data objects that are least recently used are invalidated to reduce write amplification.Type: GrantFiled: September 10, 2015Date of Patent: May 9, 2017Assignee: HONEYCOMBDATA INC.Inventors: Xiangyong Ouyang, Jongman Yoon, Sushma Devendrappa
-
Publication number: 20170115890Abstract: A storage device, such as a NAND flash device, avoids the need for garbage collection. An application executing on a host system tracks data objects that are marked as invalid and maintains an association between data objects and logical blocks, each logical block corresponding to a physical block of memory in the NAND flash device. Upon determining that the logical block contains no valid objects, the application instructs an SSD to trim the physical block of memory corresponding to the logical block. The application also aggregates write commands until a full block of data is ready to be written, at which point the application transmits a write command to the SSD.Type: ApplicationFiled: October 22, 2015Publication date: April 27, 2017Inventors: Sushma Devendrappa, Xiangyong Ouyang, Jongman Yoon
-
Publication number: 20170075570Abstract: A storage device, such as a NAND flash device, includes a controller that assigns host read commands to a high priority queue and all other I/O commands including host write commands to a low priority queue. The controller executes any commands in the high priority queue before executing commands in the low priority queue. Block write commands are broken into page write commands that are added to the low priority queue, thereby enabling any host read commands to be interleaved with execution of the page write commands, rather than waiting for completion of a block write command. Coherency between overlapping commands is performed by a host device coupled to the controller such that no checking of coherency is performed by the SSD controller.Type: ApplicationFiled: September 10, 2015Publication date: March 16, 2017Inventors: Jongman Yoon, Sushma Devendrappa, Xiangyong Ouyang
-
Publication number: 20170075805Abstract: A storage device, such as a NAND flash device, includes a controller that maintains a temperature for a plurality of data blocks, the temperature calculated according to a function that increases with a number of valid data objects in the block and recency with which the valid data objects have been accessed. Blocks with the lowest temperature are selected for garbage collection. Recency for a block is determined based on a number of valid data objects stored in the block that are referenced in a hot list of a LRU list. During garbage collection, data objects that are least recently used are invalidated to reduce write amplification.Type: ApplicationFiled: September 10, 2015Publication date: March 16, 2017Inventors: Xiangyong Ouyang, Jongman Yoon, Sushma Devendrappa
-
Patent number: 9424184Abstract: An apparatus, system, and method are disclosed for implementing nameless storage operations. Storage clients can access and allocate portions of an address space of a non-volatile storage device to a nameless storage request. The methods include receiving from a storage client, a nameless storage request configured for storing data in an unspecified, available address of a logical block address of a non-volatile storage device, determining whether there exists enough logical capacity in the logical address space to satisfy the nameless storage request, allocating a logical identifier to the nameless storage request, and sending the allocated logical identifier to the storage client. Other embodiments are described.Type: GrantFiled: February 25, 2015Date of Patent: August 23, 2016Assignee: SANDISK TECHNOLOGIES LLCInventors: David Flynn, David Nellans, Xiangyong Ouyang
-
Publication number: 20160140004Abstract: 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: January 13, 2016Publication date: May 19, 2016Inventors: David Flynn, David Nellans, Xiangyong Ouyang
-
Patent number: 9251062Abstract: 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: GrantFiled: November 22, 2013Date of Patent: February 2, 2016Assignee: Intelligent Intellectual Property Holdings 2 LLCInventors: David Flynn, David Nellans, Xiangyong Ouyang
-
Publication number: 20150212936Abstract: An apparatus, system, and method are disclosed for implementing nameless storage operations. Storage clients can access and allocate portions of an address space of a non-volatile storage device to a nameless storage request. The methods include receiving from a storage client, a nameless storage request configured for storing data in an unspecified, available address of a logical block address of a non-volatile storage device, determining whether there exists enough logical capacity in the logical address space to satisfy the nameless storage request, allocating a logical identifier to the nameless storage request, and sending the allocated logical identifier to the storage client. Other embodiments are described.Type: ApplicationFiled: February 25, 2015Publication date: July 30, 2015Inventors: David Flynn, David Nellans, Xiangyong Ouyang
-
Patent number: 9015425Abstract: An apparatus, system, and method are disclosed for implementing nameless storage operations. Storage clients can access and allocate portions of an address space of a non-volatile storage device to a nameless storage request. The methods include receiving from a storage client, a nameless storage request configured for storing data in an unspecified, available address of a logical block address of a non-volatile storage device, determining whether there exists enough logical capacity in the logical address space to satisfy the nameless storage request, allocating a logical identifier to the nameless storage request, and sending the allocated logical identifier to the storage client. Other embodiments are described.Type: GrantFiled: December 2, 2013Date of Patent: April 21, 2015Assignee: Intelligent Intellectual Property Holdings 2, LLC.Inventors: David Flynn, David Nellans, Xiangyong Ouyang
-
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
-
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
-
Publication number: 20140101376Abstract: 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: December 2, 2013Publication date: April 10, 2014Applicant: Fusion-io, Inc.Inventors: David Flynn, David Nellans, Xiangyong Ouyang
-
Patent number: 8601222Abstract: 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: GrantFiled: May 13, 2011Date of Patent: December 3, 2013Assignee: Fusion-io, Inc.Inventors: David Flynn, David Nellans, Xiangyong Ouyang