170 likes | 263 Views
XAM. XReplicator project. Developers: Burmak Alexander Mirov Yuriy Kovalev Igor Trainer: Alexeev Peter. Contents. About XAM Technology Why replication? What we’ve done Architecture XReplicator library XUtility Demonstration Resources. About XAM Technology.
E N D
XAM XReplicator project Developers: Burmak AlexanderMirov YuriyKovalev Igor Trainer: Alexeev Peter
Contents • About XAM Technology • Why replication? • What we’ve done • Architecture • XReplicator library • XUtility • Demonstration • Resources
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
Why replication? • Benefits of data replication • Reliability • Accessibility • Performance • Security • Shortage of analogues of client applications for XAM Storage Systems replication
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
Architecture XReplicator XUtility XAM VIM VIM VIM
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
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
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
XReplicator API architecture RAlgorithm XConfig XReplicator factory XHashSet InvocationHandler XReplicator XReplicator Module (Guice) XAM
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
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)
XUtility architecture Parameters XOp. Thread XOp. Thread Plugin 1 Plugin N XOperation Collector XUtility Operation Set XReplicator Thread Set XAM
XReplicator Demonstration
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
XReplicaton on Open Source XReplicator.sourceforge.net
Thank you for attention! Questions?