Patents by Inventor Yuhong Mao

Yuhong Mao 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).

  • Patent number: 11955187
    Abstract: A method for processing blocks of flash memory to decrease raw bit errors from the flash memory is provided. The method includes identifying one or more blocks of the flash memory for a refresh operation and writing information regarding the identified blocks, to a data structure. The method includes issuing background reads to the identified blocks, according to the data structure, as the refresh operation. The method may be embodied on a computer readable medium. In some embodiments the background reads may be based on a time based refresh responsive to an increase in raw bit error count in the flash memory over time.
    Type: Grant
    Filed: February 28, 2022
    Date of Patent: April 9, 2024
    Assignee: PURE STORAGE, INC.
    Inventors: Hari Kannan, Robert Lee, Yuhong Mao
  • Patent number: 11899582
    Abstract: A method of operating a storage unit having non-volatile random-access memory (NVRAM) and solid-state memory is provided. The method includes transferring contents of the NVRAM to the solid-state memory, in response to detecting a power loss. The method includes during the transferring, having each of a plurality of channels in parallel, reading one or more of a plurality of logical unit numbers (LUNs) each corresponding to a portion of the NVRAM, performing an XOR of data of each of the one or more of the plurality of LUNs with data of a preceding LUN, and writing results of the XOR to the solid-state memory.
    Type: Grant
    Filed: July 22, 2021
    Date of Patent: February 13, 2024
    Assignee: PURE STORAGE, INC.
    Inventors: Yuhong Mao, Russell Sears
  • Patent number: 11886295
    Abstract: Intra-block error correction including generating reconstructed sub-portions of a portion of a dataset that is distributed into a plurality of portions that are stored on different storage devices of the storage system, wherein the dataset indicates a first number of errors that is greater than a second number of parity data portions of the dataset, determining that a sub-portion of the dataset does not match a corresponding reconstructed sub-portion of the dataset; and based on the determination, replacing the sub-portion of the dataset with the reconstructed sub-portion of the dataset.
    Type: Grant
    Filed: January 31, 2022
    Date of Patent: January 30, 2024
    Assignee: PURE STORAGE, INC.
    Inventors: Ethan Miller, John Colgrove, Yuhong Mao
  • Patent number: 11861188
    Abstract: A storage system, blades, removable modules, and method of configuring a storage system are described. The storage system has blades with computing resources and storage resources. At least one of the blades has, or has added, one or more removable modules.
    Type: Grant
    Filed: December 30, 2020
    Date of Patent: January 2, 2024
    Assignee: PURE STORAGE, INC.
    Inventors: Hari Kannan, Yuhong Mao, Mark Heuchert
  • Publication number: 20230418496
    Abstract: One or more performance parameters associated with data stored at a storage device of a plurality of storage devices are received by a storage controller. A first number of blocks of the storage device to a high resiliency portion and a second number of blocks of the storage device to a low resiliency portion of the storage device are allocated based on the one or more performance parameters.
    Type: Application
    Filed: September 1, 2023
    Publication date: December 28, 2023
    Inventors: HARI KANNAN, GORDON JAMES COLEMAN, YIJIE ZHAO, PETER E. KIRKPATRICK, ROBERT LEE, YUHONG MAO, BORIS FEIGIN
  • Publication number: 20230342056
    Abstract: Reading data stored at a free block of a storage device is read prior to allocating the free block for storage of data. A determination as to whether a number of bit flips of the data stored at the free block is below a threshold is made. The free block is added to a pool of active free blocks to be allocated for the storage of data upon determining that the number of bit flips of the data stored at the free block is below the threshold.
    Type: Application
    Filed: April 18, 2023
    Publication date: October 26, 2023
    Inventors: Shuyi Shao, Yuhong Mao, Peter E. Kirkpatrick
  • Publication number: 20230333781
    Abstract: A redundant array of independent drives (RAID) stripe is formed across a set of storage controllers of a plurality of storage controllers, wherein the RAID stripe comprises two or more of a plurality of modular storage devices of at least one of the set of storage controllers. The RAID stripe is written across the set of storage controllers.
    Type: Application
    Filed: June 23, 2023
    Publication date: October 19, 2023
    Inventors: HARI KANNAN, ROBERT LEE, YUHONG MAO, RONALD KARR, BORIS FEIGIN
  • Patent number: 11789626
    Abstract: One or more performance parameters associated with data stored at a storage device of a plurality of storage devices are received by a storage controller. A first number of blocks of the storage device to a high resiliency portion and a second number of blocks of the storage device to a low resiliency portion of the storage device are allocated based on the one or more performance parameters.
    Type: Grant
    Filed: September 28, 2022
    Date of Patent: October 17, 2023
    Assignee: PURE STORAGE, INC.
    Inventors: Hari Kannan, Gordon James Coleman, Yijie Zhao, Peter E. Kirkpatrick, Robert Lee, Yuhong Mao, Boris Feigin
  • Publication number: 20230244568
    Abstract: Intra-block error correction including generating reconstructed sub-portions of a portion of a dataset that is distributed into a plurality of portions that are stored on different storage devices of the storage system, wherein the dataset indicates a first number of errors that is greater than a second number of parity data portions of the dataset, determining that a sub-portion of the dataset does not match a corresponding reconstructed sub-portion of the dataset; and based on the determination, replacing the sub-portion of the dataset with the reconstructed sub-portion of the dataset.
    Type: Application
    Filed: January 31, 2022
    Publication date: August 3, 2023
    Inventors: Ethan Miller, John Colgrove, Yuhong Mao
  • Patent number: 11714572
    Abstract: A redundant array of independent drives (RAID) stripe is formed across a set of storage controllers of a plurality of storage controllers, wherein the RAID stripe comprises two or more of a plurality of modular storage devices of at least one of the set of storage controllers. The RAID stripe is written across the set of storage controllers.
    Type: Grant
    Filed: June 8, 2020
    Date of Patent: August 1, 2023
    Assignee: PURE STORAGE, INC.
    Inventors: Hari Kannan, Robert Lee, Yuhong Mao, Ronald Karr, Boris Feigin
  • Publication number: 20230236794
    Abstract: A method includes receiving, by a processing device, an unsorted set of numbers to be sorted, sorting a first subset of the unsorted set of numbers and a second subset of the unsorted set of numbers using a first sorting technique to obtain a first sorted subset and a second sorted subset of numbers, and merging and sorting the first sorted subset and the second sorted subset of numbers using a second sorting technique to obtain a first sorted set of numbers.
    Type: Application
    Filed: January 27, 2022
    Publication date: July 27, 2023
    Inventor: Yuhong Mao
  • Publication number: 20230236764
    Abstract: An edge accelerator card has a first interface, a second interface, a memory and a processor. The first interface is to couple to a server. The second interface is to couple to a storage system. The processor is to handle communication between the server and the storage system through the first interface and the second interface. The processor is to perform at least one task as directed by the storage system, using the memory and communication through at least the second interface.
    Type: Application
    Filed: January 26, 2022
    Publication date: July 27, 2023
    Inventors: Sankara Vaideeswaran, John Colgrove, Ronald Karr, Yuhong Mao
  • Patent number: 11706895
    Abstract: A storage system that supports independent scaling of compute resources and storage resources, the storage system including: one or more chassis, wherein each chassis includes a plurality of slots, each slot configured to receive a blade; a plurality of compute resources; a plurality of storage resources; a plurality of blades, where each blade includes at least one compute resource or at least one storage resource and each of the storage resources may be directly accessed by each of the compute resources without utilizing an intermediate compute resource; a first power domain configured to deliver power to one or more of the compute resources; and a second power domain configured to deliver power to the storage resources, wherein the first power domain and the second power domain can be independently operated.
    Type: Grant
    Filed: July 19, 2016
    Date of Patent: July 18, 2023
    Assignee: PURE STORAGE, INC.
    Inventors: John Davis, Hari Kannan, Robert Lee, Yuhong Mao
  • Patent number: 11630593
    Abstract: Reading data stored at a free block of a storage device is read prior to allocating the free block for storage of data. A determination as to whether a number of bit flips of the data stored at the free block is below a threshold is made. The free block is added to a pool of active free blocks to be allocated for the storage of data upon determining that the number of bit flips of the data stored at the free block is below the threshold.
    Type: Grant
    Filed: March 12, 2021
    Date of Patent: April 18, 2023
    Assignee: Pure Storage, Inc.
    Inventors: Shuyi Shao, Yuhong Mao, Peter E. Kirkpatrick
  • Patent number: 11627083
    Abstract: A system and method for protocol independent receive side scaling (RSS) includes storing a plurality of RSS hash M-tuple definitions, each definition corresponding to one of a set of possible protocol header combinations for routing an incoming packet, the set of possible protocol header combinations being modifiable to include later-developed protocols. Based on initial bytes of the incoming packet, a pattern of protocol headers is detected, and used to select one of the plurality of RSS hash M-tuple definitions. The selected RSS hash M-tuple definition is applied as a protocol-independent arbitrary set of bits to the headers of the incoming packet to form a RSS hash M-tuple vector, which is used to compute a RSS hash. Based on the RSS hash, a particular queue is selected from a set of destination queues identified for the packet, and the packet is delivered to the selected particular queue.
    Type: Grant
    Filed: February 26, 2021
    Date of Patent: April 11, 2023
    Assignee: Google LLC
    Inventors: Yuhong Mao, Richard Lee Sites
  • Patent number: 11621853
    Abstract: A system and method for protocol independent multi-flow table routing includes a first flow table, a second flow table, and a shared hash table accessible by both the first flow table and the second flow table. Upon receipt of a packet, a first secure signature of a first lookup key is generated for the first flow table, and a second secure signature of a second lookup key is generated for the second flow table. The shared hash table stores both the first secure signature in association with a first value corresponding to the first secure signature, and the second secure signature along with a second value corresponding to the second secure signature. The first and second values indicate destination information for the packet.
    Type: Grant
    Filed: June 4, 2019
    Date of Patent: April 4, 2023
    Assignee: Google LLC
    Inventors: Yuhong Mao, Richard Lee Sites, Uday Ramakrishna Naik, Manoj Kasichainula
  • Publication number: 20230024480
    Abstract: One or more performance parameters associated with data stored at a storage device of a plurality of storage devices are received by a storage controller. A first number of blocks of the storage device to a high resiliency portion and a second number of blocks of the storage device to a low resiliency portion of the storage device are allocated based on the one or more performance parameters.
    Type: Application
    Filed: September 28, 2022
    Publication date: January 26, 2023
    Inventors: Hari Kannan, Gordon James Coleman, Yijie Zhao, Peter E. Kirkpatrick, Robert Lee, Yuhong Mao, Boris Feigin
  • Publication number: 20220409119
    Abstract: A method of operating a storage system is provided. The method includes executing an operating system on one or more processors of a compute device that is coupled to one or more solid-state drives and executing a file system on the one or more processors of the compute device. The method includes configuring the compute device with one or more replaceable plug-ins that are specific to the one or more solid-state drives, and executing a flash translation layer on the one or more processors of the compute device, with assistance through the one or more replaceable plug-ins for reading and writing the one or more solid-state drives.
    Type: Application
    Filed: August 26, 2022
    Publication date: December 29, 2022
    Inventors: Russell Sears, Hari Kannan, Yuhong Mao
  • Patent number: 11513974
    Abstract: A block of a storage device of a plurality of storage devices is allocated for storage of data, wherein the allocation comprises identifying a nonce associated with the block of the storage device. An erase command for the block is transmitted to the storage device, the erase command comprising the nonce, wherein the storage device is to erase the block upon determining that the nonce matches a corresponding nonce stored locally at the storage device.
    Type: Grant
    Filed: September 8, 2020
    Date of Patent: November 29, 2022
    Assignee: Pure Storage, Inc.
    Inventors: Andrew R. Bernat, Grigori Inozemtsev, Gordon James Coleman, Yuhong Mao
  • Publication number: 20220365875
    Abstract: A method of storing data is provided. The method includes receiving a plurality of data blocks provided to a hyperscaler system. The method also includes determining a corresponding property for each data block of the plurality of data blocks. The method further includes identifying a set of data blocks from the plurality of data blocks. Each data block of the set of data blocks is associated with a first property. The method further includes storing the set of data blocks in a first zone of a zoned storage system, based on the first property.
    Type: Application
    Filed: July 29, 2022
    Publication date: November 17, 2022
    Inventors: Yuhong Mao, Ronald Karr