System and method for data synchronization using revision control

US2016253397A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016253397-A1
Application numberUS-201514633018-A
CountryUS
Kind codeA1
Filing dateFeb 26, 2015
Priority dateFeb 26, 2015
Publication dateSep 1, 2016
Grant date

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.

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.

First claim

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

Assignees

Inventors

Classifications

  • Document management systems · CPC title

  • G06F16/27Primary

    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

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 US2016253397A1 cover?
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, a…
Who is the assignee on this patent?
Red Hat 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 Thu Sep 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).