Patents by Inventor Sandeep RANGASWAMY

Sandeep RANGASWAMY 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: 20250028471
    Abstract: An example method of resynchronizing a first replica of an object and a second replica of an object in an object storage system, includes: determining, by storage software in response to the second replica transitioning from failed to available, a stale sequence number for the second replica, the storage software having associated the stale sequence number with the second replica when the second replica failed; querying, by the storage software, block-level metadata for the object using the stale sequence number, the block-level metadata relating logical blocks of the object with sequence numbers for operations on the object; determining, by the software as a result of the querying, a set of the logical blocks each related to a sequence number being the same or after the stale sequence number; and copying, by the storage software, data of the set of logical blocks from the first replica to the second replica.
    Type: Application
    Filed: July 20, 2023
    Publication date: January 23, 2025
    Inventors: Venkata RAMANAN, Eric KNAUFT, Pascal RENAULD, Sandeep RANGASWAMY, Sudheer THOKALA
  • Publication number: 20210374155
    Abstract: The disclosure herein describes tracking changes to a stale component using a synchronization bitmap. A first component of a plurality of mirrored components of the distributed data object becomes available from an unavailable state, and a stale log sequence number (LSN) and a last committed LSN are identified. A synchronization bitmap of the first component associated with a range of LSNs (e.g., from the stale LSN to the last committed LSN) is created and configured to track changes to data blocks of the first component. A second component is identified based on the second component including a tracking bitmap associated with an LSN that matches the stale LSN of the first component. The first component is synchronized with data from the second component based on, wherein the synchronizing includes updating the synchronization bitmap to track changes made to data blocks of the first component.
    Type: Application
    Filed: May 29, 2020
    Publication date: December 2, 2021
    Inventors: Enning XIANG, Pascal RENAULD, Sandeep RANGASWAMY, Xin LI, Yiqi XU, Venkata RAMANAN
  • Publication number: 20210026825
    Abstract: Embodiments described herein are related to a method of scanning a B-tree. For example, a method comprises receiving a scan request to scan a B-tree having a plurality of levels, each level comprising one or more nodes, wherein for each of one or more levels of the plurality of levels, nodes are grouped into groups, where nodes of any given group are stored across sequential disk blocks. The method further comprises generating a queue for each level of the B-tree. For each queue, the method further comprises loading into memory a next group of nodes based upon determining a storage location of a node of the next group of nodes.
    Type: Application
    Filed: July 16, 2020
    Publication date: January 28, 2021
    Inventors: Abhishek GUPTA, Richard P. SPILLANE, Robert T. JOHNSON, Srinath PREMACHANDRAN, Jorge GUERRA DELGADO, Kapil CHOWKSEY, Sandeep RANGASWAMY
  • Publication number: 20200293506
    Abstract: Embodiments described herein are related to bulk loading data into a B-tree. Embodiments include generating a first leaf node of a B-tree by allocating a first page for the first leaf node from a leaf page queue comprising a first plurality of sequential pages; and writing one or more tuples to the first page allocated for the first leaf node. Embodiments further include generating an parent node for the first leaf node and a second leaf node of the B-tree by allocating a third page for the parent node from an parent page queue comprising a second plurality of sequential pages, the parent node comprising a first indication of the first leaf node and a second indication of the second leaf node, the first indication and the second indication stored in the third page allocated for the parent.
    Type: Application
    Filed: March 14, 2019
    Publication date: September 17, 2020
    Inventors: Abhishek GUPTA, Robert T. JOHNSON, Richard P. SPILLANE, Sandeep RANGASWAMY, Jorge GUERRA DELGADO, Srinath PREMACHANDRAN, Kapil CHOWKSEY
  • Publication number: 20200233801
    Abstract: Certain aspects provide systems and methods for performing an operation on a B?-tree. A method comprises writing a message associated with the operation to a first slot in a first buffer of a first non-leaf node of the B?-tree in an append-only manner, wherein a first filter associated with the first slot is used for query operations associated with the first slot. The method further comprises determining that the first buffer is full and, upon determining to flush the message to a non-leaf child node, flushing the message in an append-only manner to a second slot in a second buffer of the non-leaf child node, wherein a second filter associated with the second slot is used for query operations associated with the second slot. The method further comprises, upon determining to flush the message to a leaf node, flushing the message to the leaf node in a sorted manner.
    Type: Application
    Filed: January 18, 2019
    Publication date: July 23, 2020
    Inventors: Abhishek GUPTA, Robert T. JOHNSON, Richard P. SPILLANE, Sandeep RANGASWAMY, Jorge GUERRA DELGADO, Kapil CHOWKSEY, Srinath PREMACHANDRAN
  • Publication number: 20190370239
    Abstract: Embodiments herein are directed towards systems and methods for performing range lookups in B?-trees. One example method involves receiving a request to return key-value pairs within a range of keys from the B?-tree. The B?-tree includes a plurality of nodes, each node being associated with a buffer that stores key-value pairs. The method further involves determining a fractional size of the range of keys. The method further involves, for each level of the B?-tree, obtaining from within one or more buffers of one or more nodes of the level, a set of key-value pairs within the range of keys up to a size equal to the fractional size and transferring the set of key-value pairs to a result data structure. The method further involves sorting and merging all key-value pairs in the result data structure and returning the result data structure in response to the request.
    Type: Application
    Filed: June 5, 2018
    Publication date: December 5, 2019
    Inventors: Abhishek GUPTA, Richard P. SPILLANE, Rob JOHNSON, Wenguang WANG, Kapil CHOWKSEY, Jorge GUERRA DELGADO, Sandeep RANGASWAMY, Srinath PREMACHANDRAN
  • Publication number: 20190311047
    Abstract: Embodiments described herein involve improved management of snapshots of a file system. Embodiments include copying a first root node of a first snapshot to a second snapshot, the second snapshot referencing other nodes of the first snapshot. Embodiments further include incrementing reference counts of the other nodes of the first snapshot. Embodiments further include adding a storage address of the first root node to a list. Embodiments further include, each time that a copy on write operation is performed for a node of the other nodes, adding a storage address of the node to the list and decrementing the reference count of the node. Embodiments further include iterating through the list and, for each storage address in the list, decrementing the reference count of the node corresponding to the storage address and, if the reference count of the node reaches zero, freeing storage space at the storage address.
    Type: Application
    Filed: April 6, 2018
    Publication date: October 10, 2019
    Inventors: Jorge GUERRA DELGADO, Richard P. SPILLANE, Kapil CHOWKSEY, Sandeep RANGASWAMY, Abhishek GUPTA, Srinath PREMACHANDRAN
  • Publication number: 20190294716
    Abstract: Exemplary methods, apparatuses, and systems include a file system process reading a first node in a tree data structure from a first memory. The first node includes a first approximate membership query data structure (“AMQ”), a first plurality of child pointers, a first plurality of pivot values, and a first buffer. The file system process determines that the first plurality of child pointers exceeds a maximum size. Using a pivot value in the first plurality of pivot values, the file system process splits the first node into a second node and a third node. The file system process uses the pivot value to split the first buffer into a second buffer and a third buffer. Using the pivot value and the first AMQ, the file system process generates a second AMQ and a third AMQ.
    Type: Application
    Filed: March 20, 2018
    Publication date: September 26, 2019
    Inventors: Abhishek GUPTA, Rob T. JOHNSON, Srinath PREMACHANDRAN, Richard P. SPILLANE, Sandeep RANGASWAMY, Jorge GUERRA DELGADO, Kapil CHOWKSEY, Wenguang WANG
  • Publication number: 20190294715
    Abstract: Exemplary methods, apparatuses, and systems include a file system process obtaining locks on a first node and a second node in a tree structure, with the second node being a child node of the first node. The file system process determines a quantity of child nodes of the second. While holding the locks on the first and second nodes, the file system determines whether to proactively split or merge the second node. In response to determining that the quantity of child nodes is within a first range, the file system process splits the second node. If the file system process determines that the quantity of child nodes is within a second range, the file system process merges the second node.
    Type: Application
    Filed: March 20, 2018
    Publication date: September 26, 2019
    Inventors: Abhishek GUPTA, Rob T. JOHNSON, Srinath PREMACHANDRAN, Richard P. SPILLANE, Sandeep RANGASWAMY, Jorge GUERRA DELGADO, Kapil CHOWKSEY, Wenguang WANG
  • Publication number: 20190294709
    Abstract: Exemplary methods, apparatuses, and systems include a file system process inserting a first key/value pair and a second key/value pair into a first tree. The second key is a duplicate of the first key and the value of the second key/value pair is an operation changing the value. In response to a request for a range of key/value pairs, the process reads the second key/value pair and inserts it in a second tree. The process reads the first pair and determines, while inserting the first pair in the second tree, that the second key is a duplicate of the first key. The file system process determines an updated value of the first value by applying the operation in the second value to first value. The file system operation updates the second key/value pair in the second tree with the updated value and returns the requested range of key/value pairs.
    Type: Application
    Filed: March 20, 2018
    Publication date: September 26, 2019
    Inventors: Abhishek GUPTA, Rob T. JOHNSON, Srinath PREMACHANDRAN, Richard P. SPILLANE, Sandeep RANGASWAMY, Jorge GUERRA DELGADO, Kapil CHOWKSEY, Wenguang WANG
  • Publication number: 20190294710
    Abstract: Exemplary methods, apparatuses, and systems include a file system process determining to a flush a node in a first tree. The first node includes a buffer structured as a second tree. The file system process generates an input/output instruction to load the buffer from a first memory to a second memory. The second tree is stored in two more non-contiguous locations in the first memory and the input/output operation includes a read operation corresponding to each of the two or more non-contiguous locations. The file system process causes the input/output instruction to be executed concurrently on the first memory.
    Type: Application
    Filed: March 20, 2018
    Publication date: September 26, 2019
    Inventors: Abhishek GUPTA, Rob T. JOHNSON, Srinath PREMACHANDRAN, Richard P. SPILLANE, Sandeep RANGASWAMY, Jorge GUERRA DELGADO, Kapil CHOWKSEY, Wenguang WANG
  • Publication number: 20190026303
    Abstract: Exemplary methods, apparatuses, and systems include a destination node receiving, from a source node, a hash of data stored by the source node and designated for transfer from the source node to the destination node. In response to determining the hash received from the source node maps to data stored by the destination node, the destination node reads the data into a write buffer and transmits an indication to the source node that the data is present at the source node. The destination node reads the data from write buffer and, in response to determining the data read from the write buffer remains unchanged as stored by the destination node, increases a reference count for the data as stored by the destination node.
    Type: Application
    Filed: July 18, 2017
    Publication date: January 24, 2019
    Inventors: Jorge GUERRA DELGADO, Eric KNAUFT, Gopala SURYANARAYANA, Sandeep RANGASWAMY, Srinath PREMACHANDRAN
  • Publication number: 20160342462
    Abstract: Exemplary methods, apparatuses, and systems include a first layer of a virtual storage area network (VSAN) module receiving a write request from a data compute node. The write request includes data to be written and the VSAN module is distributed across a plurality of computers to provide an aggregate object store using storage attached to each of the plurality of computers. The first layer of the VSAN module calculates a checksum for the data to be written and passes the data to be written and the checksum to a second layer of the VSAN module. The second layer of the VSAN module calculates a first verification checksum for the data to be written. The data and the checksum are written to persistent storage in response to determining the first verification checksum matches the checksum passed by the first layer of the VSAN module.
    Type: Application
    Filed: May 19, 2015
    Publication date: November 24, 2016
    Inventors: Christos KARAMANOLIS, Wenguang WANG, Kiran JOSHI, Sandeep RANGASWAMY