Efficiently propagating diff values

US11048720B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11048720-B2
Application numberUS-201715858207-A
CountryUS
Kind codeB2
Filing dateDec 29, 2017
Priority dateDec 28, 2017
Publication dateJun 29, 2021
Grant dateJun 29, 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.

The disclosed technology relates to a system configured to detect a modification to a node in a tree data structure. The node is associated with a content item managed by a content management service as well as a filename. The system may append the filename and a separator to a filename array, determine a location of the filename in the filename array, and store the location of the filename in the node.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method to determine changes in a tree data structure upon adding a new leaf node that avoids recalculating a hash value for each ancestor node in the tree data structure, the computer-implemented method comprising: receiving modification data for content items stored by a content management system; adding the new leaf node in the tree data structure based on the modification data, the tree data structure representing content items at the content management system, wherein parent nodes in the tree data structure are assigned diff values calculated based on a hash of a sum of diff values of their respective child nodes; calculating a diff value for the new leaf node; calculating a new diff value for a parent of the new leaf node by performing an exclusive-or (XOR) operation using a current diff value of a parent node and the diff value of the added new leaf node; storing the new diff value for the parent in the parent node without changing diff values of any other node in the tree data structure; comparing the diff value of the added new leaf node in the tree data structure with a second diff value for a corresponding node in a different tree data structure; identifying a difference between the tree data structure and the different tree data structure based on the comparing; and generate a set of operations based on the difference. 2. The computer-implemented method of claim 1 , wherein the tree data structure is one of a local tree, a remote tree, or a sync tree. 3. The computer-implemented method of claim 1 , wherein the diff value for the new leaf node is calculated using a hash of the new leaf node. 4. The computer-implemented method of claim 1 , further comprising: managing execution of the set of operations. 5. The computer-implemented method of claim 4 , further comprising transmitting the set of operations to the content management system. 6. The computer-implemented method of claim 1 , wherein the new leaf node represents a content item associated with a content management service. 7. The computer-implemented method of claim 1 , wherein the new diff value is zero if the current diff value of the parent node and the diff value of the added node are identical. 8. The computer-implemented method of claim 1 , wherein no other node is updated in order for the new diff value to be stored. 9. A non-transitory computer-readable medium to determine changes in a sync tree upon adding a new leaf node that avoids recalculating a hash value for each ancestor node in the sync tree, the non-transitory computer-readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to: receive modification data for content items stored by a content management system; add a new leaf node in a sync tree based on the modification data, wherein parent nodes in the sync tree are assigned diff values calculated based on a hash of a sum of diff values of their respective child nodes; calculate a diff value for the new leaf node in the sync tree, wherein the sync tree represents a known synced state between a server state and a file system state, wherein diff values for nodes in the sync tree are numerical values; calculate a new diff value for a parent node of the new leaf node by performing an exclusive-or (XOR) operation on a current diff value of the parent node and the diff value of the new leaf node; store the new diff value for the parent node without changing diff values of any other node in the sync tree; compare the diff value of the added new leaf node in the sync tree with a second diff value for a corresponding node in a different tree data structure; identify a difference between the sync tree and the different tree data structure based on the comparing; and generate a set of operations based on the difference. 10. The non-transitory computer-readable medium of claim 9 , wherein the instructions further cause the computing system to add the node in the sync tree. 11. The non-transitory computer-readable medium of claim 9 , wherein the set of operations is configured to operate on content items stored on a client device to converge the server state and the file system state. 12. The non-transitory computer-readable medium of claim 9 , wherein the different tree data structure is a local tree. 13. A device comprising: one or more processors; and at least one memory having instructions stored thereon, that when executed the instructions are effective to cause the one or more processors to: receive modification data for content items stored by a content management system; add a new leaf node in a sync tree based on the modification data, wherein parent nodes in the sync tree are assigned diff values calculated based on a hash of a sum of diff values of their respective child nodes; calculate a diff value for the new leaf node in the sync tree, wherein the sync tree represents a known synced state between a server state and a file system state, wherein diff values for nodes in the sync tree are numerical values; calculate a new diff value for a parent node of the new leaf node by performing an exclusive-or (XOR) operation on a current diff value of the parent node and the diff value of the new leaf node; store the new diff value for the parent node without changing diff values of any other node in the sync tree; compare the diff value of the added new leaf node in the sync tree with a second diff value for a corresponding node in a different tree data structure; identify a difference between the sync tree and the different tree data structure based on the comparing; and generate a set of operations based on the difference. 14. The device of claim 13 , wherein the set of operations is configured to operate on content items stored on the device to converge the server state and the file system state. 15. The device of claim 13 , wherein the new diff value is zero if the current diff value of the parent node and the diff value of the added new leaf node are identical. 16. The device of claim 13 , further comprising transmitting the set of operations to the content management system.

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

  • Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs · CPC title

  • G06F16/178Primary

    Techniques for file synchronisation in file 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 US11048720B2 cover?
The disclosed technology relates to a system configured to detect a modification to a node in a tree data structure. The node is associated with a content item managed by a content management service as well as a filename. The system may append the filename and a separator to a filename array, determine a location of the filename in the filename array, and store the location of the filename in …
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 Jun 29 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).