Patents by Inventor Nipunn Koorapati

Nipunn Koorapati 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: 20190205458
    Abstract: The disclosed technology relates to a system configured to compute a difference between a local tree data structure representing a file system state for content items associated with a user account on the computing system and a sync tree data structure representing a known synchronization state between a content management system and the computing system. The system is configured to generate, based on the difference, a set of operations that when performed update the content items stored on the content management system to converge a server state for content items associated the user account on the content management system and the file system state.
    Type: Application
    Filed: January 11, 2018
    Publication date: July 4, 2019
    Inventors: Isaac Goldberg, Sujay Jayakar, John Lai, Robert Ying, Nipunn Koorapati, Gautam Gupta, Geoffry Song, Elmer Charles Jubb, IV
  • Publication number: 20190205050
    Abstract: In some embodiments, an interface of a content management system manages synchronized content on storage systems. For example, the interface stores, on a metadata storage structure, records of metadata associated with blocks of data stored on a storage, the records including block identifiers that uniquely identify the blocks and timestamps associated with the blocks. The interface identifies a batch of storage operations associated with the blocks, including one or more delete operations. For each delete operation, the interface queries the metadata storage structure for a timestamp corresponding to a block of data associated with the delete operation, determines whether the delete operation creates a race condition between the delete operation and an add operation associated with the block of data, and rejects the delete operation when the delete operation creates the race condition or the timestamp corresponding to the block of data is newer than a predetermined period of time.
    Type: Application
    Filed: December 29, 2017
    Publication date: July 4, 2019
    Inventors: Nipunn Koorapati, Daniel Horn, Elmer Charles Jubb, IV
  • Publication number: 20190205422
    Abstract: The disclosed technology relates to a system configured to receive operations data from a content management system, wherein the operations data comprises a log of operations, execute the log of operations, and update, based on execution of the log of operations, a remote tree representing a server state for content items stored on the content management system.
    Type: Application
    Filed: January 5, 2018
    Publication date: July 4, 2019
    Inventors: Robert Ying, Nipunn Koorapati, Gautam Gupta
  • Publication number: 20190205428
    Abstract: The disclosed technology relates to a system configured to obtain a set of tree data structures including a remote tree representing a server state of content items associated with a user account on a content management system, a local tree representing a file system state of content items associated with the user account on a client device, and a sync tree representing a known sync state between the content management system and the client device. The system is configured to determine that the user account on the content management system includes at least one modification not synchronized to the client device by comparing the remote tree and the sync tree.
    Type: Application
    Filed: January 11, 2018
    Publication date: July 4, 2019
    Inventors: Isaac Goldberg, Sujay Jayakar, John Lai, Robert Ying, Nipunn Koorapati, Gautam Gupta, Geoffry Song, Elmer Charles Jubb, IV
  • Publication number: 20190205457
    Abstract: A system can serialize moves and mounts across namespaces based on lamport clocks. In some examples, the system obtains a request to move a content item from a source namespace to a destination namespace. The system processes an incoming move at the destination and an outgoing move at the source. The system processes for the content item a delete at the source and an add at the destination. The system assigns a first clock to the incoming move and a second clock to the outgoing move, the first clock being lower than the second clock. The system assigns a third clock to the delete and a fourth clock to the add, the third clock being higher than the second clock and lower than the fourth clock. The system serializes the incoming and outgoing moves, the delete and the add based on the first, second, third and fourth clocks.
    Type: Application
    Filed: January 17, 2018
    Publication date: July 4, 2019
    Inventors: Nipunn Koorapati, David Wetterau, Braden Walker, James Cowling, Sujay Jayakar
  • Publication number: 20190205427
    Abstract: The disclosed technology relates to a system configured to compute a difference between a remote tree data structure representing a server state for content items associated with an account on a content management system and a sync tree data structure representing a known synchronization state between the content management system and the computing system. The system is configured to generate, based on the difference, a set of operations that when performed on the computing system update the content items stored on the client device to converge a file system state on the computing system and the server state.
    Type: Application
    Filed: January 11, 2018
    Publication date: July 4, 2019
    Inventors: Isaac Goldberg, Sujay Jayakar, John Lai, Robert Ying, Nipunn Koorapati, Gautam Gupta, Geoffry Song, Elmer Charles Jubb, IV
  • Publication number: 20190205419
    Abstract: In some embodiments, a system for synchronizing content with client devices receives a request from a client device to synchronize operations pertaining to content items associated with a user account registered at the system. The request can include the operations and a cursor identifying a current position of the client in a journal of revisions on the system. Based on the operations, the system generates linearized operations associated with the content items. The linearized operations can include a respective operation derived for each of the content items from one or more of the operations. The system converts each respective operation in the linearized operations to a respective revision for the journal of revisions and, based on the cursor, determines whether the respective revision conflicts with revisions in the journal. When the respective revision does not conflict with revisions in the journal, the system adds the respective revision to the journal.
    Type: Application
    Filed: December 29, 2017
    Publication date: July 4, 2019
    Inventors: Elmer Charles Jubb, IV, Nipunn Koorapati, Robert Ying
  • Publication number: 20190207929
    Abstract: An interface of a content management system manages storage and access of content on the system. For example, after receiving, from a client, a request to download a content item, the interface determines whether the request includes a valid token. If so, the interface sends a content item request to a storage service, retrieves the content item, and sends the content item to the client. Otherwise, the interface sends an authorization request to an authorization service, an authentication request to an authentication service, and a content item request to the storage service. Based on the requests, the interface determines whether the content item is available in storage and whether the client is authorized to access the content item. When the content item is available in storage and the client is authorized to access the content item, the interface retrieves the content item and sends the content item to the client.
    Type: Application
    Filed: January 10, 2018
    Publication date: July 4, 2019
    Inventors: Nipunn Koorapati, Daniel Horn, Elmer Charles Jubb, IV
  • Patent number: 10324903
    Abstract: The disclosed technology relates to a system configured to obtain a set of tree data structures including a remote tree representing a server state of content items associated with a user account on a content management system, a local tree representing a file system state of content items associated with the user account on a client device, and a sync tree representing a known sync state between the content management system and the client device. The system is configured to determine that the user account on the content management system includes at least one modification not synchronized to the client device by comparing the remote tree and the sync tree.
    Type: Grant
    Filed: January 11, 2018
    Date of Patent: June 18, 2019
    Assignee: Dropbox, Inc.
    Inventors: Isaac Goldberg, Elmer Charles Jubb, IV, Sujay Jayakar, John Lai, Robert Ying, Nipunn Koorapati, Gautam Gupta, Geoffry Song
  • Patent number: 10133804
    Abstract: A content item block replication protocol for multi-premises hosting of digital content items. In one embodiment, for example, a method comprises: receiving, from a server, a server journal entry identifying one or more content item blocks of a content item represented by the server journal entry; storing a replication log entry corresponding to the server journal entry in a replication log, the replication log entry identifying the one or more content item blocks of the content item represented by the server journal entry and identifying a block server; and either offering to send the one or more content item blocks identified in the replication log entry to the block server identified in the replication log entry, or downloading the one or more content item blocks identified in the replication log entry from the block server identified in the replication log entry.
    Type: Grant
    Filed: May 23, 2017
    Date of Patent: November 20, 2018
    Assignee: Dropbox, Inc.
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger
  • Patent number: 9998541
    Abstract: A content management system synchronizes content items across client computing systems. The content items are transmitted to the content management system and managed as blocks of data with a fixed size. When a new content item is added to synchronized data at a client, the client transmits the blocks and a blocklist to the content management system. The content management system uses the blocklist to determine blocks expected to be received at the content management system and the client begins to transmit blocks of the content item to the content management system. When blocks received at the content management system match expected blocks, the content management system notifies receiving clients to begin receiving blocks for the content item, prior to receipt of all blocks on the blocklist at the content management system. This enables content items to begin synchronization across clients prior to actual entry of the content item into the content management system.
    Type: Grant
    Filed: October 7, 2017
    Date of Patent: June 12, 2018
    Assignee: Dropbox, Inc.
    Inventors: Bogdan-Cristian Tataroiu, Nipunn Koorapati
  • Publication number: 20180139085
    Abstract: Techniques for apparent cloud access of a hosted content item. In one embodiment, for example, a method performed at a personal computing device executing a user agent comprises: receiving a block agent request for a content item from the user agent; determining content item block identifiers of content item blocks that make up the content item; determining which, if any, of the content item blocks that make up the content item are not stored in a local storage of the personal computing device; downloading, from a block server of an online content management system, any of the content item blocks that are not stored in a local storage of the personal computing device; and sending to the user agent, in a response to the block agent request, data of each of the content item blocks that make up the content item.
    Type: Application
    Filed: January 12, 2018
    Publication date: May 17, 2018
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger
  • Publication number: 20180034910
    Abstract: A content management system synchronizes content items across client computing systems. The content items are transmitted to the content management system and managed as blocks of data with a fixed size. When a new content item is added to synchronized data at a client, the client transmits the blocks and a blocklist to the content management system. The content management system uses the blocklist to determine blocks expected to be received at the content management system and the client begins to transmit blocks of the content item to the content management system. When blocks received at the content management system match expected blocks, the content management system notifies receiving clients to begin receiving blocks for the content item, prior to receipt of all blocks on the blocklist at the content management system. This enables content items to begin synchronization across clients prior to actual entry of the content item into the content management system.
    Type: Application
    Filed: October 7, 2017
    Publication date: February 1, 2018
    Inventors: Bogdan-Cristian Tataroiu, Nipunn Koorapati
  • Patent number: 9882770
    Abstract: Techniques for apparent cloud access of a hosted content item. In one embodiment, for example, a method performed at a personal computing device comprising a user agent comprises: receiving a block agent request for a content item from the user agent; determining content item block identifiers of content item blocks that make up the content item; determining which, if any, of the content item blocks that make up the content item are not stored in a local storage of the personal computing device; downloading, from a block server of an online content management system, any of the content item blocks that are not stored in a local storage of the personal computing device; and sending to the user agent, in a response to the block agent request, data of each of the content item blocks that make up the content item.
    Type: Grant
    Filed: November 18, 2016
    Date of Patent: January 30, 2018
    Assignee: Dropbox, Inc.
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger
  • Patent number: 9819740
    Abstract: A content management system synchronizes content items across client computing systems. The content items are transmitted to the content management system and managed as blocks of data with a fixed size. When a new content item is added to synchronized data at a client, the client transmits the blocks and a blocklist to the content management system. The content management system uses the blocklist to determine blocks expected to be received at the content management system and the client begins to transmit blocks of the content item to the content management system. When blocks received at the content management system match expected blocks, the content management system notifies receiving clients to begin receiving blocks for the content item, prior to receipt of all blocks on the blocklist at the content management system. This enables content items to begin synchronization across clients prior to actual entry of the content item into the content management system.
    Type: Grant
    Filed: November 22, 2016
    Date of Patent: November 14, 2017
    Assignee: DROPBOX, INC.
    Inventors: Bogdan-Cristian Tataroiu, Nipunn Koorapati
  • Publication number: 20170255687
    Abstract: A content item block replication protocol for multi-premises hosting of digital content items. In one embodiment, for example, a method comprises: receiving, from a server, a server journal entry identifying one or more content item blocks of a content item represented by the server journal entry; storing a replication log entry corresponding to the server journal entry in a replication log, the replication log entry identifying the one or more content item blocks of the content item represented by the server journal entry and identifying a block server; and either offering to send the one or more content item blocks identified in the replication log entry to the block server identified in the replication log entry, or downloading the one or more content item blocks identified in the replication log entry from the block server identified in the replication log entry.
    Type: Application
    Filed: May 23, 2017
    Publication date: September 7, 2017
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger
  • Publication number: 20170222865
    Abstract: Techniques for apparent cloud access of a hosted content item. In one embodiment, for example, a method performed at a personal computing device comprising a user agent comprises: receiving a block agent request for a content item from the user agent; determining content item block identifiers of content item blocks that make up the content item; determining which, if any, of the content item blocks that make up the content item are not stored in a local storage of the personal computing device; downloading, from a block server of an online content management system, any of the content item blocks that are not stored in a local storage of the personal computing device; and sending to the user agent, in a response to the block agent request, data of each of the content item blocks that make up the content item.
    Type: Application
    Filed: November 18, 2016
    Publication date: August 3, 2017
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger
  • Patent number: 9697269
    Abstract: A content item block replication protocol for multi-premises hosting of digital content items. In one embodiment, for example, a method comprises: receiving, from a server, a server journal entry identifying one or more content item blocks of a content item represented by the server journal entry; storing a replication task log entry corresponding to the server journal entry in a replication task log, the replication task log entry identifying the one or more content item blocks of the content item represented by the server journal entry and identifying a block server; and either offering to send the one or more content item blocks identified in the replication task log entry to the block server identified in the replication task log entry, or downloading the one or more content item blocks identified in the replication task log entry from the block server identified in the replication task log entry.
    Type: Grant
    Filed: December 22, 2015
    Date of Patent: July 4, 2017
    Assignee: Dropbox, Inc.
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger
  • Publication number: 20170126802
    Abstract: A peer-to-peer synchronization protocol for multi-premises hosting of digital content items. In one embodiment, for example, a method comprises the operations of: receiving, from a peer computing device, a peer download advertisement comprising an identifier of a content item namespace in association with a peer client journal cursor value; receiving, from a server, one or more server journal entries, each identifying one or more content item blocks of a content item represented by the server journal entry and each having a server journal cursor value; and for at least one server journal entry, downloading, from the peer computing device, at least one content item block of the content item represented by the server journal entry that is not already stored at the computing device.
    Type: Application
    Filed: November 18, 2016
    Publication date: May 4, 2017
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger
  • Publication number: 20170124170
    Abstract: A synchronization protocol for multi-premises hosting of digital content items. In one embodiment, for example, a method comprises the operations of: detecting creation or modification of a content item; determining a content item namespace to which the content item belongs; obtaining a plurality of identifiers of a plurality of block servers to which the content item namespace is assigned; making a selection of one of the plurality of block servers as a target block server; and uploading any content item blocks of the content item to the target block server that are not already stored at the target block server.
    Type: Application
    Filed: December 22, 2015
    Publication date: May 4, 2017
    Inventors: Nipunn Koorapati, Christopher Rude, Marcio von Muhlen, Nils Bunger