140 likes | 247 Views
P2P Logging and Timestamping for Reconciliation M. Tlili, W. Dedzoe, E. Pacitti, R. Akbarinia, P. Valduriez, P. Molli, G. Canals, S. Laurière. VLDB Auckland, New Zealand 2008. Outline. Motivations XWiki P2P Architecture P2P-LTR service Demonstration Conclusion. XWiki Application. XWIKI.
E N D
P2P Logging and Timestamping for ReconciliationM. Tlili, W. Dedzoe, E. Pacitti, R. Akbarinia, P. Valduriez, P. Molli, G. Canals, S. Laurière VLDB Auckland, New Zealand 2008
Outline • Motivations • XWiki P2P Architecture • P2P-LTR service • Demonstration • Conclusion
XWiki Application XWIKI XWIKI Hibernate Client Server DB • Enterprise Wiki system in OSS (LGPL) from Xpertnet, Paris • Collaborative text editing among multiple users • Client-server • Wiki-page updating (last save wins) XWiki Client server architecture
Motivations • Problem: client-server architecture • Single point of failure • Hardly scalable • Low mobility • Etc. • Solution: pure P2P architecture • No central server • Scalable to millions of users • Multi-Master replication • Challenge: ensuring data consistency • Ensure convergence of copies • Support asynchronous updates, possibly disconnected
XWiki P2P Application • Optimistic replication • Asynchronous reconciliation • Yields eventual consistency • Use of a DHT • Efficient data location through put and get primitives • Scalability • Fault Tolerance through the DHT stabilization layer • Handles Dynamicity (mobility) • Simplify the construction of large-scale distributed applications • Minimal change to XWiki code base • All data remain in XWiki peers • Only action logs (called patchs) are published and applied by XWiki
XWiki P2P Replication • We propose a new mechanism of optimistic replication • An algorithm for data reconciliation (So61,2) • Based on operational transformation approach (OT) • P2P-LTR, an extension of KTS3,4 service • Distributed continues timestamp generation • Publishing operations (patchs) in DHT network 1 Ecoo Team-Project, LORIA, http://dev.libresource.org 2 P. Molli, G. Oster, H. Skaf-Molli, A. Imine. Using the transformational approach to build a safe and generic data synchronizer. ACM SIGGROUP Conference on Supporting Group Work, (GROUP),2003. 3 R. Akbarinia, E. Pacitti, P. Valduriez. Data Currency in replicated DHTs, SIGMOD2007. 4 M. Tlili, W. K. Dedzoe, E. Pacitti, R. Akbarinia P. Valduriez, et al. P2P Logging and Timestamping for Reconciliation, Accepted demo paper in Int. Conf. on Very Large Databases (VLDB),2008.
So6 • A configuration manager • Based on OT model • Uses a central timestamper • To totally order the operations • Disadvantages • Limited scalability • Bottleneck • Etc. • Solution : P2P-LTR • Generate timestamps • In a fully distributed fashion
Xwiki P2P Architecture XWiki Application XWiki Application XWiki Doc XWiki Doc XWiki Doc XWiki Application getPage applyPatch P2P Network Patch Service getPatch push getLastTS ReconcileEngine (So6) retrieve LTR Publish DHT (OpenChord)
XWiki P2P services • Patch Manager • Interfaces the XWiki application with replication Service • Generates operations (Patch) • Replication Service • Performs reconciliation using OT • By retrieving consistent patches from the DHT • Publishes consistent patches using P2P-LTR • P2P-LTR • Generates timestamps in integer serial order • Stores and replicates timestamped patches in the DHT • DHT • Implements basic DHT primitives, based on Chord • Network must be reliable with known bounds to assure consistency of routing tables1,2 1 P.Linga et. al. Guaranteeing Correctness and Availability in P2P Range Indices. SIGMOD 2005 2 M. Bawa, A. Gionis, H. Garcia-Molina, R. Motwani: The Price of Validity in Dynamic Networks, SIGMOD 2004
P2P-LTR for P2P editing Each XWiki document is identified by a key Xwiki peer: application Master-key: generates timestamps and publishes patches in log peers DHT Master-key succ: replaces Master-key after crash Log peer: stores timestamped patches for a key gen_Ts getLastTS Publish DHT = OpenChord
Reconciliation with P2P-LTR Xwiki-Client: Post (key, patch, ts) (3): get missing patches and apply locally Reconc. Engine n Log-Peers and its successors Log (1): put(hts(key), (patch+ts)) (4): put(hts(key), (patch,Last-ts)) (5): Put(h1(key,Last-ts),patch) (2): ack / Last-ts (5): Put(h2(key,Last-ts),patch) (6)ack Master of Key (5): Put(succ,last-ts) (5): Put(h3(key,Last-ts),patch) Master-Succ
Prototype DHT management XWiki document management Patch management Patch & Timestamp informations Network Monitoring LTR & DHT configurations
Conclusion • XWiki P2P Architecture • Multi-Master replication • Eventual consistency • P2P-LTR • Continuous timestamp generation • Patch replication in DHT network • Demonstration • Concurrent document modification and patch publishing
Thank you • Questions?