SlideShare a Scribd company logo
Skip Graphs and its Applications
Ajay Shankar Bidyarthy
b.ajay@iitg.ernet.in
09012305
Department of Mathematics
October 15, 2012
Topics to be covered
Skip Lists
Skip Graphs
Search an existing node in a Skip Graphs
Insert a new node in a Skip Graphs
Delete an existing node from a Skip Graphs
Skip Graphs Applications
Skip Lists
A skip list, introduced by Pugh in 1990, is a randomized
balanced tree data structure organized as a tower of
increasingly sparse linked lists.
: Figure 1: A skip list with n = 6 nodes and log n = 3 levels.
Skip Lists continue...
In a doubly-linked skip list, each node stores a predecessor
pointer and a successor pointer for each list in which it
appears, for an average of 2
1−p pointers per node.
To to search for a data x, start with the leftmost node at the
highest level and follow these steps:
Initialize: v = −∞
if v.right > x then
Move to the lower level
end
if v.rigth < x then
Move to the right
end
if v.right = x then
Element found // Search fails when no lower level exist.
end
Algorithm 1: Distributed algorithm to search an element x in a
skip graph.
Skip Lists continue...
Let N be the number of nodes in the respective graph. If the
list is doubly linked, then the expected number of edges in the
entire graph is
2N + N + N/2 + N/4 + ... = 4N.
The average degree of per node is still a constant, but the
routing latency is reduced to O(log N)
Skip Graphs
Skip graph is a generalization of skip list
: Figure 2: A skip Graph with n = 6 nodes and log n = 3 levels.
Skip Graphs continue...
a skip graph is distinguished from a skip list is that there may
be many lists at level i, and every node participates in one of
these lists, until the nodes are splintered into singletons after
O(log n) levels on average.
Skip Graphs continue...
Which lists a node x belongs to is controlled by a membership
vector m(x).
We think of m(x) as an infinite random word over some fixed
alphabet, in practice, only an O(log n) length prefix of m(x)
needs to be generated on average.
The idea of the membership vector is that every linked list in
the skip graph is labeled by some finite word w, and a node x
is in the list labeled by w if and only if w is a prefix of m(x).
Skip Graphs continue...
Define A particular list Sw is part of level i if |w| = i. The
bottom level is always a doubly-linked list S consisting of all
nodes in order as shown in figure 2.
A skip graph is precisely a family {Sw } of doubly-linked lists.
Notation: If |w| > i, we write w|i for the prefix of w of length
i
Skip Grapsh Continue...
Result 1: Let {Sw } be a skip graph with alphabet Σ. for
any z ∈ Σ∞, the sequence S0, S1, S2, ..., where each Si = Sz|i ,
is a skip list with parameter p = |Σ|−1
The search algorithm
Denote the pointer to x’s successor and predecessor at level l
as x.neighbor[R][l] and x.neighbor[L][l] respectively. Define
xRl formally to be the value of x.neighbor[R][l], if
x.neighbor[R][l] is a non-nil pointer to a non-faulty node, and
⊥ otherwise. Define xLl similarly.
The search algorithm continue...
The variables stored at each node is presented in Table I.
Variable Type
key Resource Key
neighbor[R] Array of successor pointers
neighbor[L] Array of predecessor pointers
m Membership vector
maxLevel Integer
deleteFlag Boolean
Table: List of all the variables stored at each node.
Upon receiving (searchOp, startNode, searchKey, level)
// If the current key is the search key, return
if (v.key = searchKey) then
send (foundOp, v) to startNode
end
// Coming from left, current key is less than search key
if (v.key < searchKey) then
// Go one level down till a right neighbor with key smaller than the search key is
reached
while level ≥ 0 do
if ((v.neighbor[R][level]).key ≤ searchKey) then
send (searchOp, startNode, searchKey, level) to v.neighbor[R][level]
break
else
level = level - 1
end
end
else
// Coming from right, current key is greater than search key
while level ≥ 0 do
// Go one level down till a left neighbor with key larger than the search key is
reached
if ((v.neighbor[L][level]).key ≥ searchKey) then
send (searchOp, startNode, searchKey, level) to v.neighbor[L][level
break
else
level = level - 1
end
end
end
// Reached the bottom-most level, key is not found
if (level < 0) then
send (notFoundOp, v) to startNode
end
Algorithm 1: Algorithm 1: search for node v.
The search algorithm continue....
Result 2: The search operation in a skip graph S with n
nodes takes expected O(log n) messages and O(log n) time.
The insert algorithm
A new node u knows some introducing node v in the network that
will help it to join the network. Node u inserts itself in one linked
list at each level till it finds itself in a singleton list at the topmost
level. The insert operation consists of two stages:
Node u starts a search for itself from v to find its neighbors at
level 0, and links to them.
Node u finds the closest nodes s and y at each level ≥ 0,
s < u < y, such that
m(u)|(l + 1) = m(s)|(l + 1) = m(y)|(l + 1), if they exist, and
links to them at level l + 1.
Execute search from introducer to find max s < u
Initialize: l = 0
while true do
insert u in list at level l starting from s
scan backwards at level l to find s such that
m(s )|(l + 1) = m(u)|(l + 1)
if no such s exists then
exit
else
s = s
l = l+1
end
end
Algorithm 2: Algorithm 2: insert for a new node u.
Result 3: The insert operation in a skip graph S with n
nodes takes expected O(log n) messages and O(log n) time.
The delete algorithm
The delete operation is very simple. When node u wants to leave
the network, it deletes itself in parallel from all lists above level 0
and then deletes itself from level 0.
for l = 1 to u.maxLevel in parallel do
delete u from list at level l
delete u from list at level 0
end
Algorithm 3: Algorithm 3: delete for existing node u.
The delete algorithm continue...
Result 4: In the absence of concurrency, the delete operation
in a skip graph S with n nodes takes expected O(log n)
messages and O(1) time.
Applications
The skip graph as a peer-to-peer data storage system
A natural way to group data items is to let each server hold a
contiguous segment of the key space. Each server puts only one
element of that segment in the skip graph (this data item
effectively serves as the key of the skip graph node), and holds the
rest in some internal data structure (which allows range queries).
Now each node corresponds to a server in the system and not to a
data item, and the capability to range query the data set is
preserved.
Applications continue...
Fault tolerance
Skip graphs are highly resilient to random failure of nodes. The
expansion property of skip graphs gives the theoretical support to
these empirical findings.
Applications continue...
Load balancing
A server that wishes to join the skip graph performs a random walk
of length Ω(log n), recording the number of data items held by
each node it encounters.
Applications continue...
Locating highly replicated data items
A skip graph may serve as an excellent hybrid data structure; i.e.,
may serve as a structured and unstructured P2P system
simultaneously.
References
1. William Pugh. Skip Lists: A Probabilistic Alternative to
Balanced Trees. Communications of the ACM, 33(6):668676,
June 1990.
2. Aspnes, J. and Shah, G. 2003. Skip graphs. In Fourteenth
Annual ACM-SIAM Symposium on Discrete Algorithms.
384393.
3. Sukumar Ghosh. Distributed Systems: An Algorithmic
Approach. Page 374-376.
4. Gauri Shah. Ph.D. Thesis: Distributed Data Structures for
Peer-to-peer Systems. Department of Computer Science, Yale
University. Page 61-117.
References continue...
5. Aspnes, J. and Wieder, U. 2005. The expansion and mixing
time of skip graphs with applications. In Seventeenth Annual ACM
Symposium on Parallelism in Algorithms and Architectures.
126134.
Thank you!!!

More Related Content

What's hot (20)

PPTX
Address calculation-sort
Vasim Pathan
 
PDF
Data Structures & Algorithm design using C
Emertxe Information Technologies Pvt Ltd
 
PPTX
Data structures and algorithms
Hoang Nguyen
 
PPT
linked list (c#)
swajahatr
 
PDF
Doubly Link List
Kashif Memon
 
PPTX
linked list
Mohaimin Rahat
 
PDF
Linked List, Types of Linked LIst, Various Operations, Applications of Linked...
Balwant Gorad
 
PPTX
single linked list
Sathasivam Rangasamy
 
PPT
Ch 1 intriductions
irshad17
 
PPTX
Ppt on Linked list,stack,queue
Srajan Shukla
 
PPTX
Data structure using c module 1
smruti sarangi
 
PPTX
Linked stacks and queues
Ramzi Alqrainy
 
PPTX
Data structures
Edward Blurock
 
PDF
Data structure
Shahariar limon
 
PPTX
Data Structure -List Stack Queue
surya pandian
 
PPT
Data Structures- Part7 linked lists
Abdullah Al-hazmy
 
PPTX
Binary search
Raghu nath
 
PPTX
Linked list
FURQAN M LODHI
 
PPTX
Linked list
Muhammad Qasim
 
Address calculation-sort
Vasim Pathan
 
Data Structures & Algorithm design using C
Emertxe Information Technologies Pvt Ltd
 
Data structures and algorithms
Hoang Nguyen
 
linked list (c#)
swajahatr
 
Doubly Link List
Kashif Memon
 
linked list
Mohaimin Rahat
 
Linked List, Types of Linked LIst, Various Operations, Applications of Linked...
Balwant Gorad
 
single linked list
Sathasivam Rangasamy
 
Ch 1 intriductions
irshad17
 
Ppt on Linked list,stack,queue
Srajan Shukla
 
Data structure using c module 1
smruti sarangi
 
Linked stacks and queues
Ramzi Alqrainy
 
Data structures
Edward Blurock
 
Data structure
Shahariar limon
 
Data Structure -List Stack Queue
surya pandian
 
Data Structures- Part7 linked lists
Abdullah Al-hazmy
 
Binary search
Raghu nath
 
Linked list
FURQAN M LODHI
 
Linked list
Muhammad Qasim
 

Viewers also liked (16)

PPT
ADDICTED TO FASHION? "Fashion-Trends Addiction Brings Unexpected Blessing"
123JohnSmith123
 
PPTX
Beda Manusia dengan Hewan
Vanadia Link
 
PPTX
Akal
Vanadia Link
 
PPTX
2012 the second mouse gets the cheese
WyoDLC
 
PPTX
Kehormatan
Vanadia Link
 
PDF
Design and Implementation of Parallel and Randomized Approximation Algorithms
Ajay Bidyarthy
 
PDF
valentine's day catalog
Amit Rathore
 
PPTX
Ideologi & cara pandang
Vanadia Link
 
PPT
Misde
WyoDLC
 
PDF
DOW JONES INDUSTRIAL AVERAGE Time series Data Analysis: Analysis and Results ...
Ajay Bidyarthy
 
PDF
Solving Quadratic Assignment Problems (QAP) using Ant Colony System
Ajay Bidyarthy
 
PDF
Diseño presentación corporativa SENTIMOTO LTD
Marcel Molina Valenzuela
 
PPTX
Presentación de Lluis Font, CEO de Zyncro, en acens Cloudstage
Cloudstage | technology afterwork
 
PDF
Implementation of parallel randomized algorithm for skew-symmetric matrix game
Ajay Bidyarthy
 
PPTX
Honey pots
Alok Singh
 
PDF
Environmental clearance procedure in India: Principal of Governance
Ajay Bidyarthy
 
ADDICTED TO FASHION? "Fashion-Trends Addiction Brings Unexpected Blessing"
123JohnSmith123
 
Beda Manusia dengan Hewan
Vanadia Link
 
2012 the second mouse gets the cheese
WyoDLC
 
Kehormatan
Vanadia Link
 
Design and Implementation of Parallel and Randomized Approximation Algorithms
Ajay Bidyarthy
 
valentine's day catalog
Amit Rathore
 
Ideologi & cara pandang
Vanadia Link
 
Misde
WyoDLC
 
DOW JONES INDUSTRIAL AVERAGE Time series Data Analysis: Analysis and Results ...
Ajay Bidyarthy
 
Solving Quadratic Assignment Problems (QAP) using Ant Colony System
Ajay Bidyarthy
 
Diseño presentación corporativa SENTIMOTO LTD
Marcel Molina Valenzuela
 
Presentación de Lluis Font, CEO de Zyncro, en acens Cloudstage
Cloudstage | technology afterwork
 
Implementation of parallel randomized algorithm for skew-symmetric matrix game
Ajay Bidyarthy
 
Honey pots
Alok Singh
 
Environmental clearance procedure in India: Principal of Governance
Ajay Bidyarthy
 
Ad

Similar to Skip Graphs and its Applications (20)

PDF
Skiplists and Balanced Search : The Art of Multiprocessor Programming : Notes
Subhajit Sahu
 
PPT
02 linked list_20160217_jintaekseo
JinTaek Seo
 
PPTX
1.3 Linked List.pptx
ssuserd2f031
 
PPTX
Data Structure
HarshGupta663
 
PDF
Skipl List implementation - Part 1
Amrith Krishna
 
PPT
Operations on linked list
Sumathi Kv
 
PPTX
Asymptotic Notation and Data Structures
Amrinder Arora
 
PPT
Fundamentals of data structures
Niraj Agarwal
 
PDF
GRAPH MATRIX APPLICATIONS.pdf
DurgaPrasad736072
 
PDF
Graph Matrices and Application: Motivational overview, matrix of graph, relat...
Rajalingam Balakrishnan
 
PDF
Lec12
Atner Yegorov
 
PPTX
Arrays And Pointers in C programming language
Jasminelobo2
 
PPTX
Data Structure and Algorithm Lesson 2.pptx
JoannahClaireAlforqu
 
PPTX
PYTHON ALGORITHMS, DATA STRUCTURE, SORTING TECHNIQUES
vanithasivdc
 
PDF
DS Complete notes for Computer science and Engineering
RAJASEKHARV8
 
PDF
4 chapter3 list_stackqueuepart1
SSE_AndyLi
 
PPTX
Computer Network Assignment Help
Computer Network Assignment Help
 
PPTX
Data Structures Algorithms and Applications
harshavardhan543715
 
PDF
Daa chpater 12
B.Kirron Reddi
 
Skiplists and Balanced Search : The Art of Multiprocessor Programming : Notes
Subhajit Sahu
 
02 linked list_20160217_jintaekseo
JinTaek Seo
 
1.3 Linked List.pptx
ssuserd2f031
 
Data Structure
HarshGupta663
 
Skipl List implementation - Part 1
Amrith Krishna
 
Operations on linked list
Sumathi Kv
 
Asymptotic Notation and Data Structures
Amrinder Arora
 
Fundamentals of data structures
Niraj Agarwal
 
GRAPH MATRIX APPLICATIONS.pdf
DurgaPrasad736072
 
Graph Matrices and Application: Motivational overview, matrix of graph, relat...
Rajalingam Balakrishnan
 
Arrays And Pointers in C programming language
Jasminelobo2
 
Data Structure and Algorithm Lesson 2.pptx
JoannahClaireAlforqu
 
PYTHON ALGORITHMS, DATA STRUCTURE, SORTING TECHNIQUES
vanithasivdc
 
DS Complete notes for Computer science and Engineering
RAJASEKHARV8
 
4 chapter3 list_stackqueuepart1
SSE_AndyLi
 
Computer Network Assignment Help
Computer Network Assignment Help
 
Data Structures Algorithms and Applications
harshavardhan543715
 
Daa chpater 12
B.Kirron Reddi
 
Ad

Recently uploaded (20)

PDF
Key_Statistical_Techniques_in_Analytics_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
An Uncut Conversation With Grok | PDF Document
Mike Hydes
 
PDF
apidays Munich 2025 - The Double Life of the API Product Manager, Emmanuel Pa...
apidays
 
PPTX
Pipeline Automatic Leak Detection for Water Distribution Systems
Sione Palu
 
PDF
apidays Munich 2025 - Making Sense of AI-Ready APIs in a Buzzword World, Andr...
apidays
 
PDF
D9110.pdfdsfvsdfvsdfvsdfvfvfsvfsvffsdfvsdfvsd
minhn6673
 
PPTX
Solution+Architecture+Review+-+Sample.pptx
manuvratsingh1
 
PPTX
White Blue Simple Modern Enhancing Sales Strategy Presentation_20250724_21093...
RamNeymarjr
 
PDF
Classifcation using Machine Learning and deep learning
bhaveshagrawal35
 
PPTX
The whitetiger novel review for collegeassignment.pptx
DhruvPatel754154
 
PPTX
Introduction to Data Analytics and Data Science
KavithaCIT
 
PPTX
Introduction-to-Python-Programming-Language (1).pptx
dhyeysapariya
 
PPTX
Insurance-Analytics-Branch-Dashboard (1).pptx
trivenisapate02
 
PDF
SUMMER INTERNSHIP REPORT[1] (AutoRecovered) (6) (1).pdf
pandeydiksha814
 
PPT
Real Life Application of Set theory, Relations and Functions
manavparmar205
 
PPTX
7 Easy Ways to Improve Clarity in Your BI Reports
sophiegracewriter
 
PDF
apidays Munich 2025 - Integrate Your APIs into the New AI Marketplace, Senthi...
apidays
 
PDF
blockchain123456789012345678901234567890
tanvikhunt1003
 
PDF
WISE main accomplishments for ISQOLS award July 2025.pdf
StatsCommunications
 
PDF
apidays Munich 2025 - Developer Portals, API Catalogs, and Marketplaces, Miri...
apidays
 
Key_Statistical_Techniques_in_Analytics_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
An Uncut Conversation With Grok | PDF Document
Mike Hydes
 
apidays Munich 2025 - The Double Life of the API Product Manager, Emmanuel Pa...
apidays
 
Pipeline Automatic Leak Detection for Water Distribution Systems
Sione Palu
 
apidays Munich 2025 - Making Sense of AI-Ready APIs in a Buzzword World, Andr...
apidays
 
D9110.pdfdsfvsdfvsdfvsdfvfvfsvfsvffsdfvsdfvsd
minhn6673
 
Solution+Architecture+Review+-+Sample.pptx
manuvratsingh1
 
White Blue Simple Modern Enhancing Sales Strategy Presentation_20250724_21093...
RamNeymarjr
 
Classifcation using Machine Learning and deep learning
bhaveshagrawal35
 
The whitetiger novel review for collegeassignment.pptx
DhruvPatel754154
 
Introduction to Data Analytics and Data Science
KavithaCIT
 
Introduction-to-Python-Programming-Language (1).pptx
dhyeysapariya
 
Insurance-Analytics-Branch-Dashboard (1).pptx
trivenisapate02
 
SUMMER INTERNSHIP REPORT[1] (AutoRecovered) (6) (1).pdf
pandeydiksha814
 
Real Life Application of Set theory, Relations and Functions
manavparmar205
 
7 Easy Ways to Improve Clarity in Your BI Reports
sophiegracewriter
 
apidays Munich 2025 - Integrate Your APIs into the New AI Marketplace, Senthi...
apidays
 
blockchain123456789012345678901234567890
tanvikhunt1003
 
WISE main accomplishments for ISQOLS award July 2025.pdf
StatsCommunications
 
apidays Munich 2025 - Developer Portals, API Catalogs, and Marketplaces, Miri...
apidays
 

Skip Graphs and its Applications

  • 1. Skip Graphs and its Applications Ajay Shankar Bidyarthy [email protected] 09012305 Department of Mathematics October 15, 2012
  • 2. Topics to be covered Skip Lists Skip Graphs Search an existing node in a Skip Graphs Insert a new node in a Skip Graphs Delete an existing node from a Skip Graphs Skip Graphs Applications
  • 3. Skip Lists A skip list, introduced by Pugh in 1990, is a randomized balanced tree data structure organized as a tower of increasingly sparse linked lists. : Figure 1: A skip list with n = 6 nodes and log n = 3 levels.
  • 4. Skip Lists continue... In a doubly-linked skip list, each node stores a predecessor pointer and a successor pointer for each list in which it appears, for an average of 2 1−p pointers per node.
  • 5. To to search for a data x, start with the leftmost node at the highest level and follow these steps: Initialize: v = −∞ if v.right > x then Move to the lower level end if v.rigth < x then Move to the right end if v.right = x then Element found // Search fails when no lower level exist. end Algorithm 1: Distributed algorithm to search an element x in a skip graph.
  • 6. Skip Lists continue... Let N be the number of nodes in the respective graph. If the list is doubly linked, then the expected number of edges in the entire graph is 2N + N + N/2 + N/4 + ... = 4N. The average degree of per node is still a constant, but the routing latency is reduced to O(log N)
  • 7. Skip Graphs Skip graph is a generalization of skip list : Figure 2: A skip Graph with n = 6 nodes and log n = 3 levels.
  • 8. Skip Graphs continue... a skip graph is distinguished from a skip list is that there may be many lists at level i, and every node participates in one of these lists, until the nodes are splintered into singletons after O(log n) levels on average.
  • 9. Skip Graphs continue... Which lists a node x belongs to is controlled by a membership vector m(x). We think of m(x) as an infinite random word over some fixed alphabet, in practice, only an O(log n) length prefix of m(x) needs to be generated on average. The idea of the membership vector is that every linked list in the skip graph is labeled by some finite word w, and a node x is in the list labeled by w if and only if w is a prefix of m(x).
  • 10. Skip Graphs continue... Define A particular list Sw is part of level i if |w| = i. The bottom level is always a doubly-linked list S consisting of all nodes in order as shown in figure 2. A skip graph is precisely a family {Sw } of doubly-linked lists. Notation: If |w| > i, we write w|i for the prefix of w of length i
  • 11. Skip Grapsh Continue... Result 1: Let {Sw } be a skip graph with alphabet Σ. for any z ∈ Σ∞, the sequence S0, S1, S2, ..., where each Si = Sz|i , is a skip list with parameter p = |Σ|−1
  • 12. The search algorithm Denote the pointer to x’s successor and predecessor at level l as x.neighbor[R][l] and x.neighbor[L][l] respectively. Define xRl formally to be the value of x.neighbor[R][l], if x.neighbor[R][l] is a non-nil pointer to a non-faulty node, and ⊥ otherwise. Define xLl similarly.
  • 13. The search algorithm continue... The variables stored at each node is presented in Table I. Variable Type key Resource Key neighbor[R] Array of successor pointers neighbor[L] Array of predecessor pointers m Membership vector maxLevel Integer deleteFlag Boolean Table: List of all the variables stored at each node.
  • 14. Upon receiving (searchOp, startNode, searchKey, level) // If the current key is the search key, return if (v.key = searchKey) then send (foundOp, v) to startNode end // Coming from left, current key is less than search key if (v.key < searchKey) then // Go one level down till a right neighbor with key smaller than the search key is reached while level ≥ 0 do if ((v.neighbor[R][level]).key ≤ searchKey) then send (searchOp, startNode, searchKey, level) to v.neighbor[R][level] break else level = level - 1 end end else // Coming from right, current key is greater than search key while level ≥ 0 do // Go one level down till a left neighbor with key larger than the search key is reached if ((v.neighbor[L][level]).key ≥ searchKey) then send (searchOp, startNode, searchKey, level) to v.neighbor[L][level break else level = level - 1 end end end // Reached the bottom-most level, key is not found if (level < 0) then send (notFoundOp, v) to startNode end Algorithm 1: Algorithm 1: search for node v.
  • 15. The search algorithm continue.... Result 2: The search operation in a skip graph S with n nodes takes expected O(log n) messages and O(log n) time.
  • 16. The insert algorithm A new node u knows some introducing node v in the network that will help it to join the network. Node u inserts itself in one linked list at each level till it finds itself in a singleton list at the topmost level. The insert operation consists of two stages: Node u starts a search for itself from v to find its neighbors at level 0, and links to them. Node u finds the closest nodes s and y at each level ≥ 0, s < u < y, such that m(u)|(l + 1) = m(s)|(l + 1) = m(y)|(l + 1), if they exist, and links to them at level l + 1.
  • 17. Execute search from introducer to find max s < u Initialize: l = 0 while true do insert u in list at level l starting from s scan backwards at level l to find s such that m(s )|(l + 1) = m(u)|(l + 1) if no such s exists then exit else s = s l = l+1 end end Algorithm 2: Algorithm 2: insert for a new node u.
  • 18. Result 3: The insert operation in a skip graph S with n nodes takes expected O(log n) messages and O(log n) time.
  • 19. The delete algorithm The delete operation is very simple. When node u wants to leave the network, it deletes itself in parallel from all lists above level 0 and then deletes itself from level 0. for l = 1 to u.maxLevel in parallel do delete u from list at level l delete u from list at level 0 end Algorithm 3: Algorithm 3: delete for existing node u.
  • 20. The delete algorithm continue... Result 4: In the absence of concurrency, the delete operation in a skip graph S with n nodes takes expected O(log n) messages and O(1) time.
  • 21. Applications The skip graph as a peer-to-peer data storage system A natural way to group data items is to let each server hold a contiguous segment of the key space. Each server puts only one element of that segment in the skip graph (this data item effectively serves as the key of the skip graph node), and holds the rest in some internal data structure (which allows range queries). Now each node corresponds to a server in the system and not to a data item, and the capability to range query the data set is preserved.
  • 22. Applications continue... Fault tolerance Skip graphs are highly resilient to random failure of nodes. The expansion property of skip graphs gives the theoretical support to these empirical findings.
  • 23. Applications continue... Load balancing A server that wishes to join the skip graph performs a random walk of length Ω(log n), recording the number of data items held by each node it encounters.
  • 24. Applications continue... Locating highly replicated data items A skip graph may serve as an excellent hybrid data structure; i.e., may serve as a structured and unstructured P2P system simultaneously.
  • 25. References 1. William Pugh. Skip Lists: A Probabilistic Alternative to Balanced Trees. Communications of the ACM, 33(6):668676, June 1990. 2. Aspnes, J. and Shah, G. 2003. Skip graphs. In Fourteenth Annual ACM-SIAM Symposium on Discrete Algorithms. 384393. 3. Sukumar Ghosh. Distributed Systems: An Algorithmic Approach. Page 374-376. 4. Gauri Shah. Ph.D. Thesis: Distributed Data Structures for Peer-to-peer Systems. Department of Computer Science, Yale University. Page 61-117.
  • 26. References continue... 5. Aspnes, J. and Wieder, U. 2005. The expansion and mixing time of skip graphs with applications. In Seventeenth Annual ACM Symposium on Parallelism in Algorithms and Architectures. 126134.