Changes between Version 5 and Version 6 of DistributingChanges


Ignore:
Timestamp:
03/15/10 10:16:36 (4 years ago)
Author:
johnbywater
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DistributingChanges

    v5 v6  
    33Abstracting and continuing considerations from: 
    44 - SyncingInstances 
    5  
    6 = Terminology = 
    7  
    8 To facilitate discussion here is some clarificatory terminology: 
    9  
    10   * Repository: a given standalone instance containing domain objects. 
    11   * Revision: metadata about a particular change such as unique-id, author, timestamp (and maybe more such as: parents, hash ...) 
    12   * Patch: description of the changes to the domain model: e.g. a set of ids for changed versioned objects along with relevant diffs, necessary changes to non-versioned objects etc 
    13   * Changeset: the combination of a Revision and its associated Patch 
    14     * NB: a patch alone can be applied but it can only be applied "blind" (for example one has no idea whether the patch has already been applied earlier in the Repository history) 
    15     * NB: similarly a Revision along can be applied (it is a Changeset with a null Patch) 
    165 
    176= Wants and needs = 
     
    6655= Actions needed in CKAN to distribute changes (functional requirements) = 
    6756 
    68  - Changeset patch, creation (on new revision: create serialised diff) 
    69  - Changeset patch, publication (handle register-get and entity-get, searchable, publish-subscribe) 
    70  - Changeset patch, retrieval (get and add new changeset patches to local queue entity-get, add to queue) 
    71  - Changeset patch, conflict detection (possibly by asserting either that new values of changed attributes match current values of same attributes in model - so the patch would leave the local model in it's current state, or that old values of changed attributes match current values of same attributes in model - with refinements for merging diffs to "long text") 
    72  - Changeset patch, resolution (human response to conflict notification, decide new state, continue the queue) 
    73  - Changeset patch, application (model merge, record changeset patch has been applied) 
     57 - Changeset patch creation (on new revision: create serialised diff) 
     58 - Changeset patch publication (handle register-get and entity-get, searchable, publish-subscribe) 
     59 - Changeset patch retrieval (get and add new changeset patches to local queue entity-get, add to queue) 
     60 - Changeset patch conflict detection (possibly by asserting either that new values of changed attributes match current values of same attributes in model - so the patch would leave the local model in it's current state, or that old values of changed attributes match current values of same attributes in model - with refinements for merging diffs to "long text") 
     61 - Changeset patch resolution (human response to conflict notification, decide new state, continue the queue) 
     62 - Changeset patch application (model merge, record changeset patch has been applied) 
    7463 
    75  - Model Merge (to include add/remove aggregated children e.g. packages) 
    76  - Model Package Merge (to include add/remove child associations e.g. taggings) 
    77  - Model Tag Merge (if there are any editable attributes ) 
    78  - Model Group Merge (if there are any editable attributes) 
    79  - Model Text Merge (so parts of a longer piece of text can be merged into an otherwise conflicting text attribute) 
     64 - Model merge (to include add/remove aggregated children e.g. packages) 
     65 - Package merge (to include add/remove child associations e.g. taggings) 
     66 - Tag merge (if there are any editable attributes ) 
     67 - Group Merge (if there are any editable attributes) 
     68 - Text merge (so parts of a longer piece of text can be merged into an otherwise conflicting text attribute) 
    8069 
    8170 - CKAN merge (merge queued changeset patches into the model: FIFO, for each: if changeset patch conflicts, request resolution and stop; otherwise apply changeset patch and continue with next in queue) 
     
    9079 - the more divergent two instances the more likely it is that a changeset will conflict, so there is a very good reason to make the changeset distribution loop as tight as possible (in order to minimise the need for conflicts to be resolved) -- hence the event-driven peer-peer considerations 
    9180 - the frequency of human intervention will also depend on the strictness of the changeset patch conflict detection and the forcefulness of the patch application mechanism 
     81 
     82= Glossary (Early Draft) = 
     83 
     84  * Repository: a given standalone instance containing domain objects. 
     85  * Revision: metadata about a particular change such as unique-id, author, timestamp (and maybe more such as: parents, hash ...) 
     86  * Patch: description of the changes to the domain model: e.g. a set of ids for changed versioned objects along with relevant diffs, necessary changes to non-versioned objects etc 
     87  * Changeset: the combination of a Revision and its associated Patch 
     88    * NB: a patch alone can be applied but it can only be applied "blind" (for example one has no idea whether the patch has already been applied earlier in the Repository history) 
     89    * NB: similarly a Revision along can be applied (it is a Changeset with a null Patch) 
     90