Patents by Inventor Neil Vachharajani

Neil Vachharajani 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: 9727485
    Abstract: 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: Grant
    Filed: November 24, 2014
    Date of Patent: August 8, 2017
    Assignee: Pure Storage, Inc.
    Inventors: Marco Sanvido, Richard Hankins, Mark McAuliffe, Neil Vachharajani
  • Patent number: 9710165
    Abstract: Systems, methods, and computer readable storage mediums for discovering volumes which are good candidates for space reclamation. A storage subsystem identifies the file system storage capacity for a given volume from the file system metadata of the given volume. Then, the storage subsystem compares the file system capacity of the given volume to the allocated capacity on the storage subsystem. If the allocated capacity is greater than the file system capacity by a given threshold, the storage subsystem marks the given volume as a candidate for space reclamation and generates an alert to the user to reclaim the space of the given volume.
    Type: Grant
    Filed: February 18, 2015
    Date of Patent: July 18, 2017
    Assignee: Pure Storage, Inc.
    Inventors: Frederic Lherault, Neil Vachharajani
  • Publication number: 20170185313
    Abstract: 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: Application
    Filed: December 28, 2015
    Publication date: June 29, 2017
    Inventors: CHRISTOPHER GOLDEN, RICHARD HANKINS, ASWIN KARUMBUNATHAN, NAVEEN NEELAKANTAM, NEIL VACHHARAJANI
  • Publication number: 20170161184
    Abstract: Writing data in a storage system that includes a first type of storage device and a second type of storage device, including: selecting, for one or more unprocessed write requests, a target storage device type from the first type of storage device and the second type of storage device; issuing a first group of write requests to the first type of storage device, the first group of write requests addressed to one or more locations selected in dependence upon an expected address translation to be performed by the first type of storage device; and issuing a second group of write requests to the second type of storage device, the second group of write requests addressed to one or more locations selected in dependence upon a layout of memory in the second type of storage device.
    Type: Application
    Filed: December 2, 2015
    Publication date: June 8, 2017
    Inventors: JOHN COLGROVE, PETER KIRKPATRICK, NEIL VACHHARAJANI
  • Publication number: 20170123926
    Abstract: Ensuring crash-safe forward progress of a system configuration update in a storage system that includes a storage array controller and a plurality of storage devices, including: determining a number of storage devices in the storage system; determining a number of unavailable storage devices in the storage system; and determining, for the one or more system configurations, whether the system configuration can be reconstructed in dependence upon the number of storage devices in the storage system and the number of unavailable storage devices in the storage system.
    Type: Application
    Filed: October 30, 2015
    Publication date: May 4, 2017
    Inventors: ANDREW BERNAT, TIMOTHY BRENNAN, JIMMY CHI-WAI CHUI, ALAN DRISCOLL, GRIGORI INOZEMTSEV, BENJAMIN SCHOLBROCK, NEIL VACHHARAJANI
  • Publication number: 20160352720
    Abstract: Managing a storage array includes: receiving, by a client-side array services module from a cloud-based security module through data communications on a wide area network, a token representing authentication of user credentials; and managing, by the client-side array services module, a storage array only through data communications on a local area network, including sending, to the storage array, the token with a management instruction.
    Type: Application
    Filed: May 29, 2015
    Publication date: December 1, 2016
    Inventors: JIMMY T. HU, TERENCE W. NOONAN, NEIL A. VACHHARAJANI, DAQUAN ZUO
  • Patent number: 9444822
    Abstract: Providing authorization and authentication in a cloud for a user of a storage array includes: receiving, by a storage array access module from a client-side array services module, a token representing authentication of user credentials and authorized access privileges defining one or more storage array services accessible by the user, where the token is generated by a cloud-based security module upon authentication of the user credentials and identification of authorized access privileges for the user; receiving, by the storage array access module from the user, a user access request to one or more storage array services; and determining, by the storage array access module, whether to grant the user access request in dependence upon the authorized access privileges represented by the token.
    Type: Grant
    Filed: May 29, 2015
    Date of Patent: September 13, 2016
    Assignee: Pure Storage, Inc.
    Inventors: Benjamin P. Borowiec, Jimmy T. Hu, Ethan L. Miller, Terence W. Noonan, Constantine P. Sapuntzakis, Neil A. Vachharajani, Daquan Zuo
  • Patent number: 9300660
    Abstract: Providing authorization and authentication in a cloud for a user of a storage array includes: receiving, by a cloud-based security module from a client-side array services module, user credentials; authenticating, by the cloud-based security module, the user credentials; identifying, by the cloud-based security module, authorized access privileges defining one or more storage array services accessible by the user; generating, by the cloud-based security module, a token representing the authentication of the user credentials and the authorized access privileges; and providing, by the cloud-based security module to the client-side array services module, the token.
    Type: Grant
    Filed: May 29, 2015
    Date of Patent: March 29, 2016
    Assignee: Pure Storage, Inc.
    Inventors: Benjamin P. Borowiec, Jimmy T. Hu, Ethan L. Miller, Terence W. Noonan, Constantine P. Sapuntzakis, Neil A. Vachharajani, Daquan Zuo
  • Patent number: 9268542
    Abstract: A first indicator of a first number of cache misses to a cache memory of a multicore processor for a first application over a first time period is received. The first application executes on a first core of the processor and a second application simultaneously executes on a second core of the processor during the first time period. The first and second cores share the cache memory. A second indicator of a second number of cache misses to the cache memory for the first application over a second time period is received. During the second time period, the first application executes on the first core and the second application does not execute on the second core. A degree of contention among the first and second applications is determined based on the first and second indicators, and execution of the second application is adjusted based on the determined degree of contention.
    Type: Grant
    Filed: April 28, 2011
    Date of Patent: February 23, 2016
    Assignee: Google Inc.
    Inventors: Jason Mars, Robert Hundt, Neil A. Vachharajani
  • Patent number: 9135082
    Abstract: A race detection mechanism can include running threads of a multithreaded program on a processor, the program being configured to produce locksets each of which indicate a set of one or more locks that a thread holds at a point in time. The mechanism can cause a performance monitoring unit included in the processor to monitor memory accesses caused by the threads and to produce samples based on the memory accesses, the samples being indicative of an accessed memory location. The mechanism can detect an existence of a data race condition based on the samples and the locksets. Detecting can include identifying a protected access to a memory location by a first thread of the threads and identifying an unprotected access to the memory location by a second thread of the threads. The process selectively outputs an indication of the data race condition.
    Type: Grant
    Filed: May 20, 2011
    Date of Patent: September 15, 2015
    Assignee: Google Inc.
    Inventors: Tianwei Sheng, Neil A. Vachharajani, Stephane Eranian, Robert Hundt
  • Patent number: 9128750
    Abstract: A system that supports multi-threaded transactions includes one or more processors configured to speculatively execute a first thread in a first transaction and speculatively execute a second thread concurrently with the first thread in a comparable transaction with respect to the first transaction. It further includes one or more memories coupled to the one or more processors, configured to provide the one or more processors with data storage. An uncommitted value written by the first thread while executing in the first transaction is visible to the second thread executing in the comparable transaction.
    Type: Grant
    Filed: March 2, 2009
    Date of Patent: September 8, 2015
    Assignee: Parakinetics Inc.
    Inventors: David I. August, Neil Vachharajani, Matthew J. Bridges