Presentation of the project XReplicator in EMC (26.04.2010). XReplicator is the library and utility provides replication of XAM storage systems.
sourceforge.net/projects/xreplicator/
2. Contents About XAM Technology Why replication? What we’ve done Architecture XReplicator library XUtility Demonstration Resources
3. About XAM Technology eXtensible Access Method Technology providing a unified interface between applications and storage systems Industry standard API for Fixed Content Aware Storage Makes developers independent from hardware Easy migration between storages and applications
4. Why replication? Benefits of data replication Reliability Accessibility Performance Security Shortage of analogues of client applications for XAM Storage Systems replication
5. What we’ve done XReplicator library, which enables XAM storages replication XUtility, which uses XReplicator API and provides console user interface XOnce, a Domain-Specified Language to make easy query to storage
7. XReplicator library Replication – use RBaseAlgorithm or algorithm from third-party developers XSystems collection manipulation Direction of replication – mode parameter (in, out, inout) Constraint for XSystem synchronization data: XAM Query Set of XUID Configuration (XConfig) Logging
8. Replication – RBaseAlgorithm Uses replication history (state of storage after replication) Serialization/Deserialization to/from file Uses XAM import/export mechanism Solves “dirty” commit time problem Saves timeCommit and timeSynchronize parameters Solves conflicts of similar XSets Supports XReplicator modes and constraints
9. Logger Logs information about replication, exceptions and configuration changes Logs statistics about replication Two types of log format: XML Simple Supports log levels Log entry content – time, method, level, message Uses proxy-classes for incapsulation Log file(s) settings – path, append, size limit , count
10. XReplicator API architecture XConfig RAlgorithm XReplicator factory XHashSet InvocationHandler XReplicator XReplicator Module (Guice) XAM
11. XUtility features Remote control Banning enabled Multiple connections Scripting Reading text file with XUtility commands and executing it (like a command language) Program args enabled (e.g. for third party planners) Encrypt Blowfish encryption Corporate security raise Out of the box planner for replication
12. XUtility features Multithreading Every command runs in a different thread Enabled background threads (e.g remote control, planner) Commands to manage threads (e.g monitor, kill) Extensibility Dynamic plugins loading enabled (plugin = simple impl. of XOperation)
13. XUtility architecture Parameters XOp. Thread XOp. Thread Plugin 1 Plugin N XOperation Collector XUtility Operation Set XReplicator Thread Set XAM
17. Resources www.snia.org – XAM 1.0.1 developer.emc.com – Many help about XAM groups.google.com/groups/xam-developers-group – Many help too code.google.com/p/google-guice/ – GuiceIoC and DI www.jetbrains.com/mps/ – MPS. Needed to create DSL XOnce maven.apache.org – Maven build manager www.junit.org – Unit tests