Patents by Inventor Ajay Gulati

Ajay Gulati 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: 20170019465
    Abstract: Maximum throughput of a storage unit, and workload and latency values of the storage unit corresponding to a predefined fraction of the maximum throughput are estimated based on workloads and latencies that are monitored on the storage unit. The computed metrics are usable in a variety of different applications including admission control, storage load balancing, and enforcing quality of service in a shared storage environment.
    Type: Application
    Filed: September 29, 2016
    Publication date: January 19, 2017
    Inventors: Ajay GULATI, Ganesha SHANMUGANATHAN, Irfan AHMAD
  • Publication number: 20170017524
    Abstract: Methods, systems, and computer programs are presented for allocating CPU cycles in a storage system. One method includes operations for receiving requests to be processed, and for associating each request to one task. A foreground task is for processing input/output requests, and the foreground task includes one or more flows. Each flow is associated with a queue and a flow counter value, where each queue is configured to hold requests. The method further includes an operation for selecting one task for processing by the CPU based on an examination of the number of cycles processed by the CPU for each task. When the selected task is the foreground task, the flow having the lowest flow counter is selected. The CPU processes a request from the queue of the selected flow, and the flow counter of the selected flow is increased based on the data consumption of the processed task.
    Type: Application
    Filed: September 27, 2016
    Publication date: January 19, 2017
    Inventors: Gurunatha Karaje, Ajay Gulati, Umesh Maheshwari, Tomasz Barszczak, Vanco Buca
  • Patent number: 9535789
    Abstract: Systems and methods are disclosed that allow for transparently recovering from an uncorrected multi-bit error of arbitrary length located at a memory address. Storing one or more parity pages, for a set of pages in system memory, such that a page in the set of pages may be reconstructed using one of the parity pages is disclosed. Storing an indication of one or more page'disk location such that the one or more pages may be reconstructed by refilling the page from disk is also disclosed.
    Type: Grant
    Filed: May 5, 2014
    Date of Patent: January 3, 2017
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Abhishek Chaturvedi, Gregory T. Harmon, Anil Rao
  • Patent number: 9509621
    Abstract: A shared input/output (IO) resource is managed in a decentralized manner. Each of multiple hosts having IO access to the shared resource, computes an average latency value that is normalized with respect to average IO request sizes, and stores the computed normalized latency value for later use. The normalized latency values thus computed and stored may be used for a variety of different applications, including enforcing a quality of service (QoS) policy that is applied to the hosts, detecting a condition known as an anomaly where a host that is not bound by a QoS policy accesses the shared resource at a rate that impacts the level of service received by the plurality of hosts that are bound by the QoS policy, and migrating workloads between storage arrays to achieve load balancing across the storage arrays.
    Type: Grant
    Filed: April 28, 2014
    Date of Patent: November 29, 2016
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Irfan Ahmad, Jyothir Ramanan, Carl A. Waldspurger
  • Patent number: 9483187
    Abstract: Methods, systems, and computer programs are presented for allocating CPU cycles in a storage system. One method includes operations for receiving requests to be processed, and for associating each request to one task. A foreground task is for processing input/output requests, and the foreground task includes one or more flows. Each flow is associated with a queue and a flow counter value, where each queue is configured to hold requests. The method further includes an operation for selecting one task for processing by the CPU based on an examination of the number of cycles processed by the CPU for each task. When the selected task is the foreground task, the flow having the lowest flow counter is selected. The CPU processes a request from the queue of the selected flow, and the flow counter of the selected flow is increased based on the data consumption of the processed task.
    Type: Grant
    Filed: June 23, 2015
    Date of Patent: November 1, 2016
    Assignee: Nimble Storage, Inc.
    Inventors: Gurunatha Karaje, Ajay Gulati, Umesh Maheshwari, Tomasz Barszczak, Vanco Buca
  • Patent number: 9467505
    Abstract: Maximum throughput of a storage unit, and workload and latency values of the storage unit corresponding to a predefined fraction of the maximum throughput are estimated based on workloads and latencies that are monitored on the storage unit. The computed metrics are usable in a variety of different applications including admission control, storage load balancing, and enforcing quality of service in a shared storage environment.
    Type: Grant
    Filed: August 27, 2010
    Date of Patent: October 11, 2016
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Ganesha Shanmuganathan, Irfan Ahmad
  • Patent number: 9413683
    Abstract: In an example, a method for performing initial placement of a data object in a distributed system that includes a plurality of hardware resources includes receiving a request to create an instance of a data object; determining, in response to the request, a list of hardware resources that satisfy one or more criteria of the data object; creating, in response to the request, a virtual cluster that includes a subset of the hardware resources included in the list of hardware resources; selecting a hardware resource from the virtual cluster into which the data object is to be placed; placing the data object into the hardware resource; and releasing the virtual cluster.
    Type: Grant
    Filed: April 30, 2015
    Date of Patent: August 9, 2016
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Ganesha Shanmuganathan
  • Publication number: 20160218994
    Abstract: A system and method for providing quality of service (QoS) for clients running on host computers to access a common resource uses a resource pool module and a local scheduler in at least one of the host computers. The resource pool module operates to compute an entitlement of each client for the common resource based on a current capacity for the common resource and demands of the clients for the common resource. In addition, the resource pool module operates to assign a portion of the computed current capacity for the common resource to a particular host computer using the computed entitlement of each client running on the particular host computer. The local scheduler operates to allocate the portion of the computed current capacity among the clients running on the particular host computer.
    Type: Application
    Filed: January 25, 2016
    Publication date: July 28, 2016
    Applicant: VMware, Inc.
    Inventors: Ajay Gulati, Ganesha Shanmuganathan, Peter Joseph Varman
  • Patent number: 9363192
    Abstract: A system and method for performing automatic remediation in a distributed computer system with multiple clusters of host computers uses the same placement selection algorithm for initial placements and for remediation placements of clients. The placement selection algorithm is executed to generate a placement solution when a remediation request in response to a remediation-requiring condition in the distributed computer system for at least one client running in one of the multiple clusters of host computers is detected and a remediation placement problem for the client is constructed. The placement solution is then implemented for the client for remediation.
    Type: Grant
    Filed: October 31, 2013
    Date of Patent: June 7, 2016
    Assignee: VMware, Inc.
    Inventors: Pradeep Padala, Parth Shah, Ajay Gulati, Aastha Bhardwaj
  • Patent number: 9336041
    Abstract: Embodiments perform centralized input/output (I/O) path selection for hosts accessing storage devices in distributed resource sharing environments. The path selection accommodates loads along the paths through the fabric and at the storage devices. Topology changes may also be identified and automatically initiated. Some embodiments contemplate the hosts executing a plurality of virtual machines (VMs) accessing logical unit numbers (LUNs) in a storage area network (SAN).
    Type: Grant
    Filed: February 2, 2015
    Date of Patent: May 10, 2016
    Assignee: VMware, Inc.
    Inventors: Krishna Raj Raja, Ajay Gulati
  • Publication number: 20160092108
    Abstract: Methods, systems, and computer programs are presented for allocating CPU cycles in a storage system. One method includes operations for receiving requests to be processed, and for associating each request to one task. A foreground task is for processing input/output requests, and the foreground task includes one or more flows. Each flow is associated with a queue and a flow counter value, where each queue is configured to hold requests. The method further includes an operation for selecting one task for processing by the CPU based on an examination of the number of cycles processed by the CPU for each task. When the selected task is the foreground task, the flow having the lowest flow counter is selected. The CPU processes a request from the queue of the selected flow, and the flow counter of the selected flow is increased based on the data consumption of the processed task.
    Type: Application
    Filed: June 23, 2015
    Publication date: March 31, 2016
    Inventors: Gurunatha Karaje, Ajay Gulati, Umesh Maheshwari, Tomasz Barszczak, Vanco Buca
  • Publication number: 20160092272
    Abstract: Methods, systems, and computer programs are presented for allocating CPU cycles and disk Input/Output's (IOs) to resource-creating processes based on dynamic weights that change according to the current percentage of resource utilization in the storage device. One method includes operations for assigning a first weight to a processing task that increases resource utilization of a resource for processing incoming input/output (IO) requests, and for assigning a second weight to a generating task that decreases the resource utilization of the resource. Further, the method includes an operation for dynamically adjusting the second weight based on the current resource utilization in the storage system. Additionally, the method includes an operation for allocating the CPU cycles and disk IOs to the processing task and to the generating task based on their respective first weight and second weight.
    Type: Application
    Filed: October 30, 2015
    Publication date: March 31, 2016
    Inventors: Gurunatha Karaje, Tomasz Barszczak, Vanco Buca, Ajay Gulati, Umesh Maheshwari
  • Patent number: 9298512
    Abstract: A system and method for placing a client in a computer network system uses continuously variable weights to resource utilization metrics for each candidate device, e.g., a host computer. The weighted resource utilization metrics are used to compute selection scores for various candidate devices to select a target candidate device for placement of the client.
    Type: Grant
    Filed: August 25, 2012
    Date of Patent: March 29, 2016
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Ganesha Shanmuganathan, Peter Joseph Varman, Pradeep Padala, Mukil Kesavan
  • Patent number: 9292353
    Abstract: A system and method for allocating a resource among clients running on host computers using capacity distribution uses lower and upper bounds with respect to a capacity to be distributed to each of the clients. Each client is allocated a portion of the capacity that corresponds to the lower bound for that client. Any excess amount of the capacity is then allocated to the clients based at least partly on the lower bound and the upper bound of each of the clients.
    Type: Grant
    Filed: February 27, 2013
    Date of Patent: March 22, 2016
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Ganesha Shanmuganathan, Peter Joseph Varman
  • Patent number: 9262192
    Abstract: Systems and techniques are described for allocating data store queues to virtual machines. A described technique includes allocating a respective queue to each of a plurality of threads, wherein the queue is configured to queue data requests from the respective thread and for a first data store, determining, for each of a plurality of threads, a respective maximum quantity of pending requests for the thread, wherein a quantity of pending requests sent from the respective queue to the first data store is equal to the maximum quantity of pending requests determined for the thread, determining, for each of the threads, a respective current quantity of operations per second, determining, for each of one or more first threads in the plurality of threads, a respective updated quantity of pending requests, and adjusting, for each first thread, the quantity of pending requests of the first thread sent to the first data store.
    Type: Grant
    Filed: March 14, 2014
    Date of Patent: February 16, 2016
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Sachin Manpathak, Mustafa Uysal, Luis Useche
  • Patent number: 9244742
    Abstract: A system and method for providing quality of service (QoS) for clients running on host computers to access a common resource uses a resource pool module and a local scheduler in at least one of the host computers. The resource pool module operates to compute an entitlement of each client for the common resource based on a current capacity for the common resource and demands of the clients for the common resource. In addition, the resource pool module operates to assign a portion of the computed current capacity for the common resource to a particular host computer using the computed entitlement of each client running on the particular host computer. The local scheduler operates to allocate the portion of the computed current capacity among the clients running on the particular host computer.
    Type: Grant
    Filed: May 31, 2012
    Date of Patent: January 26, 2016
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Ganesha Shanmuganathan, Peter Joseph Varman
  • Publication number: 20150242235
    Abstract: Embodiments perform centralized input/output (I/O) path selection for hosts accessing storage devices in distributed resource sharing environments. The path selection accommodates loads along the paths through the fabric and at the storage devices. Topology changes may also be identified and automatically initiated. Some embodiments contemplate the hosts executing a plurality of virtual machines (VMs) accessing logical unit numbers (LUNs) in a storage area network (SAN).
    Type: Application
    Filed: February 2, 2015
    Publication date: August 27, 2015
    Inventors: Krishna Raj RAJA, Ajay GULATI
  • Publication number: 20150236978
    Abstract: In an example, a method for performing initial placement of a data object in a distributed system that includes a plurality of hardware resources includes receiving a request to create an instance of a data object; determining, in response to the request, a list of hardware resources that satisfy one or more criteria of the data object; creating, in response to the request, a virtual cluster that includes a subset of the hardware resources included in the list of hardware resources; selecting a hardware resource from the virtual cluster into which the data object is to be placed; placing the data object into the hardware resource; and releasing the virtual cluster.
    Type: Application
    Filed: April 30, 2015
    Publication date: August 20, 2015
    Inventors: Ajay GULATI, Ganesha SHANMUGANATHAN
  • Publication number: 20150215234
    Abstract: A management server and method for performing resource management operations in a distributed computer system uses at least one sampling parameter to estimate demand of a client for a resource. The sampling parameter has a correlation with at least one target performance goal of an application that the client is running. The demand estimation can then be used to make at least one decision in a resource management operation.
    Type: Application
    Filed: January 29, 2014
    Publication date: July 30, 2015
    Applicant: VMWARE, INC.
    Inventors: Ganesha Shanmuganathan, Anne Holler, Ajay Gulati
  • Publication number: 20150169341
    Abstract: Systems and techniques are described for allocating data store queues to virtual machines. A described technique includes allocating a respective queue to each of a plurality of threads, wherein the queue is configured to queue data requests from the respective thread and for a first data store, determining, for each of a plurality of threads, a respective maximum quantity of pending requests for the thread, wherein a quantity of pending requests sent from the respective queue to the first data store is equal to the maximum quantity of pending requests determined for the thread, determining, for each of the threads, a respective current quantity of operations per second, determining, for each of one or more first threads in the plurality of threads, a respective updated quantity of pending requests, and adjusting, for each first thread, the quantity of pending requests of the first thread sent to the first data store.
    Type: Application
    Filed: March 14, 2014
    Publication date: June 18, 2015
    Applicant: VMware, Inc.
    Inventors: Ajay Gulati, Sachin Manpathak, Mustafa Uysal, Luis Useche