persistent data structures version control
play

Persistent Data Structures (Version Control) Partial Partial Full - PowerPoint PPT Presentation

Persistent Data Structures (Version Control) Partial Partial Full Full Confluently Confluently Purely Purely Ephemeral persistence persistence persistence functional version version version v 0 v 0 v 0 v 0 list tree DAG car cdr


  1. Persistent Data Structures (Version Control) Partial Partial Full Full Confluently Confluently Purely Purely Ephemeral persistence persistence persistence functional version version version v 0 v 0 v 0 v 0 list tree DAG car cdr update update never modify v 1 v 1 v 1 v 2 v 1 only create new pairs only DAGs v 2 2 v 2 v 2 v 3 v 6 v 3 query only v v 3 v 3 v v v 4 v 5 v v v 5 y update/merge/query updates at leaves all versions v 4 v 4 any version can be copied query all versions query all versions Retroactive v 5 v 5 v 0 v v v 1 v v 2 v v 3 v v 4 v 6 v 6 update & query all versions update updates in the past propragate 1 query & query

  2. Planar Point Location T 1 T 2 T 3 T 4 T 5 T 6 T 7 Partial persistent update search trees search trees O(n ∙ log n) preprocessing, O(log n) query 2

  3. Path copying (trees) root pointer c c a f f d d e e g 3

  4. Partial persistence � Version ID = time = 0,1,2,... � Version ID time 0 1 2 � Fast node (any data structure) ( y ) field 1 : (0,x) (3,y) (7,z) – record all updates in node (version,value) pairs field 2 : (0,a) (14,c) (16,b) – field updates O(1) – field queries ≡ predecessor wrt version id (search tree/vEB) fi ld i d i id ( h / ) � Node copying (O(1) degree data structures) – Persistent node = collection of nodes, each valid for an P i t t d ll ti f d h lid f interval of versions, with Δ extra updates, Δ = max indegree – pointers must have subinterval of the node pointing to; otherwise copy and insert pointers (cacading copying) otherwise copy and insert pointers (cacading copying) NB: Needs to keep track of back ‐ pointers [0,8[ [8,13[ [13, ∞ [ field 1 : (0,x) (3,y) field 1 : (8,z) (10,w) field 1 : (13,w) (q5,y) field 2 : (0,a) (7,c) field 2 : (8,c) (9,d) field 2 : (13,e) (14,c) 4

  5. Full persistence 1 1 4 3 2 increasing 1 4 7 5 3 6 2 version preorder traversal d l Version list i li 7 5 6 (order maintenance data structure) Version tree (numbers version ids) (numbers = version ids) � Fat node – Updates (1,x) (6,y) (7,z) to a field p ( , ) ( ,y) ( , ) field: (1,x) (7,z) (5,x) (6,y) (2,x) ( , ) ( , ) ( , ) ( ,y) ( , ) – Queries = binary search among versions – Update (7,z): Insert 7 as leftmost child of 4; insert pairs for 7 and 5=succ(7) � Node splitting ( ≥ 2 Δ ekstra fields) [5,3[ [4,3[ [4,5[ [5, ∞ [ [0, ∞ [ [0,5[ [ [ [ [ [ , [ split field 1 : (1,a) (4,b) field 1 : (1,a) (4,b) (3,a) (2,c) field 1 : (5,b) (3,a) (2,c) field 2 : (1,f) (7,g) field 2 : (1,f) (7,g) (5,f) field 2 : (5,f) 5 version 5

  6. Persistence techniques [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 p , , ( ) , ( ) p [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] � P Partial & full persistence, O(1) degree data structures, O(1) access, i l & f ll i O(1) d d O(1) 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] 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 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

  7. Comparison of persistence techniques � Copy data structure for each version – no query overhead, slow updates & wastes a lot of space � Record updates & keep current version – fast updates & queries to current version, space efficient, slow queries in the past � Path copying – applies to trees, no query overhead, space overhead = depth of update � Fat node Fat 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 overhead � Node copying/splitting – fast updates & queries (amortized updates for full persistence) – only works for pointer ‐ based structures with O(1) degree y p ( ) g 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend