the persistent professor a. tsakalidis...list order maintenance . . . x y z w . . . 12 13 1814 15...
TRANSCRIPT
The Persistent Professor A.
Tsakalidis
Konstantinos Tsichlas Student of Prof. A. Tsakalidis Ass. Professor, CSD, A.U.Th.
ARISTOTLE UNIVERSITY OF THESSALONIKI
DEPARTMENT OF INFORMATICS
DATA SCIENCE AND ENGINEERING LAB
List Order Maintenance
A. Tsakalidis. Maintaining Order in a Generalized Linked List. Acta Informatica, 21(1):101-112, 1984.
. . . x y z w . . .
U
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 . . . . . .
x y z w
Query: Is x before y? Is label(x) < label(y)?
label(x)=15
Update: Insert x1 after y label(y) < label(x1) < label(z)
List Order Maintenance
. . . x y z w . . .
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 . . . . . .
x y z w
x1
Insert(y, x1)
Insert(x1, x2)
x2
Insert(x2, x3)??? Needs relabeling…
A. Tsakalidis. Maintaining Order in a Generalized Linked List. Acta Informatica, 21(1):101-112, 1984.
List Order Maintenance
. . . x z w . . .
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 . . . . . .
x1
Insert(y, x1)
Insert(x1, x2)
x2
Insert(x2, x3)??? Needs relabeling…
y
Query: O(1) w.c. Insert: O(1) amortized
A. Tsakalidis. Maintaining Order in a Generalized Linked List. Acta Informatica, 21(1):101-112, 1984.
Persistence
J.R. Driscoll, N. Sarnak, D. Sleator and R.E. Tarjan. Making Data Structures Persistent. Journal of Computer & System Sciences, 38(1):86-124, 1989.
How to keep the history of a data structure?
How to “move” data without replication?
Persistence List Order
Maintenance
Making External Memory Data Structures Persistent
Range Maxima in External Memory
Graph History in a Distributed Environment
The DAM (Disk Access Model)
• Counting blocks between 2
levels of memory (cost measure for complexity)
• Models the main bottleneck
• Very Successful l (simplicity)
Limitations
• Parameters B and M are known beforehand
• It does not say anything about multilevel hierarchical memories
• Does not support dynamic M
CPU
RAM
DISK
I/O
M
B
Aggarwal and Vitter 1988
Making External Data Structures Fully Persistent
Focus on dynamic B-trees (although it work for any external memory structure under certain general assumptions):
1. An ephemeral B-tree maintains
the most recent set of elements 2. A partially persistent B-tree
maintains all history of the set of elements as they change
3. A fully persistent B-tree allows for alternate histories
C
1 2 3 4
1 2 3
4 5
6
G.S. Brodal, S. Sioutas, K. Tsakalidis and K. Tsichlas. Fully Persistent B-trees. SODA, pp. 602-614, 2012.
Previous Work – Our Result
Update Cost Range Query
Best Previous
Result
Our Result
nO B
2log
m
B
tnO BB loglog
BnO B 2loglog
B
tnO Blog
Not optimal – related to order maintenance
Our Solution
Fully Persistent B-
tree
Version Tree
v
What is the nearest version to i in v? Cost: log2B
Search(version i, element x)
u What is the nearest version to i in u?
Cost: log2B
We make is O(1) by using ideas from fractional
cascading
Order Maintenance
Range Maxima in Secondary Memory
C. Kejlberg-Rasmussen, Y. Tao, K. Tsakalidis, K. Tsichlas and J. Yoon. I/O-efficient
planar range skyline and attrition priority queues. PODS, pp. 103-114, 2013.
Ideas
1. A B-tree holds all points sorted by x-coordinate.
2. The points in each leaf are structured as a Priority Queue with attrition based on the y-coordinate.
3. For each internal node we persistently concatenate all the PQAs from right to left.
4. All the non-attrited points of the root are the maxima
Looking Deeper…
x
y
Tree
node
PQA PQA
PQA PQAs at the children are
destroyed!!!
Replication is very expensive.
Persistence comes to the rescue.
A. Kosmatopoulos, K. Tsichlas, A. Gounaris, S. Sioutas and E. Pitoura. HiNode: an asymptotically space-optimal storage model for historical queries on graphs. Distributed and Parallel Databases, 35(3-4):249-285, 2017.
Storing the History of Graphs
Query: What is the impact of Aristotle (in terms of some measure of centrality) during the 18th century?
Previous Solutions: Snapshots and Logging
Snapshots: The network as it is at some particular time
instance.
Logging: Keeping the update operations between successive
snapshots.
Snapshot at time 0
Updates 1,2,…,k
Snapshot at time k
Snapshot at time m
Why not use Persistence ?
A GOOD STUDENT ALWAYS TRIES TO BEST HIS TEACHER.
A GOOD TEACHER ASPIRES HIS STUDENTS TO DO SO.
(IN OUR CASE WE HAVE A VERY
LONG WAY TO GO )
Loneliness, 1982