170 likes | 269 Vues
Discover XAM Technology, designed to provide a unified interface between applications and storage systems. Our XReplicator library enables efficient data replication, enhancing reliability, accessibility, performance, and security. The architecture supports versatile configurations and protocols for seamless integration and migration. With features like multithreading, scripting, and dynamic plugin loading, XUtility elevates developer productivity. Explore demonstration resources, industry standards, and community support to optimize your data storage strategies and application interoperability.
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?