Changes between Version 22 and Version 23 of BluePrint/Synchronisation
- Timestamp:
- 05/08/09 09:13:31 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
BluePrint/Synchronisation
v22 v23 12 12 * 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. 13 13 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.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. 15 15 16 16 When 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) … … 20 20 Now 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. 21 21 22 An important outcome of this implementation can also be used in manual data exporting modules of S hana (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 easilythese web services to call its own exposed web service rather them directly communicating with database layer.22 An 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. 23 23 24 Now As it is quite literal after reading last paragraph that this can 25 * 1) It must find (process in loop) other sahana servers in the network who have some data24 Now 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 26 26 * 2) It must expose a service to the network telling servers as they enter the network that it has some new data 27 27