130 likes | 248 Views
Data Currency in Replicated DHTs. Akbarina, Pacitti and Valduriez Presented by Dr. Greg Speegle. Introduction. Peer-to-peer (P2P) Systems Message propogation Flood DHT Failure characteristics Data replication Data currency
E N D
Data Currency in Replicated DHTs Akbarina, Pacitti and Valduriez Presented by Dr. Greg Speegle
Introduction • Peer-to-peer (P2P) Systems • Message propogation • Flood • DHT • Failure characteristics • Data replication • Data currency • Goal: Replication of Data with Currency in P2P Environment using DHTs
Distributed Hash Table (DHT) • Hash function h(data)=key • Node owns “nearest” keys • Node i “knows” node j is closer to key k • Message requires O(log n) hops • get(k) retrieves data • put(k,data) stores data
Replication and DHT • Use m hash functions • Store data at m sites • hi(data) = ki • put(ki,data) • Timestamp each update • data = data + TS • Greatest timestamp most current data
Key-based Timestamping Service (KTS) • p generates TS for k via counter • For all hash functions • q finds p via DHT mechanism • Data is “TS for k” • gen_ts(k) monotonic function generating TS • last_ts(k) returns last TS
KTS Direct Algorithm • p exiting system • q (neighbor) selected as new TS server • p sends current counters to q • “neighbors” (in DHT) route to q instead of p
KTS Indirect Algorithm • p fails • q queries data for TS • Highest TS returned becomes current TS • Waits to allow “in progress” TS to propagate • If one current replica found, TS correct • Ps = 1-(1-pa)|H| • Pa = 30% and|H|=13 then Ps = 99%
Read Operations • Request on all hash functions (get(k)) • Request TS from KTS • Return 1st replica with TS = KTS value
Write Operations • Get new TS • Perform put(k,data+TS) on all hash functions • Receiver compares new TS to current data TS • If new TS > current TS, update local data
Conclusion • Low failures of KTS works • Recovery algorithms for KTS failures not perfect • Low update scenarios • High update scenarios eliminate failure problems for data, but not KTS