130 likes | 257 Views
This paper explores data replication and currency management in Peer-to-Peer (P2P) systems utilizing Distributed Hash Tables (DHTs). The authors, Akbarina, Pacitti, and Valduriez, alongside Dr. Greg Speegle, present a framework where data updates are timestamped to ensure the most current information is always accessible. Employing multiple hash functions allows data to be stored at various sites, with strategies for managing failures and ensuring consistency. This study highlights the effectiveness of key-based timestamping services in maintaining data integrity and performance in dynamic environments.
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