Patents by Inventor Richard Hankins
Richard Hankins 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: 12153818Abstract: A storage system stores objects in a bucket at a storage device of the storage system. Each of the objects has a corresponding version. A processing device generates a snapshot of the bucket. The snapshot captures the corresponding version of each of the objects at a time associated with the generation of the snapshot.Type: GrantFiled: September 24, 2020Date of Patent: November 26, 2024Assignee: PURE STORAGE, INC.Inventors: Shao-Ting Chang, Richard A. Hankins, Cary A. Sandvig, Mark Alexander Hugh Emberson, Keshav Sethi Attrey, Andrew Kutner, Karthikeyan Srinivasan, Puneet Venkatraman Shenoy
-
Patent number: 11822807Abstract: A method of replication in a distributed storage system, performed by the distributed storage system is provided. The method includes managing a first index for data or metadata in a first storage system, the first storage system having a first partitioning scheme. The method includes managing a second index for data or metadata in a second storage system, the second storage system having a second partitioning scheme. The method includes replicating the data or metadata from the first storage system to the second storage system, translating an identifier of the data or metadata from the first storage system, and mapping the replicated data or metadata into the second partitioning scheme, via the translating of the identifier of the data or metadata from the first storage system.Type: GrantFiled: February 10, 2022Date of Patent: November 21, 2023Assignee: PURE STORAGE, INC.Inventors: Richard A. Hankins, Igor Ostrovsky, John Colgrove, Cary A. Sandvig, Ronald Karr, Victor Yip, Zong Miao, Abhishek Jain
-
Patent number: 11662909Abstract: A system and method for efficiently maintaining metadata stored among a plurality of solid-state storage devices. A data storage subsystem supports multiple mapping tables. Records within a mapping table are arranged in multiple levels. Each level stores at least pairs of a key value and a physical pointer value. The levels are sorted by time. New records are inserted in a created new highest (youngest) level. No edits are performed in-place. A data storage controller determines both a cost of searching a given table exceeds a threshold and an amount of memory used to flatten levels exceeds a threshold. In response, the controller incrementally flattens selected levels within the table based on key ranges. After flattening the records in the selected levels within the key range, the records may be removed from the selected levels. The process repeats with another different key range.Type: GrantFiled: February 9, 2022Date of Patent: May 30, 2023Assignee: PURE STORAGE, INCInventors: Marco Sanvido, Richard Hankins, Mark McAuliffe, Neil Vachharajani
-
Patent number: 11561949Abstract: A system and method for efficiently storing data in a storage system. A data storage subsystem includes multiple data storage locations on multiple storage devices in addition to at least one mapping table. A data storage controller determines whether data to store in the storage subsystem has one or more patterns of data intermingled with non-pattern data within an allocated block. Rather than store the one or more pattern on the storage devices, the controller stores information in a header on the storage devices. The information includes at least an offset for the first instance of a pattern, a pattern length, and an identification of the pattern. The data may be reconstructed for a corresponding read request from the information stored in the header.Type: GrantFiled: July 22, 2020Date of Patent: January 24, 2023Assignee: Pure Storage, Inc.Inventors: Marco Sanvido, Richard Hankins, John Hayes, Steve Hodgson, Feng Wang, Sergey Zhuravlev, Andrew Kleinerman
-
Publication number: 20220269417Abstract: A system and method for efficiently maintaining metadata stored among a plurality of solid-state storage devices. A data storage subsystem supports multiple mapping tables. Records within a mapping table are arranged in multiple levels. Each level stores at least pairs of a key value and a physical pointer value. The levels are sorted by time. New records are inserted in a created new highest (youngest) level. No edits are performed in-place. A data storage controller determines both a cost of searching a given table exceeds a threshold and an amount of memory used to flatten levels exceeds a threshold. In response, the controller incrementally flattens selected levels within the table based on key ranges. After flattening the records in the selected levels within the key range, the records may be removed from the selected levels. The process repeats with another different key range.Type: ApplicationFiled: February 9, 2022Publication date: August 25, 2022Inventors: MARCO SANVIDO, RICHARD HANKINS, MARK McAULIFFE, NEIL VACHHARAJANI
-
Publication number: 20220164109Abstract: A method of replication in a distributed storage system, performed by the distributed storage system is provided. The method includes managing a first index for data or metadata in a first storage system, the first storage system having a first partitioning scheme. The method includes managing a second index for data or metadata in a second storage system, the second storage system having a second partitioning scheme. The method includes replicating the data or metadata from the first storage system to the second storage system, translating an identifier of the data or metadata from the first storage system, and mapping the replicated data or metadata into the second partitioning scheme, via the translating of the identifier of the data or metadata from the first storage system.Type: ApplicationFiled: February 10, 2022Publication date: May 26, 2022Inventors: Richard A. Hankins, IGOR OSTROVSKY, JOHN COLGROVE, CARY A. SANDVIG, RONALD KARR, VICTOR YIP, ZONG MIAO, ABHISHEK JAIN
-
Publication number: 20220091743Abstract: A storage system stores objects in a bucket at a storage device of the storage system. Each of the objects has a corresponding version. A processing device generates a snapshot of the bucket. The snapshot captures the corresponding version of each of the objects at a time associated with the generation of the snapshot.Type: ApplicationFiled: September 24, 2020Publication date: March 24, 2022Inventors: Shao-Ting Chang, Richard A. Hankins, Cary A. Sandvig, Mark Alexander Hugh Emberson, Keshav Sethi Attrey, Andrew Kutner, Karthikeyan Srinivasan, Puneet Venkatraman Shenoy
-
Patent number: 11281375Abstract: Intelligently compressing data in a storage array that includes a plurality of storage devices, including: prioritizing, in dependence upon an expected benefit to be gained from compressing each data element, one or more data elements; receiving an amount of processing resources available for compressing the one or more of the data elements; and selecting, in dependence upon the prioritization of the one or more data elements and the amount of processing resources available for compressing one or more of the data elements, a data compression algorithm to utilize on one or more of the data elements.Type: GrantFiled: June 28, 2019Date of Patent: March 22, 2022Assignee: Pure Storage, Inc.Inventors: Christopher Golden, Richard Hankins, Aswin Karumbunathan, Naveen Neelakantam, Neil Vachharajani
-
Patent number: 11281394Abstract: A method of replication in a distributed storage system, performed by the distributed storage system is provided. The method includes managing a first index for data or metadata in a first storage system, the first storage system having a first partitioning scheme. The method includes managing a second index for data or metadata in a second storage system, the second storage system having a second partitioning scheme. The method includes replicating the data or metadata from the first storage system to the second storage system, translating an identifier of the data or metadata from the first storage system, and mapping the replicated data or metadata into the second partitioning scheme, via the translating of the identifier of the data or metadata from the first storage system.Type: GrantFiled: June 24, 2019Date of Patent: March 22, 2022Assignee: Pure Storage, Inc.Inventors: Richard A. Hankins, Igor Ostrovsky, John Colgrove, Cary A. Sandvig, Ronald Karr, Victor Yip, Zong Miao, Abhishek Jain
-
Publication number: 20220066786Abstract: A system and method for efficiently starting up a plurality of solid-state storage devices. A computing system includes one or more storage devices storing data in multiple allocation units (AUs). In a boot region, a data storage controller maintains an AU management set that identifies a state of various AUs in the system. In various embodiments, the management set includes an identification of a subset of free AUs, transitional AU, unincorporated AUs, and speculative AUs. At various times, information corresponding to the AU management set is stored to non-volatile storage. During a boot sequence, the AU management set information is accessed and the identified AUs are searched to identify allocated AUs rather than performing a search of all of the AUs in the system.Type: ApplicationFiled: November 9, 2021Publication date: March 3, 2022Inventors: MARCO SANVIDO, RICHARD HANKINS, MARK McAULIFFE, HUIHUI CHENG, NIDHI DOSHI, NAVEEN NEELAKANTAM, NEIL VACHHARAJANI
-
Patent number: 11169817Abstract: A system and method for efficiently starting up a plurality of solid-state storage devices. A computing system includes one or more storage devices storing data in multiple allocation units (AUs). In a boot region, a data storage controller maintains an AU management set that identifies a state of various AUs in the system. In various embodiments, the management set includes an identification of a subset of free AUs, transitional AU, unincorporated AUs, and speculative AUs. At various times, information corresponding to the AU management set is stored to non-volatile storage. During a boot sequence, the AU management set information is accessed and the identified AUs are searched to identify allocated AUs rather than performing a search of all of the AUs in the system.Type: GrantFiled: May 2, 2019Date of Patent: November 9, 2021Assignee: Pure Storage, Inc.Inventors: Marco Sanvido, Richard Hankins, Mark McAuliffe, HuiHui Cheng, Nidhi Doshi, Naveen Neelakantam, Neil Vachharajani
-
Publication number: 20200401316Abstract: A method of replication in a distributed storage system, performed by the distributed storage system is provided. The method includes managing a first index for data or metadata in a first storage system, the first storage system having a first partitioning scheme. The method includes managing a second index for data or metadata in a second storage system, the second storage system having a second partitioning scheme. The method includes replicating the data or metadata from the first storage system to the second storage system, translating an identifier of the data or metadata from the first storage system, and mapping the replicated data or metadata into the second partitioning scheme, via the translating of the identifier of the data or metadata from the first storage system.Type: ApplicationFiled: June 24, 2019Publication date: December 24, 2020Inventors: Richard A. Hankins, Igor Ostrovsky, John Colgrove, Cary A. Sandvig, Ronald Karr, Victor Yip, Zong Miao, Abhishek Jain
-
Patent number: 10838834Abstract: A system and method for efficiently distributing data among multiple storage devices. A data storage array receives read and write requests from multiple client computers. The data storage array includes multiple storage devices, each with multiple allocation units (AUs). A storage controller within the data storage array determines a RAID layout for use in storing data. In response to determining a failure of a first AU, the storage controller begins reconstructing in a second AU the data stored in the first AU. For read and write requests targeting data in the first AU, the request is serviced by the first AU responsive to determining no error occurs when accessing the first AU.Type: GrantFiled: February 19, 2019Date of Patent: November 17, 2020Assignee: Pure Storage, Inc.Inventors: Marco Sanvido, Richard Hankins, Naveen Neelakantam, Xiaohui Wang, Mark McAuliffe, Taher Vohra
-
Patent number: 10783131Abstract: A system and method for efficiently storing data in a storage system. A data storage subsystem includes multiple data storage locations on multiple storage devices in addition to at least one mapping table. A data storage controller determines whether data to store in the storage subsystem has one or more patterns of data intermingled with non-pattern data within an allocated block. Rather than store the one or more pattern on the storage devices, the controller stores information in a header on the storage devices. The information includes at least an offset for the first instance of a pattern, a pattern length, and an identification of the pattern. The data may be reconstructed for a corresponding read request from the information stored in the header.Type: GrantFiled: January 3, 2018Date of Patent: September 22, 2020Assignee: Pure Storage, Inc.Inventors: Marco Sanvido, Richard Hankins, John Hayes, Steve Hodgson, Feng Wang, Sergey Zhuravlev, Andrew Kleinerman
-
Patent number: 10474363Abstract: Space reporting in a storage system, including: determining, for one or more system-visible objects in the storage system, an amount of physical space consumed by each system-visible object and an amount of logical space consumed by each system-visible object; identifying, for each of the one or more system-visible objects in the storage system, one or more user-visible objects that reference the system-visible object; determining, for each of the one or more user-visible objects, an amount of physical space consumed by the user-visible object in dependence upon the amount of physical space consumed by each system-visible object referenced by the user-visible object; and determining, for each of the one or more user-visible objects, an amount of logical space consumed by the user-visible object in dependence upon the amount of logical space consumed by each system-visible object referenced by the user-visible object.Type: GrantFiled: October 31, 2016Date of Patent: November 12, 2019Assignee: Pure Storage, Inc.Inventors: Wentian Cui, Matthew Fay, Marina Galata, Richard Hankins, Ganesh Ramanarayanan, Cary Sandvig, Zoheb Shivani, Scott Smith, Shishir Yadav
-
Patent number: 10452403Abstract: In an embodiment, a method is provided. The method includes managing user-level threads on a first instruction sequencer in response to executing user-level instructions on a second instruction sequencer that is under control of an application level program. A first user-level thread is run on the second instruction sequencer and contains one or more user level instructions. A first user level instruction has at least 1) a field that makes reference to one or more instruction sequencers or 2) implicitly references with a pointer to code that specifically addresses one or more instruction sequencers when the code is executed.Type: GrantFiled: September 26, 2015Date of Patent: October 22, 2019Assignee: Intel CorporationInventors: Hong Wang, John P. Shen, Edward T. Grochowski, Richard A. Hankins, Gautham N. Chinya, Bryant E. Bigbee, Shivnandan D. Kaushik, Xiang Chris Zou, Per Hammarlund, Scott Dion Rodgers, Xinmin Tian, Anil Aggawal, Prashant Sethi, Baiju V. Patel, James P Held
-
Patent number: 10346043Abstract: Intelligently compressing data in a storage array that includes a plurality of storage devices, including: prioritizing, in dependence upon an expected benefit to be gained from compressing each data element, one or more data elements; receiving an amount of processing resources available for compressing the one or more of the data elements; and selecting, in dependence upon the prioritization of the one or more data elements and the amount of processing resources available for compressing one or more of the data elements, a data compression algorithm to utilize on one or more of the data elements.Type: GrantFiled: December 28, 2015Date of Patent: July 9, 2019Assignee: Pure Storage, Inc.Inventors: Christopher Golden, Richard Hankins, Aswin Karumbunathan, Naveen Neelakantam, Neil Vachharajani
-
Patent number: 10296354Abstract: A system and method for efficiently starting up a plurality of solid-state storage devices. A computing system includes one or more storage devices storing data in multiple allocation units (AUs). In a boot region, a data storage controller maintains an AU management set that identifies a state of various AUs in the system. In various embodiments, the management set includes an identification of a subset of free AUs, transitional AU, unincorporated AUs, and speculative AUs. At various times, information corresponding to the AU management set is stored to non-volatile storage. During a boot sequence, the AU management set information is accessed and the identified AUs are searched to identify allocated AUs rather than performing a search of all of the AUs in the system.Type: GrantFiled: January 21, 2015Date of Patent: May 21, 2019Assignee: Pure Storage, Inc.Inventors: Marco Sanvido, Richard Hankins, Mark McAuliffe, HuiHui Cheng, Nidhi Doshi, Naveen Neelakantam, Neil Vachharajani
-
Patent number: 10254964Abstract: A system and method for efficiently maintaining metadata stored among a plurality of solid-state storage devices. A data storage subsystem supports multiple mapping tables. Records within a mapping table are arranged in multiple levels. Each level stores at least pairs of a key value and a physical pointer value. The levels are sorted by time. New records are inserted in a created new highest (youngest) level. No edits are performed in-place. A data storage controller determines both a cost of searching a given table exceeds a threshold and an amount of memory used to flatten levels exceeds a threshold. In response, the controller incrementally flattens selected levels within the table based on key ranges. After flattening the records in the selected levels within the key range, the records may be removed from the selected levels. The process repeats with another different key range.Type: GrantFiled: April 30, 2018Date of Patent: April 9, 2019Assignee: Pure Storage, Inc.Inventors: Marco Sanvido, Richard Hankins, Mark McAuliffe, Neil Vachharajani
-
Patent number: 10248516Abstract: A system and method for efficiently distributing data among multiple storage devices. A data storage array receives read and write requests from multiple client computers. The data storage array includes multiple storage devices, each with multiple allocation units (AUs). A storage controller within the data storage array determines a RAID layout for use in storing data. In response to determining a failure of a first AU, the storage controller begins reconstructing in a second AU the data stored in the first AU. For read and write requests targeting data in the first AU, the request is serviced by the first AU responsive to determining no error occurs when accessing the first AU.Type: GrantFiled: January 26, 2017Date of Patent: April 2, 2019Assignee: Pure Storage, Inc.Inventors: Marco Sanvido, Richard Hankins, Naveen Neelakantam, Xiaohui Wang, Mark McAuliffe, Taher Vohra