The professional version of SymmetricDS 3.2 was released, and it includes a lot of great features and improvements. Let's go through some of the most important ones first, and then I'll show you some of my favorite hidden gems.

SQLite Synchronization

Building on the strength of multiple platform support, this release can now synchronize with SQLite databases on desktop and Android mobile systems. SQLite is an embedded database that is reliable and popular in memory constrained environments. We first became interested in SQLite for creating Android applications that could write to a local database and sync data back to a server. As our customers started deploying SQLite to laptops in the field, their feedback led to SQLite support in the core of SymmetricDS also.

Improved Screens

We continue to improve the web management user interface to make it easier to use. The latest update in 3.2 reduces the complexity of the edit screens so there isn't as much scrolling. Each screen shows a listing of records, and a record is selected to edit in a separate dialog. The Trigger screen, for example, got much simpler, with a dialog to edit Trigger properties, and a separate dialog for editing router links, instead of cramming it together on a single screen.

 

Synchronization Features

There are many synchronization features and improvements in this release. Here are a few highlights:

Audit Tables

SymmetricDS already has a change data capture system that writes to a log, but it's not in a convenient format for users to query. With Audit Tables, the user gets a table that looks like the original table and is easy to query for a history of changes. If your original table is CUSTOMER, then you get a CUSTOMER_AUDIT table created by the system. The Audit Table has its own primary key with a sequence number and some additional columns to indicate the change type and time of change. You get auditing by configuring a router of type "Audit" and linking it to the Trigger of a table.

Synthetic Keys

Sometimes the primary key on the source system doesn't match the target system. Other times, one side has some additional unique constraints. When an update or delete syncs, the changes apply to the wrong rows and you might get constraint violations. Instead of setting up data transformation to handle this problem, you can simply specify the columns you want to use for syncing in the "Sync Key Names" field on the Trigger.

Geometric data types

We've already been syncing geometric data types on Oracle, PostgreSQL, and Greenplum platforms. This release adds support to SQL-Server and MySQL platforms also. Geometric data types let you store data about objects in space, like points, lines, circles, and polygons. Using SymmetricDS, you can sync geometric data between any of the platforms that support it.

Hidden Gems

These are some of my favorite features that might be missed, so I wanted to point them out because they are quite useful.

Pluggable Data Loader

The pluggable interface for data loading has resulted in some powerful new features. Once you drop in a JAR or XML file that uses this extension, you get a new data loader type on the Edit Channels screen. New in 3.2 is the FTP data loader, which sends change data in comma-separated value (CSV) files to a remote server over FTP or secure FTP. You configure your FTP server in the ftp-extension.xml file, and you set the channel to use FTP. Now you can integrate changes to some external systems! Some other extensions packaged with SymmetricDS Pro 3.2 are bulk data loaders for Oracle and PostgreSQL. When you select a bulk loader, it will use features outside of JDBC, specific to the database, that dramatically improve how fast data is loaded. In some cases, we've seen data load through the bulk loader 10 times faster than conventional JDBC.

 

Support Snapshots

To make your interactions with Support more efficient, we've added the snapshot tool. It collects all the information that Support typically asks for, conveniently compressed into a single file that you can attach to an email. It includes configuration, parameters, table definitions, system properties, runtime data, and logs. Take the snapshot, download it, email it, done! It can be a real time saver for everyone.

 

SQL Explorer

The built-in, interactive SQL tool continues to be indispensable for troubleshooting data issues and correcting them. Sometimes you have the queried data on your screen and you want to send it to someone. Now there's a button for exporting to a CSV file!

 

Feedback Wanted

Many of the new features in version 3.2 were inspired by requests and feedback from customers and community members. The product roadmap shows where we want to go, and we want you to be a part of that decision. We're constantly looking for how we can evolve and meet our users' needs, and we'd like to hear what you think. We're excited about what we've done so far, so let's see how far we can take it!

Eric Long
Author: Eric Long

Eric is a software developer and technology enthusiast with a background in developing custom applications for Information Technology. As a long-time Linux user, he strongly believes in open source. He focuses on product solutions and spreading the word for JumpMind.