ESCADA is a portable and flexible database replication system that accommodates multiple reliability, performance, and applicability tradeoffs: Target scenarios range from shared-nothing clusters to remote sites for disaster prevention. Currently supported database management systems include Apache Derby, PostgreSQL, and MySQL.
Consistent Replication
Although the ESCADA Replication Server can easily be configured for asynchronous replication, the standard in most open source and commercial database management systems and replication add-ons, it is designed for high performance consistent replication. In fact, it can transparently extend the standard snapshot isolation guarantees to a multi-master cluster, thus enabling legacy applications to be instantly migrated to a replicated setting and new applications to be designed without the burden of manually handling conflicting updates. This makes it a choice for high performance shared-nothing clustering as well as remote replication for disaster prevention with zero data loss.
DBMS Abstraction
The ESCADA Replication Server leverages the GORDA Architecture and Programming Interface (GAPI) for database server abstraction, thus achieving portability and making it an open DBMS independent solution. Database servers for which native GAPI support exists, such as PostgreSQL and Apache Derby, offer maximum performance and ease of use. Other JDBC-compliant database servers, such as MySQL, are also supported by using the Sequoia 3.0 wrapper, which implements the GAPI at the middleware level.
Communication Abstraction
Replication protocols in the ESCADA Replication Server are built on view synchronous group communication, a proven fault tolerant technology that transparently deals with cluster configuration and network outages. By using the jGCS abstraction, ESCADA can take advantage of multiple existing implementations such as Spread or JGroups, besides the recommended configuration with the flexible and high performance Appia toolkit.
Component Architecture
Replication protocols in the ESCADA Replication Server are designed and implemented as a flexible set of software components that can be combined with communication and database abstractions to provide a range of replication solutions. Specifically, ESCADA builds on the widely acclaimed Spring Framework and uses the dependency injection pattern for configuration, easing testing and enhancing dependability.