TODO's


A short list of features/enhancements that are at the top of the implementation/wish list, in no particular order.


GUI

  • Add database table listing and ability to return records and metadata info on datasource tab. Show all tables, but indicate which ones are replicated in some way.
  • add table data/metadata browsing to shadow tables on publisher/subscriber interfaces
  • clean up and make dialogs nicer
  • change login and interface to allow for multiple simultaneous datasource logins
  • merge publisher and subscriber interfaces into one with publications/subscriptions tabs on right


Backend/API

  • Add handling of DDL changes, probably through the following methodology

    • store metadata info about each table in a special rep table
    • change update publication/update subscription to read these and compare them with present metadata to determine any changes
    • create update/alter table statements and replicate them, rather than recreating tables
    • perhaps add logic that if metadata changes have occurred, merge/push/pull will not continue until DDL changes have been pushed out
  • Add more sophisticated collision handling rules for use when creating the publication.
  • Change handling of encoded fields to automatic. This would do away with a config file (EncodeConfig.ini), which we have too many of, and improve reliability. At present, if replication is humming along, and then some user inserts a special character into a field not defined in EncodeConfig.ini, replication breaks until the field is added to the config file. This should be easy to automate the handling of
  • Implement snapshot by postgres copy() command for postgres versions greater than 7.3, as well as other database-specific mass data import functions for other RDBMS's.
  • update consideredid on publisher when pull portion of sync process completes successfully. This would fix OperationUpdate.java, which could go back to using consideredId. OperationInsert.java still uses lastSyncId for getLastRecord, however. Still need to work this out.
  • change MergeHandler stage to set transaction isolation level and update all rep_server_names at the end of each table, instead of after each record. This is also safer, in case some other process were to slip in a record, the rep_server_name in the shadow table would be wrong.
  • update publisher to detect when client socket is terminated and disconnect from it. Right now, if subscriber starts a sync session, downloads its xml file successfully and then loses its connection, the publisher sits around forever waiting for it to come back with a sync file of its own. Currently, a restart of the publisher is necessary before any other subscribers can connect.
  • update publisher to use threads for each subscriber connection, to handle simultaneous connections if the database behind the publisher is capable of handling the serializable transaction isolation level.
  • update configuration file structure to allow for multiple replicated databases
  • trap signals in replicator background process to allow for cleaner shutdown
  • apply index-related fixes from postgres code to other databases
  • Test socket on publisher while waiting for subscriber to perform sync operations to make sure that socket is still active.  If socket is gone, disconnect and listen for other subscribers
  • modify struct_<pubname>_<subname>.xml to break down default values, and specify generics for functions where possible. These functions need to be translated between databases
  • add more verbose error if parent table is not present on create pub
  • change encodeconfig to automatically encode fields that need it.
  • move publisher/subscriber init processes to just 'dbreplicator'


Installation

  • Add a java installer gui, for installation in non-packaged environments such as windows, mac and non-debian linuxes.
  • change publisher/subscriber startup scripts in init.d to just one dbreplicator script.


Databases

  • Add support for HSQLDB
  • Add support for Informix


Wow! It was a blast! Randy

Wow! It was a blast! Randy Montana is the best, i really had fun during his tour here in detroit. I'm looking forward on seeing his one of his concerts again! Thanks for posting this schedule,
70-455 // 70-529 // 77-882 // mb2-634 // mb2-867 // 70-175 // 70-225 // 70-296 //

Powered by Drupal - Theme by Danger4k