Commit protocol for synchronizing content items

US11003685B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11003685-B2
Application numberUS-201815867612-A
CountryUS
Kind codeB2
Filing dateJan 10, 2018
Priority dateDec 28, 2017
Publication dateMay 11, 2021
Grant dateMay 11, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In some embodiments, a client generates an operation modifying a local copy of a content item on a user account at a content management system and records an intent to commit the operation to a journal of revisions at the content management system. Based on the operation, the client sends to the content management system a first request to commit the operation at the journal, the first request including a cursor identifying a current position of the client in the journal. The client sends, to the content management system, a second request for a status of the commit and, based on the second request, determines whether the commit of the operation to the journal has succeeded. Based on whether the commit of the operation to the journal has succeeded, the client determines whether to update one or more tree data structures on the client and clear the intent to commit.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: generating, at a client device, an operation modifying a local copy of a content item associated with a user account at a content management system; recording, at the client device, an intent to commit the operation to a journal of revisions on the content management system, the journal of revisions tracking revisions to content items associated with one or more namespaces associated with the user account; based on the operation, sending, by the client device to the content management system, a first request to commit the operation to the journal of revisions, the first request comprising a cursor identifying a current position of the client device at the journal of revisions, the cursor including an FSAuth token and last observed access permissions to an identifier of the one or more namespaces to verify authorization of requesting the commit of the operation to the journal of revisions; receiving, by the client device from the content management system, a determination that the cursor is at an end of the journal of revisions indicating that the client device is receiving a latest revision of the content items associated with the one or more namespaces; sending, by the client device to the content management system, a second request for a status of the commit at the content management system; receiving, by the client device from the content management system, a response to the second request; determining, by the client device, whether the response comprises an indication that the commit of the operation to the journal of revisions succeeded; and based on whether the response comprises the indication that the commit of the operation to the journal of revisions succeeded, determining whether to update one or more tree data structures on the client device and clear the intent to commit, the one or more tree data structures comprising a synchronization tree representing a comparison between a local state and a remote state associated with the content items including the content item. 2. The method of claim 1 , wherein the one or more tree data structures further comprise a local tree and a remote tree, the local tree representing the local state of content items associated with the user account, and the remote tree representing the remote state at the content management system of the content items associated with the user account. 3. The method of claim 2 , further comprising: when the response comprises the indication that the commit of the operation to the journal of revisions succeeded: updating the remote tree and the synchronization tree to reflect a modification to the content item based on the operation; and clearing the intent to commit at the client device. 4. The method of claim 3 , further comprising updating the local tree to reflect the modification to the local copy of the content item, wherein recording the intent to commit comprises indicating that the operation comprises a self-authored operation generated by the client device. 5. The method of claim 2 , further comprising: when the response does not comprise the indication that the commit of the operation to the journal of revisions succeeded, clearing the intent to commit at the client device without updating the remote tree or the synchronization tree to reflect a modification to the content item based on the operation. 6. The method of claim 1 , wherein the cursor identifies the current position in the journal based on a respective namespace identifier of one or more namespaces associated with the content item and a respective revision number associated with the respective namespace identifier. 7. The method of claim 6 , further comprising: obtaining, by the client device from the content management system, an updated cursor that increments the respective revision number associated with the respective namespace identifier, the updated cursor being based on at least one of the first request or the second request. 8. The method of claim 1 , wherein the cursor comprises a respective namespace identifier of one or more namespaces associated with the content item and a respective revision number previously received by the client device for the respective namespace identifier, the method further comprising: receiving, by the client device from the content management system, the indication that the commit succeeded when the respective revision number comprises a latest revision at the journal of revisions corresponding to the respective namespace identifier. 9. A non-transitory computer readable medium comprising instructions, the instructions, when executed by a computing device, cause the computing device to: generate an operation modifying a local copy of a content item associated with a user account at a content management system; record an intent to commit the operation to a journal of revisions on the content management system, the journal of revisions tracking revisions to content items associated with one or more namespaces associated with the user account; based on the operation, send, to the content management system, a first request to commit the operation to the journal of revisions, the first request comprising a cursor identifying a current position of the computing device in the journal of revisions, the cursor including an FSAuth token and last observed access permissions to an identifier of the one or more namespaces to verify authorization of requesting the commit of the operation to the journal of revisions; receive, from the content management system, a determination that the cursor is at an end of the journal of revisions indicating that the computing device is receiving a latest revision of the content items associated with the one or more namespaces; send, to the content management system, a second request for a status of the commit at content management system; based on the second request, determine whether the commit of the operation to the journal of revisions has succeeded; and based on whether the commit of the operation to the journal of revisions has succeeded, determine whether to update one or more tree data structures on the computing device and clear the intent to commit, the one or more tree data structures comprising a synchronization tree representing a comparison between a local state and a remote state associated with the content items including the content item. 10. The non-transitory computer readable medium of claim 9 , wherein the one or more tree data structures further comprise a local tree and a remote tree, the local tree representing the local state of content items associated with the user account, and the remote tree representing the remote state at the content management system of the content items associated with the user account. 11. The non-transitory computer readable medium of claim 10 , storing instructions which, when executed by the computing device, cause the computing device to: based on a determination that the commit of the operation to the journal of revisions succeeded: update the remote tree and the synchronization tree to reflect a modification to the content item based on the operation; and clear the intent to commit at the computing device. 12. The non-transitory computer readable medium of claim 11 , storing instructions which, when executed by the computing device, cause the computing device to update the local tree to reflect the modification to the local copy of the content item, wherein recording the intent to commit comprises indicating that the operation comprises a self-authored operation generated by the computing device. 13. The non-transitory

Assignees

Inventors

Classifications

  • G06F16/27Primary

    Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

  • G06F16/11Primary

    File system administration, e.g. details of archiving or snapshots (error detection or correction of the data by redundancy in operations G06F11/14) · CPC title

  • Protocols · CPC title

  • implemented as replicated file system · CPC title

  • Configuration or reconfiguration of storage systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11003685B2 cover?
In some embodiments, a client generates an operation modifying a local copy of a content item on a user account at a content management system and records an intent to commit the operation to a journal of revisions at the content management system. Based on the operation, the client sends to the content management system a first request to commit the operation at the journal, the first request …
Who is the assignee on this patent?
Dropbox Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/27. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 11 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).