This is an overview of some of the more significant changes in version 2.2.1. This version is quite a bit faster when dealing with large(100000) record sets in a single sync session.
Some bugfixes and performance enhancements are listed, but there are many smaller bugfixes as well, so even if your particular problem is not listed here, it may have been fixed anyway. If not, submit a bug report to this project through the sourceforge bug reporting facility. Remember to include logs and detailed instructions on how to recreate the bug.
- Add index to shadow tables
- This index, which mirrors the primary key index in the replicated table, makes a dramatic speed improvement, especially when dealing with large-ish record sets in a replication session
- Fix multi-field primary key in SQLServer/PostgreSQL
- Fix the creation of update triggers for multi-field primary keys in SQL Server and PostgreSQL.
- Fix misc broken loops
- Read the ChangeLog in the source tree for more info. Basically fixed a bunch of broken loops that were used in multi-field primary key matching
- Change select max()
- Replace 'select max(rep_sync_id) with 'select rep_sync_id from rep_shadow_ order by rep_sync_id desc limit 1'. In short, select max() does a seq scan, while 'select ... order by ... limit 1' on an indexed field uses the index instead. The one caveat here is that on a busy database, regular maintenance is necessary to ensure the index is up-to-date, or the performance drops back to that of select max().
- Fix update of encoded field
- change xml file so that changesCol field lists columns in the new way, and encodes columns if they're supposed to be encoded. This prevents updates to encoded fields from causing the replicator to break because the field update was not encoded and invalid XML characters were present in the XML file.