US20030172070A1 - Synchronous peer-to-peer multipoint database synchronization - Google Patents

Synchronous peer-to-peer multipoint database synchronization Download PDF

Info

Publication number
US20030172070A1
US20030172070A1 US10/090,613 US9061302A US2003172070A1 US 20030172070 A1 US20030172070 A1 US 20030172070A1 US 9061302 A US9061302 A US 9061302A US 2003172070 A1 US2003172070 A1 US 2003172070A1
Authority
US
United States
Prior art keywords
database
computer
changes
peer
users
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/090,613
Inventor
Nicholas Sawadsky
Daniel Shi
Andrew Block
Michael Blackstock
Henricus Spaay
Desiree Rodriguez
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Colligo Networks Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US10/090,613 priority Critical patent/US20030172070A1/en
Assigned to COLLIGO NETWORKS, INC. reassignment COLLIGO NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BLACKSTOCK, MICHAEL ANTHONY, BLOCK, ANDREW EDWARD, RODRIGUEZ, DESIREE PAULA, SAWADSKY, NICHOLAS JUSTIN, SHI, DANIEL (YILIN), SPAAY, HENRICUS GERARDUS
Publication of US20030172070A1 publication Critical patent/US20030172070A1/en
Priority to US11/196,567 priority patent/US7366743B2/en
Priority to US12/077,887 priority patent/US7966285B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Definitions

  • the present invention generally relates to database synchronization and more particularly to a system and method of database synchronization over a peer-to-peer network.
  • Computing networks can be established between the devices so that collaborative information can be shared.
  • the computing devices can form peer-to-peer networks between one another such that information can be shared without the use of a central server to store a database of information.
  • U.S. Pat. No. 6,295,541 entitled “Systems and Methods for Synchronizing Two or More Datasets” describes a method whereby a reference database is maintained which the other devices synchronize to when available.
  • the patent describes a system whereby devices synchronize to the reference database at different times when they are online such that synchronization occurs serially between devices. Furthermore, only one device is considered the reference database such that only one device controls the synchronization process.
  • the present invention addresses the above-mentioned deficiencies in database reconciliation by providing a peer-to-peer method for synchronizing two or more copies of databases without server mediation in real-time.
  • the present invention provides a method of synchronization wherein there is no asynchronous storage of interim reference datasets.
  • the present invention provides synchronization in parallel so that several users can simultaneously synchronize individual varying datasets without having to serially exchange and aggregate changes.
  • the present invention allows for any user to initiate synchronization such that one user does not need to be control.
  • a method of synchronizing databases between multiple users in a peer-to-peer network is initiated by one member of a group of peers.
  • the other group members first extract their changes from their local copy of the database, compress the changes, and send those changes to the initiator.
  • the initiator then decompresses their changes and replicates them into its local database.
  • the initiator then extracts all changes (including those received from other group members) from the local database.
  • the changes are compressed and sent to the other users in the peer-to-peer network.
  • the changes are decompressed and replicated on the database of each of the other users.
  • the databases of each group member will contain all changes from the databases of all the group members.
  • FIG. 1 is a flowchart illustrating a method of unilateral database synchronization from a target computer to an initiating computer according to the present invention
  • FIG. 2 is a diagram illustrating unilateral database replication from multiple target computers to the initiating computer
  • FIG. 6 is a diagram illustrating the selection of database replication techniques by a user.
  • FIG. 2 shows unilateral database replication between an initiating computer 10 and target computers 12 a , 12 b and 12 c according to the present invention.
  • Both the initiating computer 10 and the target computers 12 a , 12 b , and 12 c are computing devices having a memory and capable of storing and processing information.
  • the computing devices may be PDA's (i.e., Personal Digital Assistants) which are in electronic communication with one another through a peer-to-peer network.
  • the network may be a wireless network such as Bluetooth, or could be a wired network such as an Ethernet.
  • the peer-to-peer network provides electronic communication between the initiating computer 10 and the target computers 12 without the use of a server.
  • the process for synchronizing the target computers 12 to the initiating computer 10 begins by the initiating computer 10 sending out a synchronization request to the target computers 12 .
  • the synchronization command informs the target computers that the initiating computer 10 wishes to synchronize databases with them. It will be recognized that any computer in the network may be the initiating computer such that it is possible for any computer to start the synchronization process.
  • the term initiating computer designates the computer that wishes the synchronization process to begin.
  • the target computer 12 a has a source database 14 a that is created in memory (i.e., hardrive, RAM, etc. . . . ).
  • the source database 14 a contains information which is shared between the target computer 12 a and the other computing devices (i.e. computers 12 b , 12 c and 10 ).
  • any changes to the source database 14 a are extracted to create a temporary extracted database 16 a containing at least all relevant changes to both the target computer 12 a and the initiating computer 10 .
  • the extracted database 16 a corresponds to the replica source 14 a stored on the target computer 12 a .
  • the compressed database 18 a is transferred to the initiating computer 10 .
  • the file of the compressed database 18 a is transferred to the initiating computer 10 in response to a request using any well known file transfer technique over any type of network, as previously described.
  • Each of the target computers 12 will transfer information to the initiating computer 10 in parallel or in sequence when it is not possible to perform parallel communications.
  • the compressed database 18 a is transferred to a temporary transferred database 20 a that is created on the initiating computer 10 in step 112 .
  • step 113 the compressed database 18 a on the target computer 12 a is expunged.
  • the transferred database 20 a is synchronized with the source database 24 of the initiating computer 10 .
  • the transferred database 20 a is decompressed on the initiating computer 10 , as seen in FIG. 4.
  • the transferred database 20 a is decompressed using a complementary decompression technique to that of step 106 .
  • a decompressed database 22 a is created on the initiating computer 10 .
  • the transferred database 20 a is expunged in step 115 .
  • the decompressed database 22 a is then replicated with the source database 24 of the initiating computer 10 in step 118 .
  • This operation is performed using the database API of the initiating computer 10 if such an API is available. In the case where no such API is available, replication is performed by the synchronization system itself. The process of replication causes the changes copied in the extracted database 16 a to be incorporated into the source database 24 of the initiating computer 10 .
  • the updated source database 24 is created in step 120 which has the changes and is identical to the source database 14 a .
  • the decompressed database 22 a is expunged in step 122 .
  • the process for synchronizing the target computers 12 to the initiating computer 10 is similar to the process of synchronization described in FIG. 1.
  • the process begins with the initiating computer 10 sending a synchronization request to the target computers 12 a , 12 b , and 12 c informing them that the initiating computer 10 wishes to send them changes to their databases.
  • the synchronization process proceeds according to FIG. 7 such that changes in the source database 24 of the initiating computer 10 are extracted in step 702 to create an extracted database 26 in step 704 .
  • the extracted database 26 is compressed to create a compressed database 28 in step 708 .
  • the extracted database 26 is expunged in step 709 .
  • the compressed database 28 is transferred to the target computers 12 a , 12 b , and 12 c in parallel over the computer network.
  • the synchronization process of the present invention is a parallel method whereby each of the target computers 12 can synchronize with the initiating computer 10 quickly.
  • a target computer 12 can refuse the request such that synchronization does not occur. If the target computer 12 refuses, then in step 608 , there is no further action with those target computers 12 which refuse synchronization. However, in step 610 , target computers 12 which accept the synchronization request proceed to receive changes as previously described for FIG. 3.
  • the initiating computer 10 will send the synchronization request to the 1 ⁇ n target computers 12 as shown in step 612 .
  • each of the target computers 12 will respond to the request by either refusing or accepting the request. If a target computer 12 refuses the request, then in step 618 no further action is taken with that target computer 12 . However, if the target computer 12 accepts the request, then the bilateral synchronization process shown in FIG. 5 commences and the target computer 12 will begin sending changes to the initiating computer 10 and then proceed to receive all changes therefrom, as shown in step 620 .
  • the initiating computer 10 will send the synchronization request to the target computers 12 in step 622 .
  • the target computers 12 will respond in step 624 . If a target computer 12 refuses to send changes to the initiating computer 10 , then no further action will occur, as shown in step 626 . However, if the target computer 12 agrees to the synchronization process, then in step 628 , the changes are sent to the initiating computer as described for FIG. 2.

Abstract

A method of synchronizing databases between multiple users in a peer-to-peer network is disclosed. The method comprises extracting changes from a source database of one of the users. Next, the changes are compressed and sent to the other users in the peer-to-peer network in parallel. Finally, the changes are decompressed and replicated on the database of each of the other users. In this respect, the databases of the other users will contain all changes from the source database.

Description

    BACKGROUND OF THE INVENTION
  • The present invention generally relates to database synchronization and more particularly to a system and method of database synchronization over a peer-to-peer network. [0001]
  • With the popularity of handheld computing devices (i.e., PDA's, cell phones, etc. . . . ) increasing, there is becoming a greater need and ability to share information between devices. Computing networks can be established between the devices so that collaborative information can be shared. The computing devices can form peer-to-peer networks between one another such that information can be shared without the use of a central server to store a database of information. [0002]
  • Currently, in the prior art, computers use databases stored on a central database server in order to communicate information. Database systems have replication and synchronization capabilities in order to update information on client systems. These synchronization capabilities are usually restricted to simple two-point exchanges between clients and servers. The synchronization and replication capability require the database server to effect dataset reconciliation between multiple users. [0003]
  • When multiple users without access to the database server wish to synchronize their databases, it must be done by a series of 2-way exchanges. For instance, information must flow in both directions between users in order to synchronize the dataset. At the very least, this involves 2*n combinations of replications and synchronization. As databases get large, the synchronization and replication procedures between the users becomes tedious and time consuming. Moreover, without the use of a central database server, one user must manage the entire process and ensure that all parties have been included in the synchronization and that data integrity is not lost. [0004]
  • U.S. Pat. No. 6,295,541, entitled “Systems and Methods for Synchronizing Two or More Datasets” describes a method whereby a reference database is maintained which the other devices synchronize to when available. The patent describes a system whereby devices synchronize to the reference database at different times when they are online such that synchronization occurs serially between devices. Furthermore, only one device is considered the reference database such that only one device controls the synchronization process. [0005]
  • The present invention addresses the above-mentioned deficiencies in database reconciliation by providing a peer-to-peer method for synchronizing two or more copies of databases without server mediation in real-time. In this respect, the present invention provides a method of synchronization wherein there is no asynchronous storage of interim reference datasets. The present invention provides synchronization in parallel so that several users can simultaneously synchronize individual varying datasets without having to serially exchange and aggregate changes. Furthermore, the present invention allows for any user to initiate synchronization such that one user does not need to be control. [0006]
  • BRIEF SUMMARY OF THE INVENTION
  • In accordance with the present invention, there is provided a method of synchronizing databases between multiple users in a peer-to-peer network. The method is initiated by one member of a group of peers. The other group members first extract their changes from their local copy of the database, compress the changes, and send those changes to the initiator. The initiator then decompresses their changes and replicates them into its local database. The initiator then extracts all changes (including those received from other group members) from the local database. Next, the changes are compressed and sent to the other users in the peer-to-peer network. Finally, the changes are decompressed and replicated on the database of each of the other users. In this respect, the databases of each group member will contain all changes from the databases of all the group members. [0007]
  • The above description describes a bilateral synchronization, in that changes are both sent and received from each peer. A unilateral synchronization is also possible, which consists of either the first half (receiving changes) or the second half (sending changes) of the above description. It will be recognized that the process can be initiated and performed by any user in the peer-to-peer network. In the preferred embodiment of the present invention, the transfer of the changes between the multiple users is done in parallel, although it may possibly be sequential. The transfer can be performed over a wired or wireless network. [0008]
  • In accordance with the present invention, there is also provided a system for synchronizing databases of multiple users. The system includes a plurality of computers in a peer-to-peer network wherein each computer has a database and software configured to provide synchronization. The software is configured to extract changes from the local database of each of the initiator's peers. The peers' changes are sent to the initiator in parallel as they finish being extracted. Each peer's changes are replicated into the initiator's database. Then all changes (including those received from the peers) are extracted from the initiator's database. Next, the software sends the changes in parallel to the other users of the peer-to-peer network. Finally, the changes are replicated by the software on each database of the other users in order to synchronize the databases. [0009]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • These as well as other features of the present invention will become more apparent upon reference to the drawings wherein: [0010]
  • FIG. 1 is a flowchart illustrating a method of unilateral database synchronization from a target computer to an initiating computer according to the present invention; [0011]
  • FIG. 2 is a diagram illustrating unilateral database replication from multiple target computers to the initiating computer; [0012]
  • FIG. 3 is a diagram illustrating unilateral database replication from the initiating computer to multiple target computers; [0013]
  • FIG. 4 illustrates the synchronization process on the initiating computer; [0014]
  • FIG. 5 is a diagram illustrating bilateral database replication between target computers and the initiating computer; [0015]
  • FIG. 6 is a diagram illustrating the selection of database replication techniques by a user; and [0016]
  • FIG. 7 is a flowchart illustrating a method of unilateral database synchronization from the initiating computer to the target computer. [0017]
  • DETAILED DESCRIPTION OF THE INVENTION
  • Referring now to the drawings wherein the showings are for purposes of illustrating a preferred embodiment of the present invention only, and not for purposes of limiting the same, FIG. 2 shows unilateral database replication between an initiating [0018] computer 10 and target computers 12 a, 12 b and 12 c according to the present invention. Both the initiating computer 10 and the target computers 12 a, 12 b, and 12 c are computing devices having a memory and capable of storing and processing information. For instance the computing devices may be PDA's (i.e., Personal Digital Assistants) which are in electronic communication with one another through a peer-to-peer network. The network may be a wireless network such as Bluetooth, or could be a wired network such as an Ethernet. In either case, the peer-to-peer network provides electronic communication between the initiating computer 10 and the target computers 12 without the use of a server.
  • The initiating (source) [0019] computer 10 is synchronized with the other computers 12 by the transfer of database information from the target computers 12 to the initiating computer 10. As seen in FIG. 2, each of the target computers 12 transfer information to the initiating computer 10 in the same manner. Accordingly, the description below will be for the transfer of database information from target computer 12 a to source computer 10, yet the process is identical for the transfers between target computers 12 b and 12 c to source computer 10. As will be further explained below, the processing and transfers may occur in parallel for each of the target computers 12 a, 12 b, and 12 c to the initiating computer 10.
  • The process for synchronizing the target computers [0020] 12 to the initiating computer 10 begins by the initiating computer 10 sending out a synchronization request to the target computers 12. The synchronization command informs the target computers that the initiating computer 10 wishes to synchronize databases with them. It will be recognized that any computer in the network may be the initiating computer such that it is possible for any computer to start the synchronization process. The term initiating computer designates the computer that wishes the synchronization process to begin.
  • Referring to FIGS. 1 and 2, in [0021] step 100, the target computer 12 a has a source database 14 a that is created in memory (i.e., hardrive, RAM, etc. . . . ). The source database 14 a contains information which is shared between the target computer 12 a and the other computing devices (i.e. computers 12 b, 12 c and 10). Next, in step 102, any changes to the source database 14 a are extracted to create a temporary extracted database 16 a containing at least all relevant changes to both the target computer 12 a and the initiating computer 10. The extracted database 16 a corresponds to the replica source 14 a stored on the target computer 12 a. All changes to the source database 14 a from a user-specified date and time, or from the last time a synchronization occurred, are extracted and copied to the extracted database 16 a. Accordingly, as seen in step 104, the extracted database 16 a is created by extracting and copying the changes to the source database 14 a. The extraction and copying is performed using the database API of the target computer 12 a if such an API is available. In the case where no such API is available, changes are tracked as data is written to each database and extracted by the synchronization system itself.
  • Next, the extracted [0022] database 16 a is compressed in step 106 to create a compressed database 18 a in step 108. The compressed database 18 a is created by using well known compression techniques on the extracted database 16 a. Once the compressed database 18 is created, then the extracted database 16 a is expunged in step 109.
  • Referring to step [0023] 110, the compressed database 18 a is transferred to the initiating computer 10. Specifically, the file of the compressed database 18 a is transferred to the initiating computer 10 in response to a request using any well known file transfer technique over any type of network, as previously described. Each of the target computers 12 will transfer information to the initiating computer 10 in parallel or in sequence when it is not possible to perform parallel communications. Typically, the compressed database 18 a is transferred to a temporary transferred database 20 a that is created on the initiating computer 10 in step 112. Once the transfer is complete, in step 113, the compressed database 18 a on the target computer 12 a is expunged.
  • Once the transferred [0024] database 20 a has been created on the initiating computer 10, the transferred database 20 a is synchronized with the source database 24 of the initiating computer 10. Specifically, in step 114 of FIG. 1, the transferred database 20 a is decompressed on the initiating computer 10, as seen in FIG. 4. The transferred database 20 a is decompressed using a complementary decompression technique to that of step 106. Accordingly, in step 116, a decompressed database 22 a is created on the initiating computer 10. Once the decompressed database 22 a is created, then the transferred database 20 a is expunged in step 115.
  • The decompressed [0025] database 22 a is then replicated with the source database 24 of the initiating computer 10 in step 118. This operation is performed using the database API of the initiating computer 10 if such an API is available. In the case where no such API is available, replication is performed by the synchronization system itself. The process of replication causes the changes copied in the extracted database 16 a to be incorporated into the source database 24 of the initiating computer 10. Once the decompressed database 22 a is replicated onto the source database 24, the updated source database 24 is created in step 120 which has the changes and is identical to the source database 14 a. Finally, the decompressed database 22 a is expunged in step 122.
  • Each time a target computer [0026] 12 sends changes to the initiating computer 10, the synchronization process previously described (i.e., transfer, compression, decompression and replication) are completed in full before another synchronization from another target computer 12 is processed.
  • The above-described procedure is operative to send changes from the target computers [0027] 12 to an initiating computer 10. This procedure typically occurs when an initializing user wishes to receive changes from the other computers. However, the procedure can also be used if the initializing user wishes to transfer changes to other computers. In that instance, changes from the database of the initiating computer 10 would be transferred to the other computers 12 a, 12 b, and 12 c.
  • Referring to FIG. 3, a diagram for the unilateral synchronization of multiple computers from the initiating [0028] computer 10 to target computers 12 is shown. Synchronization between the initiating computer 10 and target computers 12 occurs in parallel. Each target computer 12 has a transferred database, a decompressed database, and a target database that are created during the process of synchronization.
  • Referring to FIGS. 3 and 7, the process for synchronizing the target computers [0029] 12 to the initiating computer 10 is similar to the process of synchronization described in FIG. 1. For example, the process begins with the initiating computer 10 sending a synchronization request to the target computers 12 a, 12 b, and 12 c informing them that the initiating computer 10 wishes to send them changes to their databases. The synchronization process proceeds according to FIG. 7 such that changes in the source database 24 of the initiating computer 10 are extracted in step 702 to create an extracted database 26 in step 704. In step 706, the extracted database 26 is compressed to create a compressed database 28 in step 708. Once the compressed database 28 is created, the extracted database 26 is expunged in step 709. The compressed database 28 is transferred to the target computers 12 a, 12 b, and 12 c in parallel over the computer network.
  • Each of the [0030] target computers 12 a, 12 b, and 12 c receives the compressed database 28 and creates a respective transferred database 30 a, 30 b, and 30 c. For simplicity, the following description will be for target computer 12 a. However, it will be recognized that the following synchronization process occurs in any of the target computers (i.e., 12 b, and 12 c) synchronizing to the initiating computer 10. After the compressed database 28 is transferred and the transferred database 30 a is created on the target computer 12 a, then the compressed database 28 on the initiating computer 10 is expunged in step 713. In step 714, the compressed database 30 a on the target computer 12 a is decompressed to create a decompressed database 32 a in step 716. The transferred database 30 a is then expunged in step 715. The changes from the source database 24 are then replicated onto the database 14 a of target computer 12 a in step 718. In this regard, the database 14 a will be updated with the changes from initiating computer 10, as seen in step 720. Finally, the decompressed database 32 a is expunged from the target computer 12 a.
  • The above-described method is concurrently performed on each of the [0031] target computers 12 a, 12 b, and 12 c such that synchronization occurs simultaneously. Accordingly, the synchronization process of the present invention is a parallel method whereby each of the target computers 12 can synchronize with the initiating computer 10 quickly.
  • A bilateral database replication between an initiator and n peers consists of first n unilateral replications conducted in parallel to replicate all of the peers' changes into the initiator's database, followed by another n unilateral replications, again conducted in parallel, to replicate the accumulated changes from the initiator's database into the peers' local databases. Referring to FIG. 5, the initiating [0032] computer 10 receives changes from each of the target computers 12 in a sequential manner through the process described for FIG. 2. While in no defined order, each transfer and synchronization is completed before the next transfer and synchronization is started. For example, the synchronization process from target computer 12 a to the transferred database 20 a and synchronization to source database 24 will be completed before the next synchronization process from either target computer 12 b or 12 c. Once all of the target computers 12 have synchronized their changes to the source database 24, then the changes will be sent back to all of the target computers 12 in order to fully synchronize each target computer 12 to one another. Specifically, the source database 24 is now updated with the changes from each of the target computers 12. The initiating computer 10 will send all of its changes to the to the target computers 12 through a parallel manner as described for FIG. 3. The updated source database 24 is sent to each target computer 12 and each target computer 12 synchronizes the changes into it own database 14 in parallel. Accordingly, complete synchronization of all databases (i.e., initiating computer 10 and target computers 12) occurs in a two-stage process (bi-lateral exchange).
  • Even though the above-mentioned synchronization process for multiple computers has been described as being between an initiating and target computers, it will be recognized that any computer in the peer-to-peer network can begin the synchronization process. The computer that initiates the process will push and pull the transfer of files as needed. Furthermore, during multi-user synchronization, if any computer (other than the initiator) disappears from the network or cancels the process, the synchronization process can still proceed between the other computers. [0033]
  • Referring to FIG. 6, a flowchart showing possible synchronization processes is shown. As previously mentioned, either bilateral or unilateral synchronization between the initiating [0034] computer 10 and the target computers 12 can occur. The user determines the type of synchronization process in step 600 of FIG. 6. The user can send changes from the initiating computer as described for FIG. 3, receive and send changes as described for FIG. 5, or receive changes as described for FIG. 2. If the user decides to send changes only from the initiating computer 10 to target computers 12 (i.e., unilateral exchange), then in step 602, synchronization requests are sent from the initiating computer 10 to 1−n target computers 12. Next, each target computer 12 will respond to the request in step 604. Specifically, a target computer 12 can refuse the request such that synchronization does not occur. If the target computer 12 refuses, then in step 608, there is no further action with those target computers 12 which refuse synchronization. However, in step 610, target computers 12 which accept the synchronization request proceed to receive changes as previously described for FIG. 3.
  • If the user wishes to send and receive changes (i.e., indicating a bilateral exchange), then the initiating [0035] computer 10 will send the synchronization request to the 1−n target computers 12 as shown in step 612. Next, each of the target computers 12 will respond to the request by either refusing or accepting the request. If a target computer 12 refuses the request, then in step 618 no further action is taken with that target computer 12. However, if the target computer 12 accepts the request, then the bilateral synchronization process shown in FIG. 5 commences and the target computer 12 will begin sending changes to the initiating computer 10 and then proceed to receive all changes therefrom, as shown in step 620.
  • Referring to FIG. 6, if the user wishes just to receive changes only (i.e., unilateral exchange), then the initiating [0036] computer 10 will send the synchronization request to the target computers 12 in step 622. Next, the target computers 12 will respond in step 624. If a target computer 12 refuses to send changes to the initiating computer 10, then no further action will occur, as shown in step 626. However, if the target computer 12 agrees to the synchronization process, then in step 628, the changes are sent to the initiating computer as described for FIG. 2.
  • Additional modifications and improvements of the present invention may also be apparent to those of ordinary skill in the art. Thus, the particular combination of parts described and illustrated herein is intended to represent only a certain embodiment of the present invention, and not intended to serve as a limitation of alternative devices within the spirit and scope of the invention. [0037]

Claims (24)

1. A method for peer-to-peer database synchronization between a first computer and a second computer, the method comprising the steps of:
a) extracting changes from a source database of the first computer to generate an extracted database;
b) transferring the extracted database from the first computer to the second computer; and
c) replicating the source database on a target database of the second computer from the extracted database in order to synchronize the target database with the source database.
2. The method of claim 1 further comprising the steps of:
1) compressing the extracted database to generate a compressed extracted database subsequent to step (a); and
2) decompressing the compressed extracted database on the second computer to generate a decompressed extracted database subsequent to step (b).
3. The method of claim 2 further comprising the step of expunging the extracted database from the first computer after the compressed extracted database is generated.
4. The method of claim 2 further comprising the step of expunging the compressed extracted database from the first computer after the transferring from the first computer to the second computer.
5. The method of claim 2 further comprising the step of expunging the extracted database on the second computer after the decompressed database has been generated.
6. The method of claim 2 further comprising the step of expunging the decompressed database on the second computer after it has been replicated on the target database.
7. The method of claim 2 wherein in step (b) the compressed extracted database is transferred over a peer-to-peer network between the first computer and the second computer.
8. The method of claim 7 wherein the peer-to-peer network is a wireless network.
9. The method of claim 7 wherein the peer-to-peer network is a wired network.
10. The method of claim 2 wherein in step (2) the compressed extracted database is decompressed in a manner complementary to the compression of step (1).
11. The method of claim 1 further comprising the steps of:
d) extracting changes from the target database of the target computer to generate an extracted target database;
e) transferring the extracted target database from the second computer to the first computer; and
f) replicating the target database on the source database of the first computer from the extracted target database in order to synchronize the source database with the target database.
12. The method of claim 11 further comprising the steps of:
1) compressing the extracted target database to generate a compressed extracted target database subsequent to step (d); and
2) decompressing the compressed extracted target database on the first computer to generate a decompressed target database subsequent to step (e).
13. A method for synchronizing a database of a first computer with a database of a second computer, the method comprising the steps of extracting changes from the database of the first computer, transferring the changes to the second computer and replicating the changes on the database of the second computer such that the databases on the first computer and the second computer are synchronized.
14. The method of claim 13 further comprising the step of compressing the changes prior to transferring from the first computer to the second computer.
15. The method of claim 13 wherein the changes are transferred over a peer-to-peer network.
16. The method of claim 15 wherein the peer-to-peer network is a wireless network.
17. The method of claim 15 wherein the peer-to-peer network is a wired network.
18. A method for synchronizing databases of multiple users in a peer-to-peer network wherein one of the users is designated an initiating user, the method comprising the steps of:
a) extracting changes from a respective database of each of the users;
b) sending the changes from each of the users to the initiating user;
c) replicating the changes from each of the users onto the database of the initiating user;
d) sending the changes on the database of the initiating user to each of the other users; and
e) replicating the changes on a respective database of each user in order to synchronize the databases of all of the users.
19. The method of claim 18 further comprising compressing the changes prior to sending them and decompressing the changes after being received.
20. The method of claim 18 wherein:
step (a) further comprises creating a transferred database from the changes to each respective database of the users;
step (b) further comprises compressing and sending the transferred database as the changes to the initiating user; and
step (c) further comprises decompressing the transferred database in order to replicate the changes to the database of the initiating user.
21. The method of claim 18 wherein:
step (d) further comprises creating a transferred database from the changes to the database of the initiating user and then compressing and sending the transferred database as the changes to each of the databases of each of the users; and
step (e) further comprises decompressing the transferred database by each of the users in order to replicate the changes of all the users on each of the user's databases.
22. The method of claim 18 wherein in step (d) the changes are transferred in parallel to each of the users.
23. A system for synchronizing databases of multiple users in a peer-to-peer network, the system comprising:
a plurality of computers in a peer-to-peer network, wherein one of the computers is designated an initiating computer, each computer having a database and software configured to:
a) extract changes from a source database of each computer of the users;
b) send changes from each of the user's computers in the peer-to-peer network to the initiating computer; and
c) replicate the changes from each of the databases of the user's computers onto the database of the initiating computer;
d) extract all of the changes from the database of the initiating computer;
e) send the changes to each of the user's computers in the peer-to-peer network; and
f) replicate the changes on a respective database of each of the users in order to synchronize all databases.
24. The system of claim 23 wherein the software is configured to send the changes to the other users in parallel.
US10/090,613 2002-03-06 2002-03-06 Synchronous peer-to-peer multipoint database synchronization Abandoned US20030172070A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/090,613 US20030172070A1 (en) 2002-03-06 2002-03-06 Synchronous peer-to-peer multipoint database synchronization
US11/196,567 US7366743B2 (en) 2002-03-06 2005-08-02 Synchronous peer-to-peer multipoint database synchronization
US12/077,887 US7966285B2 (en) 2002-03-06 2008-03-19 Synchronous peer-to-peer multipoint database synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/090,613 US20030172070A1 (en) 2002-03-06 2002-03-06 Synchronous peer-to-peer multipoint database synchronization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/196,567 Continuation US7366743B2 (en) 2002-03-06 2005-08-02 Synchronous peer-to-peer multipoint database synchronization

Publications (1)

Publication Number Publication Date
US20030172070A1 true US20030172070A1 (en) 2003-09-11

Family

ID=29547960

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/090,613 Abandoned US20030172070A1 (en) 2002-03-06 2002-03-06 Synchronous peer-to-peer multipoint database synchronization
US11/196,567 Expired - Lifetime US7366743B2 (en) 2002-03-06 2005-08-02 Synchronous peer-to-peer multipoint database synchronization
US12/077,887 Expired - Lifetime US7966285B2 (en) 2002-03-06 2008-03-19 Synchronous peer-to-peer multipoint database synchronization

Family Applications After (2)

Application Number Title Priority Date Filing Date
US11/196,567 Expired - Lifetime US7366743B2 (en) 2002-03-06 2005-08-02 Synchronous peer-to-peer multipoint database synchronization
US12/077,887 Expired - Lifetime US7966285B2 (en) 2002-03-06 2008-03-19 Synchronous peer-to-peer multipoint database synchronization

Country Status (1)

Country Link
US (3) US20030172070A1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148302A1 (en) * 2003-01-24 2004-07-29 Mckay Christopher W T Compressed data structure for extracted changes to a database and method of generating the data structure
US20040172423A1 (en) * 2003-02-28 2004-09-02 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US20040254946A1 (en) * 2003-06-13 2004-12-16 Masayuki Yachi Data management system
US20060136512A1 (en) * 2004-12-20 2006-06-22 International Business Machines Corporation Method and system for replicating data between a community of distributed entities
US20060149794A1 (en) * 2004-12-10 2006-07-06 Seven Networks International Oy Database synchronization
WO2006070071A1 (en) * 2004-12-29 2006-07-06 Seven Networks International Oy Database synchronization via a mobile network
US20070136306A1 (en) * 2005-12-14 2007-06-14 International Business Machines Corporation Distributed method for synchronizing and updating bookmarks on multiple computer devices
US20070136305A1 (en) * 2005-12-14 2007-06-14 International Business Machines Corporation Method for synchronizing and updating bookmarks on multiple computer devices
US20070171881A1 (en) * 2004-11-05 2007-07-26 Tao Zhang Autonomous and heterogeneous network discovery and reuse
US20070179993A1 (en) * 2006-01-13 2007-08-02 Tekelec Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database
US20080165807A1 (en) * 2007-01-05 2008-07-10 Apple Computer, Inc. Wide Area Peer-to-Peer Synching in a Decentralized Environment
US20080189440A1 (en) * 2007-02-02 2008-08-07 Palm, Inc. Multi-way, Peer-to-Peer Synchronization
US20090083341A1 (en) * 2007-09-21 2009-03-26 International Business Machines Corporation Ensuring that the archival data deleted in relational source table is already stored in relational target table
US20090083337A1 (en) * 2007-09-21 2009-03-26 International Business Machines Corporation Performing synchronization among relational database tables with minimal contention
WO2016141094A1 (en) * 2015-03-03 2016-09-09 Overland Storage, Inc. Parallel asynchronous data replication
CN111444278A (en) * 2020-04-01 2020-07-24 Oppo(重庆)智能科技有限公司 Data synchronization method and device and transfer server

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688780B2 (en) * 2005-09-30 2014-04-01 Rockwell Automation Technologies, Inc. Peer-to-peer exchange of data resources in a control system
US7958322B2 (en) * 2005-10-25 2011-06-07 Waratek Pty Ltd Multiple machine architecture with overhead reduction
US7827138B2 (en) 2006-10-02 2010-11-02 Salesforce.Com, Inc. Method and system for synchronizing a server and an on-demand database service
US7805403B2 (en) 2007-01-07 2010-09-28 Apple Inc. Synchronization methods and systems
US7788360B2 (en) * 2007-09-10 2010-08-31 Routesync, Llc Configurable distributed information sharing system
US9009098B1 (en) * 2008-06-30 2015-04-14 Emc Corporation Methods and apparatus for creating a centralized data store
US20100293143A1 (en) * 2009-05-13 2010-11-18 Microsoft Corporation Initialization of database for synchronization
US9026493B1 (en) * 2011-02-28 2015-05-05 Google Inc. Multi-master RDBMS improvements for distributed computing environment
JP5853819B2 (en) * 2012-03-29 2016-02-09 富士通株式会社 Control program, control method, storage control device, and information processing system
US9350803B2 (en) * 2012-09-13 2016-05-24 Tencent Technology (Shenzhen) Company Limited Information management method and device
US9390120B1 (en) 2013-12-31 2016-07-12 Google Inc. System and methods for organizing hierarchical database replication
CN104978313A (en) * 2014-04-01 2015-10-14 中兴通讯股份有限公司 Data synchronization method and apparatus for database system, and server
KR101670343B1 (en) 2014-05-05 2016-10-28 후아웨이 테크놀러지 컴퍼니 리미티드 Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching
US10671324B2 (en) * 2018-01-23 2020-06-02 Vmware, Inc. Locating grains in storage using grain table to grain-range table compression
WO2023244878A1 (en) * 2022-06-14 2023-12-21 My Medical Hub Corporation Integrated, ai-enabled value-based care measurement and objective risk assessment clinical and financial management system

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261094A (en) * 1991-04-08 1993-11-09 International Business Machines Corporation Asynchronous replication of data changes by distributed update requests
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5706431A (en) * 1995-12-29 1998-01-06 At&T System and method for distributively propagating revisions through a communications network
US5737601A (en) * 1993-09-24 1998-04-07 Oracle Corporation Method and apparatus for peer-to-peer data replication including handling exceptional occurrences
US5870765A (en) * 1996-10-09 1999-02-09 Oracle Corporation Database synchronizer
US5926816A (en) * 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
US5970502A (en) * 1996-04-23 1999-10-19 Nortel Networks Corporation Method and apparatus for synchronizing multiple copies of a database
US6009427A (en) * 1996-08-02 1999-12-28 Hewlett Packard Company Method and apparatus for distributed control of a database
US6081806A (en) * 1998-01-15 2000-06-27 Inventec Corporation Computer database synchronization method
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6226650B1 (en) * 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US6230164B1 (en) * 1997-05-09 2001-05-08 Alcatel Usa Sourcing, L.P. Communication system with rapid database synchronization
US6234715B1 (en) * 1998-08-12 2001-05-22 Taisaburo Ono Underwater truss structure
US6243717B1 (en) * 1998-09-01 2001-06-05 Camstar Systems, Inc. System and method for implementing revision management of linked data entities and user dependent terminology
US6253213B1 (en) * 1999-02-22 2001-06-26 International Business Machines Corporation Method and system for automatically maintaining data consistency across various databases
US6301477B1 (en) * 1998-04-02 2001-10-09 Lucent Technologies Inc. Method for creating and modifying similar and dissimilar databases for use in GSM wireless network configurations for telecommunication systems
US6304881B1 (en) * 1998-03-03 2001-10-16 Pumatech, Inc. Remote data access and synchronization
US6311187B1 (en) * 1998-12-29 2001-10-30 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured data under a push model
US6324693B1 (en) * 1997-03-12 2001-11-27 Siebel Systems, Inc. Method of synchronizing independently distributed software and database schema
US6330568B1 (en) * 1996-11-13 2001-12-11 Pumatech, Inc. Synchronization of databases
US6374262B1 (en) * 1998-03-25 2002-04-16 Fujitsu Limited Relational database synchronization method and a recording medium storing a program therefore
US20020073109A1 (en) * 2000-12-13 2002-06-13 Nec Corporation Database synchronization system and method
US20020147774A1 (en) * 2001-04-02 2002-10-10 Akamai Technologies, Inc. Content storage and replication in a managed internet content storage environment
US20030084361A1 (en) * 2001-11-01 2003-05-01 Microsoft Corporation System and method for replicating data in a distributed system
US6704737B1 (en) * 1999-10-18 2004-03-09 Fisher-Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724556A (en) * 1995-04-14 1998-03-03 Oracle Corporation Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system
US5758150A (en) * 1995-10-06 1998-05-26 Tele-Communications, Inc. System and method for database synchronization
US5758355A (en) * 1996-08-07 1998-05-26 Aurum Software, Inc. Synchronization of server database with client database using distribution tables
US5781912A (en) * 1996-12-19 1998-07-14 Oracle Corporation Recoverable data replication between source site and destination site without distributed transactions
US5937414A (en) * 1997-02-28 1999-08-10 Oracle Corporation Method and apparatus for providing database system replication in a mixed propagation environment
US5884328A (en) * 1997-08-29 1999-03-16 Tandem Computers, Inc. System and method for sychronizing a large database and its replica
US6732111B2 (en) * 1998-03-03 2004-05-04 Siebel Systems, Inc. Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
US6532479B2 (en) * 1998-05-28 2003-03-11 Oracle Corp. Data replication for front office automation
US7818285B1 (en) * 2000-01-10 2010-10-19 Fedex Office And Print Services, Inc. System and method of using a sales management system to generate printed products
US6526417B1 (en) * 2000-01-25 2003-02-25 International Business Machines Corporation System and method for change accumulation unmerged update reduction
US6925476B1 (en) * 2000-08-17 2005-08-02 Fusionone, Inc. Updating application data including adding first change log to aggreagate change log comprising summary of changes
US6691139B2 (en) * 2001-01-31 2004-02-10 Hewlett-Packard Development Co., Ltd. Recreation of archives at a disaster recovery site
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US6662196B2 (en) * 2001-03-16 2003-12-09 Iti, Inc. Collision avoidance in bidirectional database replication
US7526575B2 (en) * 2001-09-28 2009-04-28 Siebel Systems, Inc. Method and system for client-based operations in server synchronization with a computing device
US6980988B1 (en) * 2001-10-01 2005-12-27 Oracle International Corporation Method of applying changes to a standby database system
US6892207B2 (en) * 2003-01-24 2005-05-10 Hewlett-Packard Development Company, L.P. Method of updating data in a compressed data structure
US7552123B2 (en) * 2003-08-13 2009-06-23 At&T Intellectual Property I, L.P. Methods, systems and computer program products for synchronizing records in billing and service databases
US7433885B2 (en) * 2003-12-15 2008-10-07 Quantum Matrix Holdings, Llc System and method for multi-dimensional organization, management, and manipulation of data

Patent Citations (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261094A (en) * 1991-04-08 1993-11-09 International Business Machines Corporation Asynchronous replication of data changes by distributed update requests
US5737601A (en) * 1993-09-24 1998-04-07 Oracle Corporation Method and apparatus for peer-to-peer data replication including handling exceptional occurrences
US5806075A (en) * 1993-09-24 1998-09-08 Oracle Corporation Method and apparatus for peer-to-peer data replication
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US20010014893A1 (en) * 1995-01-11 2001-08-16 David J. Boothby Synchronization of disparate databases
US5706431A (en) * 1995-12-29 1998-01-06 At&T System and method for distributively propagating revisions through a communications network
US5970502A (en) * 1996-04-23 1999-10-19 Nortel Networks Corporation Method and apparatus for synchronizing multiple copies of a database
US6009427A (en) * 1996-08-02 1999-12-28 Hewlett Packard Company Method and apparatus for distributed control of a database
US5926816A (en) * 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
US5870765A (en) * 1996-10-09 1999-02-09 Oracle Corporation Database synchronizer
US6330568B1 (en) * 1996-11-13 2001-12-11 Pumatech, Inc. Synchronization of databases
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6324693B1 (en) * 1997-03-12 2001-11-27 Siebel Systems, Inc. Method of synchronizing independently distributed software and database schema
US6230164B1 (en) * 1997-05-09 2001-05-08 Alcatel Usa Sourcing, L.P. Communication system with rapid database synchronization
US6081806A (en) * 1998-01-15 2000-06-27 Inventec Corporation Computer database synchronization method
US6304881B1 (en) * 1998-03-03 2001-10-16 Pumatech, Inc. Remote data access and synchronization
US6374262B1 (en) * 1998-03-25 2002-04-16 Fujitsu Limited Relational database synchronization method and a recording medium storing a program therefore
US6301477B1 (en) * 1998-04-02 2001-10-09 Lucent Technologies Inc. Method for creating and modifying similar and dissimilar databases for use in GSM wireless network configurations for telecommunication systems
US6234715B1 (en) * 1998-08-12 2001-05-22 Taisaburo Ono Underwater truss structure
US6243717B1 (en) * 1998-09-01 2001-06-05 Camstar Systems, Inc. System and method for implementing revision management of linked data entities and user dependent terminology
US6226650B1 (en) * 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US6311187B1 (en) * 1998-12-29 2001-10-30 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured data under a push model
US6253213B1 (en) * 1999-02-22 2001-06-26 International Business Machines Corporation Method and system for automatically maintaining data consistency across various databases
US6704737B1 (en) * 1999-10-18 2004-03-09 Fisher-Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system
US20020073109A1 (en) * 2000-12-13 2002-06-13 Nec Corporation Database synchronization system and method
US20020147774A1 (en) * 2001-04-02 2002-10-10 Akamai Technologies, Inc. Content storage and replication in a managed internet content storage environment
US20030084361A1 (en) * 2001-11-01 2003-05-01 Microsoft Corporation System and method for replicating data in a distributed system

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148302A1 (en) * 2003-01-24 2004-07-29 Mckay Christopher W T Compressed data structure for extracted changes to a database and method of generating the data structure
US7904432B2 (en) * 2003-01-24 2011-03-08 Hewlett-Packard Development Company, L.P. Compressed data structure for extracted changes to a database and method of generating the data structure
US20040172423A1 (en) * 2003-02-28 2004-09-02 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US7743022B2 (en) * 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US20040254946A1 (en) * 2003-06-13 2004-12-16 Masayuki Yachi Data management system
US7693846B2 (en) * 2003-06-13 2010-04-06 Sony Corporation Data management system and method for data synchronization
US20070171881A1 (en) * 2004-11-05 2007-07-26 Tao Zhang Autonomous and heterogeneous network discovery and reuse
US7768982B2 (en) * 2004-11-05 2010-08-03 Toshiba America Research, Inc. Autonomous and heterogeneous network discovery and reuse
US9298792B2 (en) 2004-12-10 2016-03-29 Seven Networks, Llc Database synchronization
US20060149794A1 (en) * 2004-12-10 2006-07-06 Seven Networks International Oy Database synchronization
US20060136512A1 (en) * 2004-12-20 2006-06-22 International Business Machines Corporation Method and system for replicating data between a community of distributed entities
US8620858B2 (en) 2004-12-29 2013-12-31 Seven Networks International Oy Database synchronization via a mobile network
EP1846843A4 (en) * 2004-12-29 2008-02-20 Seven Networks Internat Oy Database synchronization via a mobile network
US10089376B2 (en) 2004-12-29 2018-10-02 Seven Networks, Llc Database synchronization via a mobile network
EP1846843A1 (en) * 2004-12-29 2007-10-24 Seven Networks International Oy Database synchronization via a mobile network
US20060184591A1 (en) * 2004-12-29 2006-08-17 Seven Networks International Oy Database synchronization via a mobile network
WO2006070071A1 (en) * 2004-12-29 2006-07-06 Seven Networks International Oy Database synchronization via a mobile network
US8001077B2 (en) * 2005-12-14 2011-08-16 International Business Machines Corporation Distributed method for synchronizing and updating bookmarks on multiple computer devices
US20070136305A1 (en) * 2005-12-14 2007-06-14 International Business Machines Corporation Method for synchronizing and updating bookmarks on multiple computer devices
US7711707B2 (en) * 2005-12-14 2010-05-04 International Business Machines Corporation Method for synchronizing and updating bookmarks on multiple computer devices
US20070136306A1 (en) * 2005-12-14 2007-06-14 International Business Machines Corporation Distributed method for synchronizing and updating bookmarks on multiple computer devices
US20070179993A1 (en) * 2006-01-13 2007-08-02 Tekelec Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database
US7650367B2 (en) * 2006-01-13 2010-01-19 Tekelec Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database
US20100299444A1 (en) * 2007-01-05 2010-11-25 Apple Inc. Wide Area Peer-to-Peer Synching in a Decentralized Environment
US7760767B2 (en) * 2007-01-05 2010-07-20 Apple Inc. Wide area peer-to-peer synching in a decentralized environment
US20080165807A1 (en) * 2007-01-05 2008-07-10 Apple Computer, Inc. Wide Area Peer-to-Peer Synching in a Decentralized Environment
US20110004584A1 (en) * 2007-02-02 2011-01-06 Palm, Inc. Multi-way, Peer-to-Peer Synchronization
US7738503B2 (en) * 2007-02-02 2010-06-15 Palm, Inc. Multi-way, peer-to-peer synchronization
US20080189440A1 (en) * 2007-02-02 2008-08-07 Palm, Inc. Multi-way, Peer-to-Peer Synchronization
US20090083337A1 (en) * 2007-09-21 2009-03-26 International Business Machines Corporation Performing synchronization among relational database tables with minimal contention
US8572027B2 (en) * 2007-09-21 2013-10-29 International Business Machines Corporation Performing synchronization among relational database tables with minimal contention
US20090083341A1 (en) * 2007-09-21 2009-03-26 International Business Machines Corporation Ensuring that the archival data deleted in relational source table is already stored in relational target table
US8788457B2 (en) * 2007-09-21 2014-07-22 International Business Machines Corporation Ensuring that the archival data deleted in relational source table is already stored in relational target table
WO2016141094A1 (en) * 2015-03-03 2016-09-09 Overland Storage, Inc. Parallel asynchronous data replication
CN111444278A (en) * 2020-04-01 2020-07-24 Oppo(重庆)智能科技有限公司 Data synchronization method and device and transfer server

Also Published As

Publication number Publication date
US20080243944A1 (en) 2008-10-02
US20060015546A1 (en) 2006-01-19
US7366743B2 (en) 2008-04-29
US7966285B2 (en) 2011-06-21

Similar Documents

Publication Publication Date Title
US7366743B2 (en) Synchronous peer-to-peer multipoint database synchronization
US6317754B1 (en) System for user control of version /Synchronization in mobile computing
EP2086204B1 (en) Method and system for data synchronisation between network devices
US9317506B2 (en) Accelerated data transfer using common prior data segments
US7865469B2 (en) Method and system for supporting off-line mode of operation and synchronization
US6202085B1 (en) System and method for incremental change synchronization between multiple copies of data
EP1589722B1 (en) Method, system, and apparatus for enabling near real time collaboration on an electronic document
US20020116467A1 (en) Method and apparatus for synchronizing an email client on a portable computer system with an email client on a desktop computer
EP0926608A3 (en) Distributed persistent storage for intermittently connected clients
US20020059299A1 (en) System and method for synchronizing databases
CA2646821A1 (en) Filtered replication of data stores
CN107025242A (en) The clone method and device of data between database
WO2000048096A9 (en) A database system having at least two host databases and a remote database, and a method of synchronizing such databases
CN105518641B (en) Point-to-Point Data clone method, equipment and system and host node switching method, equipment and system
US20220035786A1 (en) Distributed database management system with dynamically split b-tree indexes
JPH05204739A (en) System for synchronizing overlapped distributed data bases
US20070174315A1 (en) Compressing state in database replication
CN109614398A (en) The variation and device of table structure in database
US20080162501A1 (en) Method and apparatus for memory management in an electronic device
AU2019380380B2 (en) Taking snapshots of blockchain data
JP2002007441A (en) Distributed data base system
US20230125637A1 (en) Enhanced co-authoring and file syncing
KR101748912B1 (en) Data storage system in distributed storage environment and cluster management method for upgrading, scaling out and scaling in cluster include in the data storage system
CA2590025C (en) Method and apparatus for synchronizing of databases
CN116521444A (en) Cloud side system data management system and cloud side high availability realization method

Legal Events

Date Code Title Description
AS Assignment

Owner name: COLLIGO NETWORKS, INC., CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAWADSKY, NICHOLAS JUSTIN;SHI, DANIEL (YILIN);BLOCK, ANDREW EDWARD;AND OTHERS;REEL/FRAME:012671/0212

Effective date: 20020225

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION