Enterprise peer-to-peer storage and method of managing peer network storage
US-9800659-B2 · Oct 24, 2017 · US
US2016253397A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016253397-A1 |
| Application number | US-201514633018-A |
| Country | US |
| Kind code | A1 |
| Filing date | Feb 26, 2015 |
| Priority date | Feb 26, 2015 |
| Publication date | Sep 1, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for data synchronization using revision control includes receiving, by a synchronization module being executed by one or more processors of a server, inbound edits to a shared document from a client, retrieving a first version of the shared document associated with the client from a revision history, updating the first version based on the inbound edits to create a second, adding the second version to the revision history when the second version is not included among a plurality of stored versions of the shared document in the revision history, and incrementing a reference counter that records a number of clients associated with the second version when the second version is included among the stored versions in the revision history. The revision history provides access to the stored versions of the shared document. The revision history includes version data used to access each stored version and the associated reference counters.
Opening claim text (preview).
What is claimed is: 1 . A method of data synchronization, the method comprising: receiving, by a synchronization module being executed by one or more processors of a server, inbound edits to a shared document from a client; retrieving a first version of the shared document associated with the client from a revision history, the revision history providing access to a plurality of stored versions of the shared document, wherein the revision history comprises: version data used to access each stored version; and reference counters that record a number of clients associated with each stored version; updating the first version based on the inbound edits to create a second version; adding the second version to the revision history when the second version is not included among the stored versions in the revision history; and incrementing the reference counter associated with the second version when the second version is included among the stored versions in the revision history. 2 . The method of claim 1 , wherein the data synchronization method is based on differential synchronization, and wherein the version of the shared document associated with the client is a server shadow. 3 . The method of claim 1 , wherein the revision history further comprises version identifiers that uniquely identify each stored version. 4 . The method of claim 3 , wherein the version identifiers include hash values of each stored version. 5 . The method of claim 3 , further comprising: determining a first version identifier that identifies the first version, the first version identifier being used to retrieve the first version from the revision history; and determining a second version identifier that identifies the second version, the second version identifier being used to determine whether the second version is included among the stored versions in the revision history. 6 . The method of claim 5 , wherein the version identifier is determined from information provided by the client. 7 . The method of claim 5 , wherein the version identifier is determined by looking up the version identifier using a version lookup table, the version lookup table being configured to associate clients with version identifiers. 8 . The method of claim 1 , further comprising trimming a first one of the stored versions in the revision history when a corresponding reference counter associated with the first one of the stored versions is below a predetermined threshold. 9 . The method of claim 8 , wherein trimming the first one of the stored versions comprises computing one or more composite patches based on a patch associated with the first one of the stored versions. 10 . The method of claim 8 , wherein sequence metadata associated with the first one of the stored versions indicates that the first one of the stored versions is older than an oldest active stored version, the oldest active stored version being the oldest stored version in the revision history that has a corresponding reference counter above the predetermined threshold. 11 . The method of claim 8 , wherein trimming the first one of the stored versions comprises moving, the first one of the stored versions from a primary memory to a secondary memory. 12 . The method of claim 1 , further comprising trimming a first one of the stored versions in the revision history when sequence metadata associated with the first one of the stored versions indicates that the first one of the stored versions is older than a predetermined threshold. 13 . The method of claim 12 , wherein trimming the first one of the stored versions comprises moving the first one of the stored versions from a primary memory to a secondary memory. 14 . A data synchronization system comprising: a synchronization module executed by one or more processors of a server; and a revision history configured to provide access to a plurality of stored versions of a shared document, wherein the revision history comprises version data used to access each stored version and reference counters that record a number of clients associated with each stored version; wherein the data synchronization system is configured to: receive, by the synchronization module, inbound edits to the shared document from a client; retrieve a first version of the shared document associated with the client from the revision history; update the first version based on the inbound edits to create a second version; add the second version to the revision history when the second version is not included among the stored versions in the revision history; and increment the reference counter associated with the second version when the second version is included among the stored versions in the revision history. 15 . The data synchronization system of claim 14 , wherein the revision history further comprises version identifiers that uniquely identify each stored version, the version identifiers including hash values of each stored version. 16 . The data synchronization system of claim 14 , wherein the data synchronization system is further configured to trim a first one of the stored versions in the revision history when a corresponding reference counter associated with the first one of the stored versions is below a predetermined threshold. 17 . The data synchronization system of claim 14 , wherein the data synchronization system is further configured to trim a first one of the stored versions in the revision history when sequence metadata associated with the first one of the stored versions indicates that the first one of the stored versions is older than a predetermined threshold. 18 . The data synchronization system of claim 16 , wherein sequence metadata associated with the first one of the stored versions indicates that the first one of the stored versions is older than an oldest active stored version, the oldest active stored version being the oldest stored version in the revision history that has a corresponding reference counter above the predetermined threshold. 19 . A non-transitory machine-readable medium comprising a plurality of machine-readable instructions which when executed by one or more processors associated with a server are adapted to cause the one or more processors to perform a method comprising: receiving inbound edits to a shared document from a client; determining a first version identifier that identifies a first version of the shared document associated with the client, the first version identifier including a hash value of the first version; retrieving the first version from a revision history using the first version identifier, the revision history providing access to a plurality of stored versions of the shared document, wherein the revision history comprises version identifiers corresponding to each stored version, the version identifiers including hash values of each stored version, version data used to access each stored version, and reference counters that record a number of clients associated with each stored version; updating the first version based on the inbound edits to create a second version; determining a second version identifier that identifies the second version, the second version identifier being used to determine whether the second version is included among the stored versions in the revision history, the second version identifier including a hash value of the second version; adding the second version to the revision history when the second version is not included among the stored versions in the revision
Document management systems · CPC title
Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title
Physics · mapped topic
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.