Changes between Version 22 and Version 23 of BluePrint/Synchronisation


Ignore:
Timestamp:
05/08/09 09:13:31 (13 years ago)
Author:
Fran Boon
Comment:

formatting

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/Synchronisation

    v22 v23  
    1212 * we need to put time stamp as additional attribute in each table of database (tables which has data like names of missing people etc, we do not need to sync internally required tables which an instance of Sahana installation uses for saving internal information). This time stamp and UUID of Sahana Instance together can represent a unique attribute. This time stamp attribute MUST be added to SahanaPHP for  making intelligent database synchronization.
    1313
    14 There is a desire already for data deleted from Sahana to stay available but with a deleted flag. This would then not be visible during normal DB queries, but is accessible for audit purposes if required. We can make this a reusable field in {{{models/_db.py}}} & then add it to each table definition (well, all real, syncable data - no need for internal settings). For this to be accomplished in SahanaPHP, we MUST put another attribute: delete flag (alongside time stamp). Delete flag will be Boolean represented if tuple has been deleted or not.
     14There is a desire already for data deleted from Sahana to stay available but with a deleted flag. This would then not be visible during normal DB queries, but is accessible for audit purposes if required. We can make this a reusable field in {{{models/__db.py}}} & then add it to each table definition (well, all real, syncable data - no need for internal settings). For this to be accomplished in SahanaPHP, we MUST put another attribute: delete flag (alongside time stamp). Delete flag will be Boolean represented if tuple has been deleted or not.
    1515
    1616When new tuple is added: new date is entered, when tuple is updated: date is modified to present one. if tuple is deleted, we set delete flag as true for that tuple (and do not delete it for real)
     
    2020Now each machine either updates or puts new tuples in specific tables. It also deletes all tuples which the other machine has deleted IF and only if it hadn't updated that tuple in its own database after the deletion on other machine.
    2121
    22 An important outcome of this implementation can also be used in manual data exporting modules of Shana (both version). We can let the user select the age of data which they want to export (i.e. export data form a starting date to b date). Moreover, we can easily these web services to call its own exposed web service rather them directly communicating with database layer.
     22An important outcome of this implementation can also be used in manual data exporting modules of Sahana (both versions). We can let the user select the age of data which they want to export (i.e. export data form a starting date to b date). Moreover, we can easily set these web services to call its own exposed web service rather them directly communicating with database layer.
    2323
    24 Now As it is quite literal after reading last paragraph that this can not be accomplished over standard web site based architecture so we need to make daemon (or service ) which will continuously run in the background basically doing two tasks:
    25  * 1) It must find (process in loop) other sahana servers in the network who have some data
     24Now As it is quite literal after reading last paragraph that this cannot be accomplished over standard web site based architecture so we need to make daemon (or service ) which will continuously run in the background basically doing two tasks:
     25 * 1) It must find (process in loop) other Sahana servers in the network who have some data
    2626 * 2) It must expose a service to the network telling servers as they enter the network that it has some new data
    2727