/
update update

update - PowerPoint Presentation

lindy-dunigan
lindy-dunigan . @lindy-dunigan
Follow
378 views
Uploaded On 2016-06-16

update - PPT Presentation

1 Persistent Data Structures Version Control v 0 v 1 v 2 v 3 v 4 v 5 v 6 Ephemeral query v 0 v 1 v 2 v 3 v 4 v 5 v 6 Partial persistence query only ID: 364143

version persistence data updates persistence version updates data query update structures amp node partial persistent field2 field1 amortized full

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "update" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

update

1

Persistent

Data

Structures

(Version

Control)

v0

v1

v2

v3

v4

v5

v

6

Ephemeral

query

v

0

v

1

v

2

v

3

v

4

v

5

v

6

Partial

persistence

query

only

update

& query

v

0

v1

v2

v3

v4

v6

Full

persistence

updates

at leavesany version can be copiedquery all versions

v

5

v

0

v

1

v

2

v

3

Confluently

persistence

update/merge/query

all versions

v

5

Purely

functional

car cdr

never

modify

only create new pairsonly DAGs

Retroactive

v

0

v

1

v2

v3

v4

update

&

query

all versions

updates in the past propragate

version DAG

version

tree

version

listSlide2

2

Planar

Point Location

T

1

T

2

T

3

T

4

T

5

T

6

T

7

update

Partial

persistent

search

trees

O(

n∙log

n)

preprocessing

, O(log n)

querySlide3

3

Path

copying

(

trees

)

c

a

f

d

g

c

f

e

root

pointerSlide4

Partial

persistenceVersion ID = time = 0,1,2,...

Fast node (any data structure

)record all updates in node

(version,value) pairs

field updates O(1)field queries  predecessor wrt version id (search tree/vEB)Node copying (O(1) degree data

structures)Persistent node = collection of nodes,

each valid for an interval of versions, with  extra updates,  = max indegree

pointers must have subinterval of the node pointing to; otherwise copy and

insert pointers (cacading copying)NB: Needs to keep

track of back-pointers4

field1:

(0,x) (3,y)

field

2:

(0,a) (7,c)

field

1:

(8,z) (10,w)

field2:

(8,c)

(9,d)

field

1:

(13,w) (q5,y)field2

:(13,e) (14,c)

[0,8[ [8,13[ [13,

[field1:

(0,x) (3,y) (7,z)

field2:

(0,a)

(14,c) (16,b)Slide5

Fat node Updates (1,x) (6,y) (7,z) to a field

Queries = binary search

among versionsUpdate (7,z): Insert 7 as leftmost

child of 4; insert pairs for 7 and 5=succ(7) Node splitting (≥2 ekstra

fields)

5

Full persistence

1

4

32

6

5

7

1

4

3

2

6

5

7

Version

tree

(

numbers

= version ids)

Version list

(

order maintenance

data structure)

preorder traversal

field:

(1,x) (7,z) (5,x)

(6,y) (2,x)

increasing

version

field

1

: (1,a) (4,b) (3,a) (2,c)

field2: (1,f) (7,g) (5,f)

[0,[

[4,3

[

field1: (1,a) (4,b)

field2: (1,f) (7,g)

field

1: (5,b) (3,a) (2,c)

field2: (5,f)

split

version 5

[

0,5[[5,[[4,5[

[5,3[Slide6

[N. Sarnak, R.E.

Tarjan, Planar point location using persistent search trees, Communications of the ACM, 29(7), 669-679, 1986]

Partial persistence, trees, O(1)

access, amortized O(1) update

[J.R. Driscoll, N. Sarnak, D.D. Sleator

, R.E. Tarjan, Making Data Structures Persistent, Journal of Computer and System Sciences, 38(1), 86-124, 1989]

Partial & full persistence, O(1) degree data structures, O(1) access, amortized O(1) update[P.F. Dietz, R. Raman,

Persistence, Amortization and Randomization. Proceedings 2nd Annual ACM-SIAM Symposium on Discrete Algorithms, 78-88, 1991]

[G.S. Brodal, Partially Persistent Data Structures of Bounded Degree with Constant Update Time, Nordic Journal of Computing, volume 3(3), pages 238-255, 1996]Partial persistence

, O(1) degree data structures, O(1) access & updates

update[P.F. Dietz, Fully Persistent Arrays. Proceedings 1st Workshop on Algorithms and Data Structures, LNCS 382, 67-74, 1989]

Full persistence, RAM structures, O(loglog n) access

, O(loglog n) amortized expected updates

6

Persistence techniquesSlide7

Comparison of persistence

techniquesCopy data

structure for each version no

query overhead, slow updates

& wastes a

lot of space

Record updates & keep current versionfast updates & queries to current version, space efficient, slow queries in the past

Path copyingapplies to trees, no

query overhead, space overhead = depth of

updateFat node partial persistence: O(1) updates

and space optimal, loglog n query overhead

full persistence: O(loglog n)

expected amortized updates and space

optimal, loglog n query

overheadNode copying/splittingfast

updates & queries (

amortized updates for full

persistence)only

works for pointer-based structures

with O(1) degree

7