Presentation is loading. Please wait.

Presentation is loading. Please wait.

Peer-to-Peer Data Structures Christian Scheideler Dept. of Computer Science Johns Hopkins University.

Similar presentations


Presentation on theme: "Peer-to-Peer Data Structures Christian Scheideler Dept. of Computer Science Johns Hopkins University."— Presentation transcript:

1 Peer-to-Peer Data Structures Christian Scheideler Dept. of Computer Science Johns Hopkins University

2 2Peer-to-Peer Data Structures Peer-to-peer data structures Data structures dispersed over dynamic set of potentially large number of peers Internet

3 3Peer-to-Peer Data Structures Outline of Talk How to design peer-to-peer forms of classical data structures like hash tables, skip lists, and search trees? How to formulate a general model for the design of peer-to-peer data structures?

4 4Peer-to-Peer Data Structures Sequential data structures How to design peer-to-peer forms of these data structures? Hash tableSkip list [Pugh ‘90] 2-3 tree [Hopcroft ’70] h

5 5Peer-to-Peer Data Structures Parallel data structures Linear addressable memory P read, write (1 step) requests synchronized local computation (1 step) PP.... Multiple processing units (1,2,…,n) Based on PRAM model or derivatives:

6 6Peer-to-Peer Data Structures Parallel Data Structures Parallel hash tables: n Insert/Delete operations: O(log n) time n Insert/Delete operations: O(log n) time n Search operations: O(1) time n Search operations: O(1) time [Gil, Matias, Vishkin ’91], [Bast, Hagerup ’91] [Gil, Matias, Vishkin ’91], [Bast, Hagerup ’91] Parallel skip lists: n Insert/Delete/Search operations: O(log n) n Insert/Delete/Search operations: O(log n) [Gabarro, Martinez, Messeguer ’94] [Gabarro, Martinez, Messeguer ’94] Parallel 2-3 trees: Parallel 2-3 trees: n Insert/Delete/Search operations: O(log n) n Insert/Delete/Search operations: O(log n) [Paul, Vishkin, Wagener ’83] [Paul, Vishkin, Wagener ’83] *

7 7Peer-to-Peer Data Structures Are we done?? Limitation of parallel designs: only parallelize the way the data structure is accessed, not the data structure itself! Is it realistic to assume that a reliable shared memory can be provided in a peer- to-peer system? If at all, the overhead is high! (  (log n) time and work for read/write)

8 8Peer-to-Peer Data Structures Peer-to-peer scenario PPP Reliable shared memory.... Dynamic set of peers, no consecutive numbers

9 9Peer-to-Peer Data Structures Peer-to-peer data structures Basic requirements: Remains well-connected even under massive failures. Desirable: high expansion Low maintenance overhead. Necessary: low degree Allows efficient concurrent execution of operations. UN(U) |N(U)| |U| min U

10 10Peer-to-Peer Data Structures Sequential data structures How to design peer-to-peer forms of these data structures? Hash tableSkip list [Pugh ‘90] 2-3 tree [Hopcroft ’70] h

11 11Peer-to-Peer Data Structures Hash graphs [Stoica, Morris, Karger, Kaashoek, and Balakrishnan ’01] Idea: organize objects in cycle according to hash function h:Names [0,1). 0.58 0.43 0.28

12 12Peer-to-Peer Data Structures Hypercubic Shortcuts +1/2 +1/4 +1/8 +1/16 1 0 fingers x

13 13Peer-to-Peer Data Structures Hypercubic Pointer Structure

14 14Peer-to-Peer Data Structures Sequential data structures How to design peer-to-peer forms of these data structures? Hash tableSkip list [Pugh ‘90] 2-3 tree [Hopcroft ’70] h

15 15Peer-to-Peer Data Structures Skip Graphs [Aspnes and Shah ’03] Basic approach: organize objects in cycle according to real names. Cherry Banana Apple

16 16Peer-to-Peer Data Structures Skip Graphs Shortcuts: pad each object with random bits 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1

17 17Peer-to-Peer Data Structures Sequential data structures How to design peer-to-peer forms of these data structures? Hash tableSkip list [Pugh ‘90] 2-3 tree [Hopcroft ’70] h

18 18Peer-to-Peer Data Structures 2-3 Graphs [Awerbuch & Scheideler ’04] Same basic approach: organize objects in cycle according to real names. Cherry Banana Apple

19 19Peer-to-Peer Data Structures Shortcuts: Intertwined Rings bridge

20 20Peer-to-Peer Data Structures Insert and Delete Inserting a node:

21 21Peer-to-Peer Data Structures Insert and Delete Deleting a node:

22 22Peer-to-Peer Data Structures k-separated 2-3 Graph In every level, bridges are k nodes apart. How large does k have to be to guarantee 1/polylog expansion  ? Theorem:  = (1/2) So k has to be non-constant (  ( log n ) ). Do areas with old insertions/deletions have to be revisited??  (log n / k ) 2 UN(U) |N(U)| |U| min U

23 23Peer-to-Peer Data Structures k-separated 2-3 Graph Rule: Choose k=6(d+3) d: current degree of node initiating op. Theorem: degree: 2(log n +/- 2) expansion:  (1/log n) work for Insert/Delete: O(log n) Similar DS but only with 1/n expansion in worst case was proposed by [Harvey & Munro ’03] 3 

24 24Peer-to-Peer Data Structures Outline of Talk How to design peer-to-peer forms of classical data structures like hash tables, skip lists, and search trees? How to formulate a general model for the design of peer-to-peer data structures?

25 25Peer-to-Peer Data Structures Hierarchical vs. Flat Internet

26 26Peer-to-Peer Data Structures How do objects find each other? Internet

27 27Peer-to-Peer Data Structures Model (JXTA) Network Core rendezvous service Middleware shared space, DNS Application searching, multicast

28 28Peer-to-Peer Data Structures Middleware Model P/M notify (1 step for reliable actors) spawn local computation (1 step) Actor Rendezvous service P/M (un)register(AID) join(AID) Simplified model, sufficient for most purposes join (to random bootstrap actor) notify leave

29 29Peer-to-Peer Data Structures Application Model Insert(addr, o) Delete(addr)Lookup(addr) Join(peer) Leave() Leave() space oper- ations peer oper- ations Common approach: shared space Operations: Available to application-level data structures may be unreliable!

30 30Peer-to-Peer Data Structures Shared Space Consistent hashing: [Karger et al. ’97] h:Addr [0,1), g:Peers [0,1) Object o stored at peer p with min g(p) s.t. h(o)<g(p) 0.58 0.43 0.28 0.34

31 31Peer-to-Peer Data Structures Shared Space Solutions: Chord, CAN, Pastry, Tapestry (~2001/02) OpenHash, KBR, Bamboo (more open) Problems: How to deal with heterogeneous peers? How to deal with adversarial peers?

32 32Peer-to-Peer Data Structures Heterogeneous Peers Peers of non-uniform bandwidth: Previous approach: cut into uniform peers, multi-tier architecture (KaZaA) Our approach [SPAA 2004] : PAGODA Thm: Any concurrent multicast problem can be routed in PAGODA with at most O(  +log n) more congestion than with best possible network of degree . Peers of non-uniform memory size: Previous approach: as above Our approach [SPAA 2004] : Thm: As long as peers are at most (1-  )-utilized, an O(  ) rate of insert/delete requests to peers can be sustained.

33 33Peer-to-Peer Data Structures Adversarial Peers Assumption:  -fraction of peers adversarial Challenges: Organization of peers in regions Enforcement of random IDs stochastic process / secure peer-to-peer random number generator based on verifiable secret sharing Enforcement of limited lifetime Results: (only Join/Leave) Trust-but-Verify [IPTPS 2004] Group Spreading [ICALP 2004] Enforced Spreading [submitted]

34 34Peer-to-Peer Data Structures Conclusion In this talk: Peer-to-peer forms of classical data structures General model for peer-to-peer data structures Challenges: Data structures for unreliable shared space Stability studies (reliable/adversarial peers) Locally self-stabilizing data structures Other applications: mobile ad-hoc, configware

35 Questions ??


Download ppt "Peer-to-Peer Data Structures Christian Scheideler Dept. of Computer Science Johns Hopkins University."

Similar presentations


Ads by Google