Patents Assigned to Pavilion Data Systems, Inc.
  • Patent number: 10645164
    Abstract: A processing device receives a request from a remote computing device to read data from a virtual storage device. The processing device identifies a physical storage device to be accessed to satisfy the request. The processing device then sends a sub-request to the physical storage device to access a portion of the physical storage device. Responsive to determining that the physical storage device has not returned a response to the sub-request within a latency threshold time associated with the physical storage device, the processing device initiates recovery of the portion of the physical storage device to recompute contents of the portion of the physical storage device. The processing device then returns a response to the request from the remote computing device.
    Type: Grant
    Filed: October 26, 2016
    Date of Patent: May 5, 2020
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore, Sundar Kanthadai
  • Patent number: 10509592
    Abstract: A first I/O controller of a storage server sends a first command to a first solid state drive (SSD) of the storage server via a first submission queue of the first SSD, wherein the first command is a first read command or a first write command. The first I/O controller receives a first acknowledgement from the first SSD that the first command has been completed via a first completion queue of the first SSD. A second I/O controller of the storage server sends a second command to the first SSD of the storage server via a second submission queue of the first SSD, wherein the second command is a second read command or a second write command. The second I/O controller receives a second acknowledgement from the first SSD that the second command has been completed via a second completion queue of the first SSD.
    Type: Grant
    Filed: July 26, 2017
    Date of Patent: December 17, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore
  • Patent number: 10467163
    Abstract: An apparatus includes a first serial port having a first number of lanes usable to form a first multi-lane link to a solid state drive (SSD) and a second serial port having a second number of lanes that is at least twice the first number of lanes. A first subset of the second number of lanes constitutes a first logical serial port and is usable to form a second multi-lane link to a first transport fabric and a second subset of the second number of lanes constitutes a second logical serial port and is usable to form a third multi-lane link to a second transport fabric. The apparatus further includes a controller and a multiplexer to connect the first serial port to one of the first logical serial port or the second logical serial port.
    Type: Grant
    Filed: October 26, 2016
    Date of Patent: November 5, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore, Daehwan D. Kim
  • Patent number: 10452279
    Abstract: A storage server comprises a plurality of solid state drives (SSDs), a plurality of input/output (I/O) controllers, a switch, and a management controller. A first SSD of the plurality of SSDs comprises a plurality of queue pairs. The management controller is to allocate a first subset of the plurality of queue pairs in the first SSD to a first I/O controller, wherein the first I/O controller is to use the first subset of the plurality of queue pairs to read from and write to the first SSD. The management controller is further to allocate a second subset of the plurality of queue pairs in the first SSD to a second I/O controller, wherein the second I/O controller is to use the second subset of the plurality of queue pairs to read from and write to the first SSD.
    Type: Grant
    Filed: July 26, 2017
    Date of Patent: October 22, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore
  • Patent number: 10445004
    Abstract: A storage server includes a first controller, a second controller and physical drives. The first controller receives a request to store data in a virtual block address (VBA) of a virtual drive, determines a physical block address (PBA) of a physical drive on which to store the data, and sends to the physical drive a command to store the data at the PBA. The first controller generates a first metadata update for a first metadata table associated with the virtual drive, wherein the first metadata update indicates a mapping of the VBA to the PBA. The first controller generates a second metadata update for a second metadata table that identifies statuses of PBAs, wherein the second metadata update indicates that the PBA is valid. The first controller writes an entry to a cache in a memory, the entry comprising the first metadata update and the second metadata update.
    Type: Grant
    Filed: March 30, 2017
    Date of Patent: October 15, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Suhas Dantkale, Venkeepuram R. Satish, Raghuraman Govindasamy
  • Patent number: 10365827
    Abstract: A processing device of a storage server that manages a plurality of physical storage devices arranged in a plurality of stripes receives a request to write data. The processing device determines a total number of available stripe units to satisfy the request, identifies one or more stripes of the plurality of stripes that collectively include at least the total number of available stripe units, allocates the one or more stripes to the request, and stores the data for the request in the available stripe units of the one or more stripes.
    Type: Grant
    Filed: January 10, 2017
    Date of Patent: July 30, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Venkeepuram R. Satish, Muthukumar Ratty, Kiron Balkrishna Malwankar
  • Patent number: 10348830
    Abstract: A processing device receives an input/output (I/O) command generated by a process, the I/O command directed to a virtual storage provided to a host executing the process, wherein the virtual storage comprises a virtual non-volatile memory express (NVMe) drive. The processing device generates a new I/O command based on the received I/O command and encapsulates the new I/O command into a message. The processing device sends the message to at least one of a remote NVMe storage device or a storage server comprising one or more remote NVMe storage devices.
    Type: Grant
    Filed: July 17, 2017
    Date of Patent: July 9, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Raghuraman Govindasamy, Dan M. Melnic
  • Patent number: 10289507
    Abstract: A storage server comprises a plurality of storage devices arranged in a redundant storage array and a plurality of controllers. One of the controllers determines that a storage device in the redundant storage array has failed, determines a first portion of the storage device to be recovered by a first controller and determines a second portion of the storage device to be recovered by a second controller. The first controller recovers the first portion of the storage device and the second controller recovers the second portion of the storage device.
    Type: Grant
    Filed: October 26, 2016
    Date of Patent: May 14, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore, Sundar Kanthadai
  • Patent number: 10241722
    Abstract: A processing device of a storage server that manages a plurality of SSDs receives to read data. The processing device determines a first SSD of the plurality of SSDs on which the data is stored, and determines that the first SSD is performing a background operation. The processing device determines whether the data is located on a block of the first SSD that will be unavailable during the background operation. Responsive to determining that the data is located on the block of the first SSD, the processing device reconstructs the data based on additional data on one or more remaining SSDs of the plurality of SSDs. The processing device then generates a response to the request that includes the data.
    Type: Grant
    Filed: May 26, 2017
    Date of Patent: March 26, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore, Sundar Kanthadai
  • Patent number: 10235098
    Abstract: A processing device generates a clone of a first volume of storage, the first volume comprising a plurality of storage blocks, wherein the clone is a second volume that is writable and that references the plurality of storage blocks. The processing device increments a global volume count that represents a number of volumes. For each storage block of the plurality of storage blocks, the processing device postpones an update to metadata of the storage block until an event that causes any volume to stop referencing the storage block, wherein the metadata indicates volumes that reference the storage block.
    Type: Grant
    Filed: January 10, 2017
    Date of Patent: March 19, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Raghuraman Govindasamy, Venkeepuram R. Satish, Muthukumar Ratty
  • Patent number: 10216423
    Abstract: A processing device of a storage server that manages a plurality of SSDs receives a request to write data. The processing device determines one or more attributes associated with the request, generates a stream tag for the request based on the one or more attributes, and sends a first write command to a first SSD of the plurality of SSDs. The first write command comprises at least a portion of the data and the stream tag that causes the first SSD to write the portion of the data to a first stream block of the first SSD.
    Type: Grant
    Filed: September 15, 2017
    Date of Patent: February 26, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore, Sundar Kanthadai
  • Patent number: 10191812
    Abstract: A storage server includes an IO controller, a management controller and physical drives. The IO controller generates multiple metadata updates and writes a cache entry that includes the multiple metadata updates to a first cache in memory of the management controller. The IO controller additionally writes a copy of the cache entry to a second cache in a memory of the IO controller and increments a commit pointer in the first and second caches to indicate that the metadata updates are committed.
    Type: Grant
    Filed: March 30, 2017
    Date of Patent: January 29, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Suhas Dantkale, Venkeepuram R. Satish, Raghuraman Govindasamy
  • Patent number: 10175891
    Abstract: A processing device of a storage server receives a write request to write to a first logical address of a virtual storage device that is mapped to a plurality of SSDs. The processing device stores a data block associated with the request in a buffer, stores an entry for the write request in a queue, the entry comprising a reference to the data block in the buffer, sends a write command to an SSD, the write command comprising the data block, and subsequently receives an acknowledgment that the data block has been written to the SSD. The processing device maintains the data block in the buffer until a combined size of a plurality of data blocks in the buffer is equal to or greater than a threshold, the threshold being based on a number of SSDs in the plurality of SSDs and a block size of the plurality of SSDs.
    Type: Grant
    Filed: March 14, 2017
    Date of Patent: January 8, 2019
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Karagada Ramarao Kishore, Sundar Kanthadai
  • Patent number: 10079889
    Abstract: A solid state drive (SSD) comprises a storage area, a network interface controller (NIC) and a storage controller operatively coupled to the storage area. The storage controller comprises a mapping between the storage area and a virtual storage device that is accessible to a remote computing device. The storage controller is configured to receive a message encapsulating an input/output (I/O) command from a remote computing device via the NIC, wherein the I/O command is directed to the virtual storage device. The storage controller is further configured to determine one or more logical addresses of the virtual storage device specified in the I/O command, translate the one or more logical addresses of the virtual storage device into one or more physical addresses of the storage area, and access the one or more physical addresses of the storage area.
    Type: Grant
    Filed: February 27, 2018
    Date of Patent: September 18, 2018
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Raghuraman Govindasamy, Dan M. Melnic
  • Patent number: 9936024
    Abstract: A storage server generates a device tree representing a maximal topology of the storage server, wherein the maximal topology is a maximum number of storage controllers and solid state drives (SSDs) that are supported by the storage server, and wherein a plurality of entries in the device tree contain placeholder information. The storage server discovers one or more SSDs of the storage server and determines drive information for the one or more SSDs that have been discovered. The storage server replaces the placeholder information in one or more of the plurality of entries in the device tree with the drive information for the one or more SSDs.
    Type: Grant
    Filed: February 6, 2017
    Date of Patent: April 3, 2018
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Raghuraman Govindasamy, Dan M. Melnic
  • Patent number: 9727456
    Abstract: A processing device identifies a plurality of solid state storage devices arranged in an array and determines, for at least one solid state storage device of the plurality of solid state storage devices, a first time window during which the at least one solid state storage device is permitted to perform one or more garbage collection operations. The processing device then sends, to the at least one solid state storage device, a message comprising the first time window allocated to the at least one storage device, wherein the at least one solid state storage device is to perform the garbage collection operations during the first time window allocated to the at least one solid state storage device.
    Type: Grant
    Filed: November 3, 2014
    Date of Patent: August 8, 2017
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Raghuraman Govindasamy, Dan M. Melnic
  • Patent number: 9720598
    Abstract: A storage system comprises a storage array comprising a plurality of solid state storage devices (SSDs), a first processor comprising a first root complex of the storage system, a plurality of controller devices, and a first switch to interconnect the plurality of SSDs, the first processor and the plurality of controller devices. A first controller device of the plurality of controller devices is to connect the storage system to one or more remote servers. The first controller device is further to receive a first request from a first server of the one or more remote servers and determine whether the first request is a data request or a control request. The first controller device is further to send a first message to a first SSD of the plurality of SSDs via the first switch, bypassing the first processor, responsive to a determination that the first request is a data request.
    Type: Grant
    Filed: February 12, 2016
    Date of Patent: August 1, 2017
    Assignee: Pavilion Data Systems, Inc.
    Inventor: Kiron Balkrishna Malwankar
  • Patent number: 9712619
    Abstract: A processing device receives an input/output (I/O) command generated by a process, the I/O command directed to a virtual storage provided to a host executing the process, wherein the virtual storage comprises a virtual non-volatile memory express (NVMe) drive. The processing device generates a new I/O command based on the received I/O command and encapsulates the new I/O command into a message. The processing device sends the message to at least one of a remote NVMe storage device or a storage server comprising one or more remote NVMe storage devices.
    Type: Grant
    Filed: November 4, 2014
    Date of Patent: July 18, 2017
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Raghuraman Govindasamy, Dan M. Melnic
  • Patent number: 9652182
    Abstract: Disclosed are a system, a method and/or an apparatus of a shareable virtual non-volatile storage device for a server. In one embodiment, the system includes a server, a storage array, a management processor, and a switching fabric. The storage array includes a storage device coupled with a controller associated with a shared driver to receive a data request from the server at a remote location from the storage array through the switch fabric via a communication link to direct the data request to the storage device coupled with it and transmit data to the server through the switch fabric. A virtual storage device is generated in the server to enable the server to share the shared driver in the storage array with other servers through the switch fabric between the server and the storage array. The server distributes the data across the storage devices through the shared driver.
    Type: Grant
    Filed: January 31, 2013
    Date of Patent: May 16, 2017
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Srinivas Prasad Vellanki, Hemanth Srinivas Ravi
  • Patent number: 9565269
    Abstract: A processing device receives a message encapsulating an input/output (I/O) command from a remote computing device. The processing device identifies one or more physical storage devices to be accessed to satisfy the I/O command. The processing device then sends, to each physical storage device of the one or more physical storage devices, one or more non-volatile memory express (NVMe) commands directed to that physical storage device.
    Type: Grant
    Filed: November 4, 2014
    Date of Patent: February 7, 2017
    Assignee: Pavilion Data Systems, Inc.
    Inventors: Kiron Balkrishna Malwankar, Raghuraman Govindasamy, Dan M. Melnic