Changes between Version 1 and Version 2 of SyncingInstances
- Timestamp:
- 02/08/10 17:38:24 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SyncingInstances
v1 v2 7 7 * 2-way: On setup, packages from each server is copied to the other. On sync, changes on each are transferred to the other. 8 8 9 We will focus now on 1-way .9 We will focus now on 1-way, leaving 2-way for the future. 10 10 11 11 == Requirements == 12 12 13 Merging of changes from both machines. If there is a conflict then it is logged and a result is chosen. 13 * Merging of changes from both machines. If there is a conflict then it is logged and a result is chosen. 14 15 * Use of Server A and Server B continues undisturbed during sync. 16 17 18 == Issues == 19 20 * Clashes of package/tag/group names. 21 22 * Sync between CKAN instances of different versions of ckan & vdm. 23 24 * Unversioned objects - make versioned? User, Group, Authz, Rating. 25 26 * How to test system. 14 27 15 28 == Use cases == … … 23 36 * Sync after package purged on B. (Package not recreated on B.) 24 37 25 * Sync between CKAN instances of different versions of ckan & vdm. 26 27 * Server B syncs at different times from Server C. 38 * Server B syncs at different times from a third server. 28 39 29 40 * Package/Tag/Group name on Server A clashes with an existing one on Server B. Log all of them. Merge tag and group. Not sure about package. 30 41 31 * Use of Server A and Server B continues undisturbed during sync.32 33 42 * Objects on Server A with restricted authz are by default editable on Server B. 34 35 == Issues ==36 37 * Unversioned objects - make versioned? User, Group, Authz, Rating.38 39 * How to test system.40 41 * Clashes of package names.42 43 43 44 == Operation == … … 75 76 == Tickets == 76 77 78 * Sync set-up stored in config file (server URI). Last sync status stored in local db. 79 77 80 * Repository method 'all_revs_since'. It returns all revisions since a time/revision (or since the beginning). 78 81 … … 85 88 * API access to revisions: /api/rest/revision?since=ab49f348-fd23-ae3c 86 89 87 * API access to diffs : /api/90 * API access to diffs?: /api/rest/package?diff-from&diff-to=ab49f348-fd23-ae3c 88 91 89 * Repository method 'import_revisions'. It takes serialised revisions and diffs and creates 92 * API access to unrevisioned objects? 93 94 * Repository method 'import_revisions'. It takes serialised revisions and diffs and creates revision objects exactly matching spec. 90 95 91 96 * Object method 'merge_diffs'. It takes an original object and two diffs that apply to it and applies them both in a new revision.