WO2001090933A1 - Synchronisation of databases - Google Patents
Synchronisation of databases Download PDFInfo
- Publication number
- WO2001090933A1 WO2001090933A1 PCT/EP2001/005869 EP0105869W WO0190933A1 WO 2001090933 A1 WO2001090933 A1 WO 2001090933A1 EP 0105869 W EP0105869 W EP 0105869W WO 0190933 A1 WO0190933 A1 WO 0190933A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- synchronisation
- client
- record
- database
- engine
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Definitions
- the invention relates to synchronisation of data across multiple databases even if the databases have different structures.
- a contact record in a mobile phone database should contain the same data as a record in an email system contact database of the user and referring to the same contact.
- the invention is therefore directed towards providing an improved synchronisation system and method.
- a synchronisation system comprising a synchronisation engine comprising means for communication with a plurality of client databases and for updating the client databases with current data received by a client database, characterised in that,
- the synchronisation engine comprises means for performing a synchronisation session in which all client databases (DBA-DBD) are updated with current data.
- DBA-DBD client databases
- said engine comprises means for maintaining a synchronisation table storing an identifier and a change indicator for each record of each client database, for comparing the stored change indicators with those read from the client databases during a synchronisation session, and for maintaining the table in a persistent manner between synchronisation sessions.
- system comprises a client interface associated with each client database, each client interface comprising means for providing a universal format for transfer of data to and from the engine independently of the client database format.
- the synchronisation engine comprises means for prompting user input of instructions if a conflict arises in which a record has changed in more than one client database.
- the engine comprises means for determining that there is a conflict if there are differences between records at the field level.
- the engine comprises means for outputting representations of the conflicting fields in a universal format.
- the engine comprises means for adding or deleting databases as clients by adding or deleting corresponding datasets such as columns in the synchronisation table.
- the engine comprises means for maintaining a master database of current data.
- the engine comprises means for using the master database as a client database when a client database is temporarily unavailable.
- the engine comprises means for temporarily masking a dataset for a temporarily unavailable client database. In another embodiment, the engine comprises means for maintaining a status indicator in the synchronisation table to indicate availability status of a corresponding client database.
- the status values include uncreated, unsynchronised, synchronised, and null.
- a client interface comprises means for maintaining an intermediate database of true values for truncated values in the associated client database.
- a client interface comprises means for maintaining a persistent database to allow transformation to provide a universal format to the engine.
- a client interface comprises means for maintaining a personalisation table containing a master identifier, a native identifier, an updated flag for every associated record, and a current record identifier list, and the client interface comprises means for using said data to maintain a client database having a subset of the records of other client databases.
- the invention provides a method for synchronising a plurality of client databases in a single synchronisation session, the method comprising the steps of:
- Fig. 1 is a schematic representation of a number of databases interconnected for synchronisation
- Fig. 2 is a generalised diagram illustrating the architecture
- Fig. 3 is a schematic representation of a synchronisation table generated during a synchronisation process
- Figs. 4(a) and 4(b) are together a flow diagram of synchronisation
- Figs. 5 and 6 are sample tables indicating system states
- Fig. 7 is a sample conflict resolution dialog
- Fig. 8 is a set of sample records and corresponding entries in a synchronisation table
- Fig. 9 is a representation of sync, table columns to handle disconnected clients
- Fig. 10 is a representation of handling of truncated fields
- Fig. 11 is a logical view of a transformation operation
- Fig. 12 is a representation of personalisation components.
- a user's PC 1 is programmed to perform a process to synchronise a database 2 on the PC 1, a database 3 in a server 4, an Internet database 5, and a database 6 of a mobile phone 7.
- a synchronisation system comprising:
- client a client interface
- client 11 associated with each application A, B, C, and D having an associated API and a database DBA, DBB, DBC, and DBD respectively.
- the basic architecture is in the form of a hub with the engine 10 in the centre and a client 11 for each database.
- the engine 10 generates a synchronisation table 20, as shown in Fig. 3.
- This table has a row for each item (such as a contact) and two columns for each database.
- the two columns contain for each item a unique identifier (UID) and a change indicator (CI).
- UID unique identifier
- CI change indicator
- the CI is the "last modified timestamp" where available, and if not available a Cyclic Redundancy Check (CRC) may be generated directly from the data having a high probability of detecting that a record has changed.
- CRC Cyclic Redundancy Check
- the synchronisation table contains the UIDs and the CIs for all synchronised records in all of the configured client databases (synchronisation points).
- Each column in the synchronisation table corresponds to all of the synchronised records for one of the databases.
- Each row in the synchronisation table corresponds to a record that is linked by synchronisation between data stores.
- the synchronisation table is persistent, i.e. its state is saved between synchronisation sessions.
- the engine 10 is an independent engine that provides all of the synchronisation processing, including duplicate handling, conflict resolution, and overall control of the synchronisation process. It invokes the individual clients 11, and requests from them data about the current state of their devices/applications and instructs them to write back information to the device/applications. It provides a generalised interface for each different device or application. The engine 10 is responsible for maintaining the synchronisation data.
- Each client 11 is aware of the format and API offered by the associated application and handles all communication with it. Each client 11 isolates the engine 10 from the specific detail of how information is stored in the applications. The clients 11 also provide:
- the APIs are conventional APIs for third party access to content.
- the synchronisation process uses these APIs to read and write information to the databases in their own proprietary formats.
- the interface between the engine 10 and the clients 11 defines a common and consistent universal format containing all of the fields required for synchronisation.
- the engine 10 stores a master database of all synchronised data in the universal format.
- the synchronisation process uses the CI value from the clients 11 to determine (by checking with the synchronisation table) if there is an edit conflict. Resolving the conflict involves writing to the universal (or master) database the value from the database having the most recent update as indicated by the CI. If more than one database has an updated CI then user input may be required. Where a new record is detected the engine 10 creates a new row in the sync, table. If the "new" record is a duplicate the engine 10 makes a link to an existing record after searching key fields and possibly with user input. Any conflict with the new record is resolved as described above, again possibly with user input.
- a conflict can also occur if there is a new record in one of the applications, which is being synchronised for the first time, that has been identified to be duplicate of one that already exists in the synchronised record set (by using the key fields to identify the duplicate).
- the non-key fields i.e. those which were not used to identify a new contact as an existing one
- the engine 10 retrieves all of the edited records and new records from all the applications in the universal record format via the clients 11. Having all records available in the universal format allows field-level conflicts to be detected consistently:
- the edited universal record representations are compared field-by-field to determine which fields of the record are in conflict. If there are fields in conflict, the conflicting fields are identified to the user, via a user interface so that they are able to identify the correct data, in other words, resolve the conflict. If no conflicting fields are found, because each of the changed fields in each of the conflicting records were changed to the same new value(s), then there is no conflict to resolve even though the records are in conflict. In this latter case, the solution is intelligent enough to proceed without the need for user intervention.
- Fig. 5 illustrates the state of the system after the last synchronisation
- Fig. 6 illustrates the state of the system prior to the next synchronisation when the same record has been edited in both applications.
- the column marked K is the user's key field for the record (i.e. what they would typically use to identify the record; in the case of a contact database this might be the contact's full name).
- the synchronisation table indicates that the two records in the separate applications represent the same information. Comparison of the change indicators (CI) for each application in the row of the synchronisation table with the values stored in the application indicate that the record has changed in both applications. Field by field comparison indicates that there are two fields in conflict, namely the first and the forth fields.
- the user In order for the user to be able to resolve the conflicting fields of the records, the user must be presented with the information in universal record format from each of the conflicting records, which have been collated during the conflict-detection phase.
- the user interface for the conflict resolution consists of a PC-based dialogue displaying a table view whose columns correspond to the fields of the universal record.
- the header of the table identifies the content of each column.
- the first column of the table identifies for each row of the table where the rows data is derived from.
- the top row of the table view displays the resultant resolved record. This record does not directly correspond to any real record in a database; it is the 'working' record, which the user is resolving.
- the rows in the conflict resolution table view of Fig. 7 show the universal record representation from each of the applications for the conflicting records. There must always be at least two additional rows displayed, since these rows correspond to the conflicting records.
- the columns of the table view are re-ordered, so that the fields that are in conflict are displayed on the far left of the table.
- the conflicting fields are highlighted in bold to distinguish them from the non-conflicting fields. This quickly draws the attention of the user to the fields which are in conflict, so that they may resolved with the minimum difficulty.
- the user chooses the most up-to-date fields from the conflicting options, by clicking directly on the field value required in the table view. This causes the field value in the resolved record (displayed in the top row) to be updated to this last selected value .
- a new column is added to the sync, table.
- the entries of the new column are initialised to have a synchronisation state of 'unsynchronised'.
- this 'unsynchronised' state triggers the engine 10 to synchronise all the entries in the master database with the newly configured data store.
- a client is removed, a column is removed from the table. This has no further effect on the synchronisation process, apart from reducing the number of client databases to be synchronised by one.
- the invention also handles the situation where one of the clients is temporarily unavailable.
- the synchronisation table also contains a status field in the table, which is used by the engine 10 to determine the required action to take, as shown in Fig. 9.
- the status table entry may take on one of the following values: UNCREATED, UNSYNCED, SYNCED, or NULL.
- the engine logic decides to propagate the delete across all clients 11. For all successful deletes, the corresponding synchronisation table entry status is set to NULL. If one of the clients 11 is disconnected at the point the record delete request is made, the delete fails, and the status is set to UNSYNCED. Because the synchronisation table row is not removed from the table until all entries' status is NULL (indicating successful deletions), the engine is able to re-try the deletion.
- the NULL status is also used as part of a personalisation solution; if a table entry's status for an external client 11 is NULL, and the status for the corresponding entry in the column for the master database is non-NULL, then the entry for the external client 11 represents a record that is excluded from the personalisation set.
- This technique for handling disconnected clients is equally applicable to the case where the database is physically unavailable, or where the user has elected to omit a given database from the synchronisation.
- the invention provides the ability for the user to control, at synchronisation time, the database (clients) that will be synchronised. It also provides the ability to complete simultaneous multi-point synchronisation across a set of applications when one or more are not available to participate in the synchronisation. On the next time an application re-joins the synchronisation process, to be able to pickup "pending changes" from previous synchronisation sessions.
- the aim is to ensure each participating database maintains as faithful a copy of the information stored in each other database as possible.
- this may involve some transformation in the format of the data.
- There may also be limits on the faithfulness of the data representation imposed by the size limitations of the storage structures in the different datastores.
- the size limitation imposed by different databases do not practically affect the synchronisation as the fields are usually sized to cater for the majority of data that a user might use. Even if there is some truncation this usually occurs in a sufficiently small amount of cases to have negligible affect.
- OutlookTM record Using standard record-level synchronisation, the OutlookTM record would then become
- a client 11 maintains a persistent Intermediate Datastore to store a copy of the original universal record (or at least a copy of all the fields that could be subject to truncation) and its corresponding truncated data. This enables the client to detect changes to the truncated data in the application datastore by comparing the truncated data currently in the application datastore with the truncated data that was stored in the Intermediate Datastore.
- the synchronisation is driven by the engine 10 requesting clients to read and write records to the databases.
- the clients are responsible for translating the record in universal record format as given by the engine 10 into the application's record format and conversely, in a read request the clients 11 are responsible for translating the record from the applications format to the universal record format.
- This process prevents the loss of data through the propagation of truncated data during the synchronisation process.
- Fig. 11 illustrates use of the Intermediate Datastore in more detail.
- the universal record structure Intermediate Datastore is represented on the left and the application- specific record structure is represented on the right.
- the client is responsible for translating the common fields in both records from one format to the other.
- Fig. 11 shows the universal record, having a unique id (UID) and fields Y, Z, and A - G.
- the application record has a corresponding UID and fields A - H. Both records have in common the UID and common fields A - G.
- Fields A - D and F have the same representation in both records, so the client needs to do no processing other than copy one to the other.
- Field E is represented in the application datastore in a different way to the universal record but has a reversible transformation (R) between the two representations. All the client needs to do is perform this transformation in the appropriate direction when requested to read or write a record by the engine.
- R reversible transformation
- All the client needs to do is perform this transformation in the appropriate direction when requested to read or write a record by the engine.
- An example of this might be a priority field, represented in the universal contact record as values 1,2 or 3 and is represented in the application's datastore as "high", "medium” or "low”.
- Field G has a one-way transformation (T) from G to G".
- T transformation
- the client's Intermediate Datastore This information is used during a read operation to determine whether field G" has been changed by the user. If it has not, The client's Intermediate Datastore's copy G is used to construct the universal record using its correct value (i.e. before transformation T has been applied). This process enables individual clients 11 to transform the data to a more suitable format whilst ensuring that any unedited transformed data is not propagated to other clients.
- each datastore contains a representation of all of the records, for example, each datastore would contain n records.
- a. Limited storage capability The datastore does not have the capacity to store all of the records. This can typically occur with devices such as mobile phones.
- b. Data manageability A large set of records may degrade the performance or usability of the application that manages them.
- a Personal Digital Assistant (PDA) user may only want records associated with their next business trip.
- Subset Personalisation the ability to synchronise a subset of records is termed Subset Personalisation.
- the engine is responsible for the actual synchronisation functionality such as conflict resolution and duplicate handling.
- a client that supports Subset Personalisation is responsible for managing the subset. The following describes how such a client can be implemented.
- a requirement is for there to be a database containing all records in the synchronisation set. This database needs to be accessible at every synchronisation session. It also needs to contain records that support all universal field data. The master database satisfies these requirements.
- the client 11 uses a Personalisation Table and a Current UID List.
- the Current UID List contains a list of the UIDs of all of the records in the native database. The list is generated at the start of a synchronisation session and is discarded at the end of the session.
- the Personalisation Table contains three columns - Master UID, Native UID and Updated. The table has a row for every entry in the Personalisation subset.
- the Master UID value is the UID of the record in the Master database.
- the Native UID value is the UID of the corresponding record in the native database.
- the Update value is a flag denoting whether an entry has changed.
- the table is persistent between sync. Sessions. Fig. 12 illustrates these components. Subset Personalisation is achieved during synchronisation as follows.
- the client initialises each value in the Updated column of the Personalisation Table to FALSE. It extracts a list of the UIDs and CIs of all of the records in the native database. Using these values, it updates the Change Status column in the sync table accordingly. It also creates the Current UID List from all of the UIDs in the native database.
- the client For every new record that it finds, the client adds a new row to the Personalisation Table, setting the Native UID value to that of the new record and setting the Updated flag to FALSE.
- the Master UID value is set to NULL.
- the engine may instruct the client to Delete, Edit or Create records. The client processes these instructions as follows:
- the client uses the supplied Native UID to find the entry in the Personalisation Table and removes that row.
- Edit Record The client uses the supplied Native UID to find the entry in the Personalisation Table and sets the Update value of the entry to TRUE.
- the client does nothing.
- the engine instructs each client to personalise its data set (if supported).
- the client detects new records, it added new rows to the Personalisation Table with the Master UID set to NULL (since the Master UID is obviously unknown at that time).
- the UIDs of the new records will have been inserted at the appropriate positions in the Sync Table.
- the client now searches the Personalisation Table for these entries. For each one that it finds, it:-
- the set of records that make up the Personalisation Subset can be specified in a number of ways. These include, but are not limited to:
- the user is provided with a list of all of the records and can select those records that are to make up the subset.
- the Personalisation Set can vary during the process due to deletions in any client or new records in the native database.
- the Personalisation Set can vary during the process as a result of deletions, edits and new records from any client.
- the master database contains all of the records with the latest data.
- a client using the rule based method now needs to update its Personalisation Table entries. For each entry in the Personalisation Table, the client:
- a. reads the Master UID
- b. retrieves the associated record from the Master database
- the client now reads each record in the master database. For each record, it checks whether the rule criteria are satisfied. If they are, and the entry is not currently in the set, the client creates a new entry in the Personalisation Table. The new entry has the Master UID value applied, the Updated field set to FALSE and the Native UID value set to NULL. The Native UID value will be set when the record is created in the native database.
- the Personalisation Table is now fully populated with the correct data and contains an entry for each record in the subset.
- the Master database contains all of the records with the latest data.
- the Current UID List contains a list of the UIDs of all of the records currently in the native database.
- the client now applies the actions (Delete, Edit, Create) needed for the Personalisation Subset.
- a Native UID value in the Personalisation Table is NULL then a new record is required in the Native database.
- the client 11 uses the Master UID entry to retrieve the correct record from the Master database and creates a corresponding record in the native database.
- the UID of the newly created record is stored in the Native UID column.
- a Native UID in the Current UID List has a corresponding entry in the Personalisation Table and the Update value is TRUE then that record needs to be edited in the native database.
- the client uses the Master UID entry to retrieve the correct record from the Master database and updates the corresponding record in the native database.
- Exposing the universal record format to the user through the user interface has a number of additional benefits; namely:
- the invention enables the incremental adding of clients to a multi-point synchronisation process without the need to:
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01947304A EP1285364A1 (en) | 2000-05-24 | 2001-05-22 | Synchronisation of databases |
AU69029/01A AU6902901A (en) | 2000-05-24 | 2001-05-22 | Synchronisation of databases |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00650056 | 2000-05-24 | ||
EP00650056.5 | 2000-05-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2001090933A1 true WO2001090933A1 (en) | 2001-11-29 |
Family
ID=8174454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2001/005869 WO2001090933A1 (en) | 2000-05-24 | 2001-05-22 | Synchronisation of databases |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1285364A1 (en) |
AU (1) | AU6902901A (en) |
WO (1) | WO2001090933A1 (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003102778A2 (en) * | 2002-05-31 | 2003-12-11 | International Business Machines Corporation | System and method for accessing different types of back end data stores |
GB2391362A (en) * | 2002-07-24 | 2004-02-04 | Beach Solutions Ltd | Database comparator |
US7143117B2 (en) * | 2003-09-25 | 2006-11-28 | International Business Machines Corporation | Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match |
US7440978B2 (en) * | 2005-01-14 | 2008-10-21 | Microsoft Corporation | Method and system for synchronizing multiple user revisions, updating other strategy maps in the databases that are associated with the balanced scorecard |
US7523141B2 (en) | 2006-07-31 | 2009-04-21 | Microsoft Corporation | Synchronization operations involving entity identifiers |
EP2184688A1 (en) * | 2008-11-06 | 2010-05-12 | Amadeus s.a.s | Method of integrating in real time large volumes of updates in a database |
WO2011012419A1 (en) * | 2009-07-28 | 2011-02-03 | Amadeus S.A.S. | Method to keep coherent a travel shopping basket |
US9026578B2 (en) | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
US20150288744A1 (en) * | 2014-04-04 | 2015-10-08 | Dropbox, Inc. | Enriching contact data based on content sharing history in a content management system |
CN107016027A (en) * | 2016-12-08 | 2017-08-04 | 阿里巴巴集团控股有限公司 | The method and apparatus for realizing business information fast search |
US9747295B1 (en) * | 2014-11-03 | 2017-08-29 | Sprint Communications Company L.P. | Updating a large dataset in an enterprise computer system |
CN110928947A (en) * | 2019-10-16 | 2020-03-27 | 中国平安财产保险股份有限公司 | Data synchronization method and device based on button and related equipment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5684990A (en) * | 1995-01-11 | 1997-11-04 | Puma Technology, Inc. | Synchronization of disparate databases |
US5884325A (en) * | 1996-10-09 | 1999-03-16 | Oracle Corporation | System for synchronizing shared data between computers |
US5974238A (en) * | 1996-08-07 | 1999-10-26 | Compaq Computer Corporation | Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements |
US5999947A (en) * | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
-
2001
- 2001-05-22 EP EP01947304A patent/EP1285364A1/en not_active Withdrawn
- 2001-05-22 AU AU69029/01A patent/AU6902901A/en not_active Abandoned
- 2001-05-22 WO PCT/EP2001/005869 patent/WO2001090933A1/en not_active Application Discontinuation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5684990A (en) * | 1995-01-11 | 1997-11-04 | Puma Technology, Inc. | Synchronization of disparate databases |
US5974238A (en) * | 1996-08-07 | 1999-10-26 | Compaq Computer Corporation | Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements |
US5884325A (en) * | 1996-10-09 | 1999-03-16 | Oracle Corporation | System for synchronizing shared data between computers |
US5999947A (en) * | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003102778A2 (en) * | 2002-05-31 | 2003-12-11 | International Business Machines Corporation | System and method for accessing different types of back end data stores |
WO2003102778A3 (en) * | 2002-05-31 | 2004-06-24 | Ibm | System and method for accessing different types of back end data stores |
GB2391362A (en) * | 2002-07-24 | 2004-02-04 | Beach Solutions Ltd | Database comparator |
US7143117B2 (en) * | 2003-09-25 | 2006-11-28 | International Business Machines Corporation | Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match |
US7647462B2 (en) | 2003-09-25 | 2010-01-12 | International Business Machines Corporation | Method, system, and program for data synchronization between a primary storage device and a secondary storage device by determining whether a first identifier and a second identifier match, where a unique identifier is associated with each portion of data |
US9026578B2 (en) | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
US7440978B2 (en) * | 2005-01-14 | 2008-10-21 | Microsoft Corporation | Method and system for synchronizing multiple user revisions, updating other strategy maps in the databases that are associated with the balanced scorecard |
US7523141B2 (en) | 2006-07-31 | 2009-04-21 | Microsoft Corporation | Synchronization operations involving entity identifiers |
WO2010052311A1 (en) * | 2008-11-06 | 2010-05-14 | Amadeus S.A.S. | Method of integrating in real time large volumes of updates in a database |
EP2184688A1 (en) * | 2008-11-06 | 2010-05-12 | Amadeus s.a.s | Method of integrating in real time large volumes of updates in a database |
WO2011012419A1 (en) * | 2009-07-28 | 2011-02-03 | Amadeus S.A.S. | Method to keep coherent a travel shopping basket |
US20150288744A1 (en) * | 2014-04-04 | 2015-10-08 | Dropbox, Inc. | Enriching contact data based on content sharing history in a content management system |
US9460210B2 (en) * | 2014-04-04 | 2016-10-04 | Dropbox, Inc. | Enriching contact data based on content sharing history in a content management system |
US20160373518A1 (en) * | 2014-04-04 | 2016-12-22 | Dropbox, Inc. | Enriching contact data based on content sharing history in a content management system |
US9954935B2 (en) | 2014-04-04 | 2018-04-24 | Dropbox, Inc. | Enriching contact data based on content sharing history in a content management system |
US10270845B2 (en) | 2014-04-04 | 2019-04-23 | Dropbox, Inc. | Enriching contact data based on content sharing history in a content management system |
US9747295B1 (en) * | 2014-11-03 | 2017-08-29 | Sprint Communications Company L.P. | Updating a large dataset in an enterprise computer system |
CN107016027A (en) * | 2016-12-08 | 2017-08-04 | 阿里巴巴集团控股有限公司 | The method and apparatus for realizing business information fast search |
CN110928947A (en) * | 2019-10-16 | 2020-03-27 | 中国平安财产保险股份有限公司 | Data synchronization method and device based on button and related equipment |
Also Published As
Publication number | Publication date |
---|---|
AU6902901A (en) | 2001-12-03 |
EP1285364A1 (en) | 2003-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7734577B2 (en) | Composite user interface and framework | |
US7739246B2 (en) | System and method of merging contacts | |
US9305002B2 (en) | Method and apparatus for eventually consistent delete in a distributed data store | |
US20060041603A1 (en) | Method of synchronising | |
US7933296B2 (en) | Services for data sharing and synchronization | |
US6983293B2 (en) | Mid-tier-based conflict resolution method and system usable for message synchronization and replication | |
CA2558875C (en) | Methods for sharing groups of objects, synchronising, and synchronising between three or more devices | |
US8645349B2 (en) | Indexing structures using synthetic document summaries | |
US20060031587A1 (en) | Method of synchronising between three or more devices | |
EP1325409B1 (en) | A shared file system having a token-ring style protocol for managing meta-data | |
US8161371B2 (en) | Method and system for defining a heirarchical structure | |
US20030055828A1 (en) | Methods for synchronizing on-line and off-line transcript projects | |
US20060173932A1 (en) | Using a file server as a central shared database | |
US20010016853A1 (en) | Method and apparatus for synchronizing information on two different computer systems | |
US7031973B2 (en) | Accounting for references between a client and server that use disparate e-mail storage formats | |
GB2399663A (en) | Synchronising content between two sources using profiles | |
US20230315757A1 (en) | Systems and methods for flexible synchronization | |
EP1285364A1 (en) | Synchronisation of databases | |
US20200117388A1 (en) | Conflict resolution within synchronized compostite-part-based digital assets | |
JP2001306372A (en) | Method for managing document and storage medium storing program for executing the method | |
CN113761053A (en) | Data query method and device, electronic equipment and storage medium | |
JPH117445A (en) | Integrated document management device | |
CN117131023B (en) | Data table processing method, device, computer equipment and readable storage medium | |
JP2003030040A (en) | Hush indexes of object database system and non-unique index management system | |
US7428544B1 (en) | Systems and methods for mapping e-mail records between a client and server that use disparate storage formats |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DE DK DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2001947304 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2001947304 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2001947304 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: JP |