SymmetricDS

From Wikipedia, the free encyclopedia
Jump to: navigation, search
SymmetricDS
SymmetricDS-logo.png
Developer(s) JumpMind
Initial release November 2007
Stable release 3.6.13 / November 10, 2014; 9 days ago (2014-11-10)
Development status Active
Operating system Microsoft Windows, Linux, Mac OS X, Android
Available in English
License GPL
Website http://www.symmetricds.org/

SymmetricDS is open source software for database and file synchronization with Multi-master replication, filtered synchronization, and transformation capabilities.[1] It is designed to scale for a large number of nodes, work across low-bandwidth connections, and withstand periods of network outage.[2] Data synchronization occurs asynchronously from a scheduled job, with data changes being sent over a push or pull operation. It uses standard web protocols (HTTP) and database technologies (JDBC) in order to support a wide range of platforms and maximize its interoperability. It includes support for Oracle, MySQL, MariaDB, PostgreSQL, Greenplum, SQL Server, SQL Server Azure, HSQLDB, H2, Derby, DB2, Firebird, Informix, Interbase, SQLite, Sybase ASE, and Sybase ASA databases.[3] It is commonly deployed in industries where data is distributed across multiple locations, such as Retail[4] and Oil and Gas.[5]

Functionality[edit]

SymmetricDS runs either as a standalone server (using a built-in Jetty), within an application server (such as Apache Tomcat), or embedded into an application. Configuration is done through properties files and a collection of configuration tables at a central node. Both database tables and filesystems can be synchronized across a network of nodes. Configuration allows for selection of tables, columns (vertical filtering), and subsets of rows (horizontal filtering) to synchronize in one direction or both directions. Files are selected by base directory and whether to recurse into directories. Wildcard characters are used to match multiple tables and files. Tables can be grouped into channels that sync based on priority. Groups of nodes are linked together and assigned a transport method of push or pull. A push will connect to the node and send changes when they are ready, while a pull will periodically connect with a node to check if changes are available. Several network topologies are possible by linking node groups, including fan-in/out, multi-master, star, and multi-tier tree. A node can be prepared with an initial load of data to populate its database. Changes are grouped into batches and assigned for delivery to nodes using Routers. Routers can be configured or scripted to filter data and make decisions on which nodes should receive data. Batches are delivered during synchronization and tracked using a sequence number and status, with periodic retries designed to automatically recover from errors. Administration tools for command line and a web-based JMX console are included to manage nodes from a central location. Programming interfaces for Java and REST are included to extend and customize behavior.

Prominent users[edit]

  • OpenMRS - open source medical record system[6]
  • Openboxes - supply chain management software[7]

See also[edit]

References[edit]

  1. ^ "SourceForge Project Page". Retrieved Dec 10, 2013. 
  2. ^ "Synchronize Databases with SymmetricDS". Retrieved Nov 23, 2012. 
  3. ^ "SymmetricDS Manual: Database Notes". Retrieved Nov 16, 2013. 
  4. ^ "Data Replication for Stores". Retrieved Feb 18, 2010. 
  5. ^ "Case Study on SymmetricDS". Retrieved Jun 1, 2013. 
  6. ^ "OpenMRS: Database Synchronization with SymmetricDS". Retrieved Aug 22, 2012. 
  7. ^ "Openboxes: Enabling Synchronization". Retrieved Sep 18, 2012. 

External links[edit]