SymmetricDS 3.8 Released!

JumpMind is excited to announce the release of 3.8. This release was primarily focused on performance based changes. Through the process of profiling the code base and addressing a lot of the pain points in the community, we were able to address some key performance improvements.

Monitors and Notifications


There has been a great deal of interest in being able to track issues with the replication system and then broadcast those results to the necessary parties. Monitors and Notifications does just this through a few quick configuration screens. First, you create the monitors you would like to use to look over your environment. Such monitors include:

  • Batches in Error
  • Batches Unsent
  • Data Gaps
  • Unrouted Data
  • CPU Usage
  • Disk Usage
  • Memory Usage
  • Data Load Wizard

Once you have created the appropriate monitors you can specify how you would like to be notified when a monitor is activated. For instance you can setup a notification to email users when a specific monitor event is fired.

Channel Queues

Until now SymmetricDS utilized only one thread per node while pushing or pulling data. Now through the use of channel queues you can achieve multi-threading between nodes. By default all channels will use the same queue (named default) but they can be changed to different values so that each queue will be able to communicate on its own thread between nodes.

Data Load Wizard / Partial Loads

Load Data Wizard

There is a new data load wizard to help simplify the creation of loads between nodes. The wizard allows you to select the source and target nodes involved. You can then tell it to take an action before loading the data such as creating the tables, deleting data in the target, or running some custom SQL. There is also the ability to select specific tables involved in the load (partial load) with a “where” condition for each. For example, load three tables from node “server” to “client” where the data is older than one day.

Improved Routing

Data gaps serve as a critical piece in the routing process of SymmetricDS to create batches from changed data. Gaps can be created for a number of reasons such as uncommited data. This affects the data IDs that SymmetricDS uses internally and data gap analysis helps solve this problem. In 3.8, the data gap analysis has been improved a great deal and results in much faster routing. With improved routing performance the batches are able to be sent and loaded to the targets faster as well.

DB Compare

The DB compare feature allows you to compare two databases that are setup with SymmetricDS. You can select a subset of tables or compare all tables by providing the engine files of the nodes you wish to compare. The comparison is done at the column level and can output a SQL file for all differences.

SQL Explorer enhancements

There were several enhancements made to the explore tab in the SymmetricDS Pro web console. You can now view the triggers on tables as well as the source of the triggers. The query result tabs are now pinnable and refreshable so that result sets can be retained while additional queries are executed. Within the results you can now edit the data directly inline without having to create update statements.

Hybrid Pulls

Hybrid pull is useful when you have a scenario where you want the target to pull data from the source, but you also want to avoid too much wasted network traffic on ineffective pulls. For example, a client system may wake up and ask the server if there is any new data each minute. But what if new data is only available every 30 minutes or so? That means that virtually all of the pull requests are a waste, because there isn’t actually new data to pull yet. With hybrid pull, the server will notify the client when there is new data to pull. Then, the client is able to use those notifications to throttle and prioritize when to pull from the server.

Multi-threading for extract, transferring, and loading

The core ETL concepts involved in every SymmetricDS push and pull have been setup now to process in parallel. Once a batch is extracted and marked with a status NE (new) it can be picked up by a transferring thread to begin sending the data to the target while additional batch extractions are taking place. Once a transfer thread has finished sending the data, a new thread will pick up the process of loading the data into the target so that additional transfers can occur at the same time.

Web Console Events

With the ability to have multiple users accessing the SymmetricDS web console at the same time, we provided a way to track their interactions with system. Operational events such as ignoring a batch, creating an initial load, and syncing triggers are recorded along with the time, the user, and some extra details about which node the change affected. The output of these events is now available on the manage tabs, console events screen.

Volt DB added


There was a new database dialect added in 3.8. VoltDB is now supported. A very fast, reliable in-memory database.

Try it Out!

So now it’s time to download and try out all the new features represented in SymmetricDS release 3.8. Be sure to check out the SymmetricDS Community Edition and SymmetricDS Professional Edition release notes for more details. Please be sure to let us know what you think, good and bad. Thanks!