1 p2p logging and timestamping for reconciliation m. tlili, w. dedzoe, e. pacitti, r. akbarinia, p....
Post on 19-Dec-2015
219 views
TRANSCRIPT
1
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
3
XWiki Application
Enterprise Wiki system in OSS (LGPL) from Xpertnet, Paris
• Collaborative text editing among multiple users
• Client-server
• Wiki-page updating (last save wins)
XWIKI XWIKI
Hibernate
DB
Client
Server
XWiki Client server architecture
4
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
5
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
6
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, SIGMOD 2007. 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.
7
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
8
Xwiki P2P Architecture
XWiki ApplicationXWiki Doc
P2P Network
XWiki Doc
XWiki Doc
getLastTSretrieve
Publish
getPageapplyPatch
getPatchpush
Reconcile Engine (So6)
Patch Service
LTR
DHT (OpenChord)
XWiki Application XWiki Application
9
XWiki P2P servicesPatch 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 20052 M. Bawa, A. Gionis, H. Garcia-Molina, R. Motwani: The Price of Validity in Dynamic Networks, SIGMOD 2004
10
P2P-LTR for P2P editing
DHT
Each XWiki document is identified by a key
Xwiki peer: application
Master-key: generates timestamps and publishes patches in log peers
Master-key succ: replaces Master-keyafter crash
Log peer: stores timestamped patchesfor a key
DHT = OpenChord gen_TsgetLastTSPublish
11
Reconciliation with P2P-LTR
Log
Reconc. Engine
Xwiki-Client: Post (key, patch, ts)
(1): put(hts(key), (patch+ts))
n Log-Peers and its successors
(5): Put(h1(key,Last-ts),patch)
Master of Key
Master-Succ(5): Put(succ,last-ts)
(6)ack
(3): get missing patches and apply locally
(2): ack / Last-ts
(4): put(hts(key), (patch,Last-ts))
(5): Put(h3(key,Last-ts),patch)
(5): Put(h2(key,Last-ts),patch)
12
Prototype
DHT management
XWiki document management
Patch management
Patch & Timestamp informations
Network Monitoring
LTR & DHT configurations
13
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