A Deadlock-free Multi-granular, Hierarchical Locking Scheme for Real-time Collaborative Editing. Jon A. Preston Sushil K. Prasad
|
|
- Kellie Doris Sullivan
- 5 years ago
- Views:
Transcription
1 A Deadlock-free Multi-granular, Hierarchical Locking Scheme for Real-time Collaborative Editing Jon A. Preston Sushil K. Prasad
2 Agenda Motivation Related Work in Collaborative Editing Systems The Tree Data Structure Properties and Algorithms InsertUser (with demotion RemoveUser (with promotion Conclusions and Future Work 2of 25
3 Motivation Collaborative Editing Systems (CES concurrency control falls into two approaches Optimistic Pessimistic Our scheme is a hybrid of these approaches Avoid transformation/merge problems of optimistic Provide high level of concurrency/access Locking is automatic (transparent to user 3of 25
4 Related Work Increase parallelism in software engineering [10] and avoid bottleneck of traditional CMS [3] Avoids explicit turn-taking or system-specific approach [1], [11], and [12] Transparent to user [4], [5], [6], and [13] Avoids the merge problem [8] Provides multi-granular, hierarchical locking [7] Flexible, open-systems, Web-services based approach [2], [14] and [15] 4of 25
5 The Tree Structure Structure denotes sections and sub-sections Only leaf nodes contain satellite data All access requests from client will reference a specific leaf node (as the client knows only of document content, not tree Nodes store ownership/lock information If a section of the document is owned by a user u, then all subsections (i.e. child nodes in the tree are also owned by the same user u. Similarly, if a section of the document is not owned by any user, then all subsections (i.e. child nodes in the tree are also not owned by any. 5of 25
6 Mappings It is possible to map a document to a tree and from this tree to a binary tree Without loss of generality, our algorithms work on this binary tree Title (t artif Paragraph A (p a Title A1 (t a1 Paragraph A1 (p a1 Paragraph A11 (p a11 Paragraph A12 (p a12 Paragraph A2 (p a2 Paragraph A3 (p a3 Paragraph B (p b t artif p a p b t a1 p a1 p a2 p a11 p a12 p a3 t artif p a t a1 p a1 p a11 p b p a12 p a2 p a3 6of 25
7 Maintaining the Largest Sub-tree It is desirable to own the largest sub-tree possible Can keep cached changes local Reduces network messaging Only give up an owned portion of the tree when another user enters and injects contention (demotion 7of 25
8 Enter/Leave Document To clarify, we assume Users can enter and leave the document at any time To move from one section of the document to another, leave current section and enter new section (leave and reenter document This is seamless/transparent to the user (i.e. the system removes and re-adds the user without informing the user Issues of performance and cache optimization are still open for our research 8of 25
9 Concurrent Reading/Sharing As with other CES/CSCW systems, sharing is permissible This paper/presentation addresses exclusive write access Certainly, concurrent read access is permissible Updating the view of read-only clients upon a change would occur as it does in other systems 9of 25
10 Path Finding Since each node is uniquely identified, it is always possible to know the path to a node in the tree Left = 0 Right = 1 Node of 25
11 The Node Structure The node structure contains Left and right children Sibling Color (white, black, grey Owner (if black, what user owns this sub-tree Original Request (what sub-tree node was requested to cause ownership of this node 11 of 25
12 Coloring White Unowned All sub-tree nodes are white logically Black Owned All sub-tree nodes are black logically Grey Grey-color 2 There must exist 2 black nodes in the sub-trees Possible grey configurations: 12 of 25
13 Algorithms Deadlock-free Always traverse top to bottom [9] Handshake lock Acquire node Acquire node s child Release node Insert User Remove User 13 of 25
14 InsertUser User u i requests lock on node w All nodes in the path from t to v must be grey If white, lock higher If black, lock fails Increase grey-color in path If contention on w Demote w If w is leaf undo inflated grey color β α t v InsertUser(w w α β t v w 14 of 25
15 InsertUser - Demotion At times, demotion is necessary When the top-to-bottom access encounters a black node Push the ownership down (if a leaf, fail Requires that we maintain originalrequest (i.e., why is this node black t t Paint node grey Recursion if we push along the same path to requested node α u 2 v InsertUser(w, u 1 α v u 2 u 1 15 of 25 x w x w
16 16 of 25 InsertUser InsertUser(w, u i if w.owner u i RecurseInsert(root, w, u i RecurseInsert(n, w, u i if n.color = white // ensures we always acquire largest lock then SetOwner(n, u i, w else if n is a leaf node // a leaf node but not white, so failed insert (i.e. we can t demote a leaf then RecurseRemove(root, w, u i // undo the false insert s effect on greycolors return failure else if n.color = grey // keep looking down then n.greycolor = n.greycolor + 1 else RecurseInsert(NextInPath(n, w, w, u i // color of node in path to w is black, so we must demote it b = NextInPath(n, w a = NextInPath(n, n.originalrequest SetOwner (a, n.owner, n.originalrequest // demote n to a n.color = grey n.greycolor = 2 if a b SetOwner(w, u i, r w.color = black w.owner = u i w.originalrequest = r then else SetOwner (b, u i, w // the nodes are in separate paths RecurseInsert(b, w, u i // the nodes are in the same path
17 RemoveUser User u i releases lock on node w All nodes in the path from t to v must be grey If white, lock higher If black, release higher Decrease grey-color in path Promote if possible when grey-color goes from 2 to 1 17 of 25
18 RemoveUser Cases With promotion Without promotion 2 t RemoveUser(w 1 t u i v u j w u i v w 3 t RemoveUser(w 2 t Promote(v 2 v w 2 v w u i t v w 18 of 25
19 RemoveUser Promotion When grey-color reduces from 2 to 1, promote 4 3 v v 2 2 RemoveUser(w, u1 2 u w u 2 u 1 19 of 25
20 RemoveUser RemoveUser(w, u i if w.owner = u i then RecurseRemove(root, w, u i RecurseRemove(n, w, u i if n.color = black and n.owner = u i then ReleaseOwner(n else if n.color = grey // keep looking down then n.greycolor = n.greycolor 1 if n.greycolor = 1 and w.sibling.color = black // sibling promotion priority then SetOwner(n, w.sibling.owner, w.sibling else if n.greycolor = 1 and w.color = black // w must be all that remains then SetOwner(n, w.owner, w else if n.greycolor = 0 and // paint n white as w and w.sibling are white then ReleaseOwner(n else RecurseRemove(NextInPath(n,w, w, u i ReleaseOwner(w w.color = white w.owner = NIL w.originalrequest = NIL 20 of 25
21 RemoveUser Special Cases If an insertion failed, then we invoke a RemoveUser to reduce the artificially-inflated grey-count along the path from root to desired node It is possible that legitimate removals occurred between the time of the failed insertion and the concomitant removal (to compensate for the failed insertion Consequently, the grey-count of a node can fall to 1 Promote sibling or the node associated with the failed insert Additionally, the grey-count of a node could fall to 0 Promote nothing (everything is now removed below this node Paint this node white 21 of 25
22 Analysis RemoveUser makes a single pass of the tree from top to bottom O(h where h is equal to the height of the tree. InsertUser can fail and require an undo of the artificially-inflated grey-colors (via a call to RemoveUser Thus at most two passes of the tree from top to bottom Also O(h where h is equal to the height of the tree Promotion occurs in O(1 because we know the sibling is to be promoted (or in the special cases, the failed insert node is promoted or nothing is promoted 22 of 25
23 Conclusion Contributes hybrid concurrency policy to the field of CSCW/CES Deadlock-free Multi-granular, hierarchical locking Maximizes sub-tree owned Minimizes messaging/communication Insert and remove algorithms efficient O(h Promotion is efficient O(1 23 of 25
24 Future Work Address tree modification Insert obtain lock on parent, then insert below Delete obtain lock on node and remove Split obtain lock on node and create children Join obtain lock on both nodes and combine Move this is a delete + insert Simulation in progress Further define cache policies for concurrent readers Place into larger framework of open-system, Web services based architecture and simulate editing 24 of 25
25 References 1. Netbeans Collaboration Project. Sun Microsystems. Viewed August, V. Bharadwaj and Y.V. R. Reddy. A Framework to Support Collaboration in Heterogeneous Environments. SIGGROUP Bulletin. Vol 24, No 3. December pp M. Chu-Carroll, J. Wright, and D. Shields. Supporting Aggregation in Fine Grained Software Configuration Management. SIGSOFT 2002/FSE-10. Charleston, SC. November M. Chu-Carroll and S. Sprenkle. Coven: Brewing Better Collaboration through Software Configuration Management. SIGSOFT San Diego, CA. November C. Ellis and S. Gibbs. Concurrency Control in Groupware Systems. In Proceedings of ACM SIGMOD Conference on Management of Data, pages ACM Press, May S. Greenberg and D. Marwood. Real Time Groupware as a Distributed System: Concurrency Control and its Effect on the Interface. In Proceedings ACM Conferences on Computer Supported Cooperative Work, pages ACM Press, Nov B. Magnusson, U. Asklund, S. Minör. Fine-Grain Revision Control for Collaborative Development. Proceedings of ACM SIGSOFT 93. Los Angeles, CA. December J. Munson and P. Dewan. A Concurrency Control Framework for Collaborative Systems. Proceedings Computer Supported Cooperative Work, pages ACM Press, Nov V. N. Rao and V. Kumar. Concurrent Access of Priority Queues. IEEE Transactions on Computers. Vol 37, No 12. pp C. O Reilly. A Weakly Constrained Approach to Software Change Coordination. In Proceedings of the 26th International Conference on Software Engineering H. Shen, C. T. Cheong, and C. Sun. CoStarOffice: Toward a Flexible Platform-independent Collaborative Office System. IWCES D. Sun, S. Xia, C. Sun, and D. Chen. Operational Transformation for Collaborative Word Processing. CSCW 04. Chicago, IL. November CHI Letters. Vol 6, Issue 3. pp A.van der Hoek, D. Redmiles, P. Dourish, A. Sarma, R. S. Filho, and C. de Souza. Continuous Coordination: A New Paradigm for Collaborative Software Engineering Tools. Workshop on Directions in Software Engineering Environments. ICSE Y. Yang and D. Li. Separating Data and Control: Support for Adaptable Consistency Protocols in Collaborative Systems. Proceedings of CSCW 04. Chicago, IL. November CHI Letters. Vol 6, Issue 3. pp M. Younas and R. Iqbal. Developing Collaborative Editing Applications using Web Services. IWCES B. P. Zeigler and H.S. Sarjoughian. Introduction to DEVS Modeling & Simulation with JAVA: Developing Component-based Simulation Models. Technical Document, University of Arizona of 25
P2P Document Tree Management in a Real-Time Collaborative Editing System
P2P Document Tree Management in a Real-Time Collaborative Editing System Jon A Preston and Sushil K Prasad Department of Computer Science Georgia State University Atlanta, GA jon.preston@acm.org and sprasad@gsu.edu
More informationSimulation-based Architectural Design and Implementation of a Real-time Collaborative Editing System
Simulation-based Architectural Design and Implementation of a Real-time Collaborative Editing System Jon A Preston, Xiaolin Hu, and Sushil K Prasad Department of Computer Science Georgia State University
More informationMulti-way Search Trees. (Multi-way Search Trees) Data Structures and Programming Spring / 25
Multi-way Search Trees (Multi-way Search Trees) Data Structures and Programming Spring 2017 1 / 25 Multi-way Search Trees Each internal node of a multi-way search tree T: has at least two children contains
More informationMulti-way Search Trees
Multi-way Search Trees Kuan-Yu Chen ( 陳冠宇 ) 2018/10/24 @ TR-212, NTUST Review Red-Black Trees Splay Trees Huffman Trees 2 Multi-way Search Trees. Every node in a binary search tree contains one value and
More information2-3 and Trees. COL 106 Shweta Agrawal, Amit Kumar, Dr. Ilyas Cicekli
2-3 and 2-3-4 Trees COL 106 Shweta Agrawal, Amit Kumar, Dr. Ilyas Cicekli Multi-Way Trees A binary search tree: One value in each node At most 2 children An M-way search tree: Between 1 to (M-1) values
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2008S-19 B-Trees David Galles Department of Computer Science University of San Francisco 19-0: Indexing Operations: Add an element Remove an element Find an element,
More informationFlexible Collaboration over XML Documents
Flexible Collaboration over XML Documents Claudia-Lavinia Ignat and Moira C. Norrie Institute for Information Systems, ETH Zurich CH-8092 Zurich, Switzerland {ignat,norrie}@inf.ethz.ch Abstract. XML documents
More informationA Novel Concurrency Control Algorithm in Distributed Groupware
Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'2000), pages 1551-1557, Las Vegas, NV, June 2000. A Novel Concurrency Control Algorithm
More informationExtending real-time collaborative editing systems with asynchronous communication
Extending real-time collaborative editing systems with asynchronous communication Claudia-Lavinia Ignat and Moira C. Norrie Institute for Information Systems, ETH Zurich {ignat,norrie}@inf.ethz.ch Abstract
More informationDesign and Analysis of Algorithms Lecture- 9: B- Trees
Design and Analysis of Algorithms Lecture- 9: B- Trees Dr. Chung- Wen Albert Tsao atsao@svuca.edu www.408codingschool.com/cs502_algorithm 1/12/16 Slide Source: http://www.slideshare.net/anujmodi555/b-trees-in-data-structure
More informationDistributed File System
Rochester Institute of Technology Distributed File System MS Project Proposal By: Swarup Datta sxd2009@cs.rit.edu Chairman: Dr. Hans-Peter Bischof Reader: Dr. James E. Heliotis 1 of 16 Abstract Ad hoc
More informationAlgorithms. Deleting from Red-Black Trees B-Trees
Algorithms Deleting from Red-Black Trees B-Trees Recall the rules for BST deletion 1. If vertex to be deleted is a leaf, just delete it. 2. If vertex to be deleted has just one child, replace it with that
More informationvoid insert( Type const & ) void push_front( Type const & )
6.1 Binary Search Trees A binary search tree is a data structure that can be used for storing sorted data. We will begin by discussing an Abstract Sorted List or Sorted List ADT and then proceed to describe
More informationMotivation for B-Trees
1 Motivation for Assume that we use an AVL tree to store about 20 million records We end up with a very deep binary tree with lots of different disk accesses; log2 20,000,000 is about 24, so this takes
More informationChapter 20: Binary Trees
Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other
More informationDatabase Management Systems
Database Management Systems Concurrency Control Doug Shook Review Why do we need transactions? What does a transaction contain? What are the four properties of a transaction? What is a schedule? What is
More informationCopyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
B-Trees Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Motivation for B-Trees So far we have assumed that we can store an entire data structure in main memory.
More information13.4 Deletion in red-black trees
The operation of Deletion in a red-black tree is similar to the operation of Insertion on the tree. That is, apply the deletion algorithm for binary search trees to delete a node z; apply node color changes
More informationCIMES: a Collaborative Image Editing System for Pattern Design
CIMES: a Collaborative Image Editing System for Pattern Design Xianghua Xu, Jiajun Bu, Chun Chen and Yong Li College of Computer Science, Zhejiang University, Hangzhou 310027, China {xuxh_cs, bjj, chenc,
More informationCS127: B-Trees. B-Trees
CS127: B-Trees B-Trees 1 Data Layout on Disk Track: one ring Sector: one pie-shaped piece. Block: intersection of a track and a sector. Disk Based Dictionary Structures Use a disk-based method when the
More informationECE 242 Data Structures and Algorithms. Heaps I. Lecture 22. Prof. Eric Polizzi
ECE 242 Data Structures and Algorithms http://www.ecs.umass.edu/~polizzi/teaching/ece242/ Heaps I Lecture 22 Prof. Eric Polizzi Motivations Review of priority queue Input F E D B A Output Input Data structure
More informationCS F-11 B-Trees 1
CS673-2016F-11 B-Trees 1 11-0: Binary Search Trees Binary Tree data structure All values in left subtree< value stored in root All values in the right subtree>value stored in root 11-1: Generalizing BSTs
More informationHeaps Outline and Required Reading: Heaps ( 7.3) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic
1 Heaps Outline and Required Reading: Heaps (.3) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic Heap ADT 2 Heap binary tree (T) that stores a collection of keys at its internal nodes and satisfies
More information2-3 Tree. Outline B-TREE. catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } ADD SLIDES ON DISJOINT SETS
Outline catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } Balanced Search Trees 2-3 Trees 2-3-4 Trees Slide 4 Why care about advanced implementations? Same entries, different insertion sequence:
More informationData Abstractions. National Chiao Tung University Chun-Jen Tsai 05/23/2012
Data Abstractions National Chiao Tung University Chun-Jen Tsai 05/23/2012 Concept of Data Structures How do we store some conceptual structure in a linear memory? For example, an organization chart: 2/32
More informationCISC 235: Topic 4. Balanced Binary Search Trees
CISC 235: Topic 4 Balanced Binary Search Trees Outline Rationale and definitions Rotations AVL Trees, Red-Black, and AA-Trees Algorithms for searching, insertion, and deletion Analysis of complexity CISC
More informationUses for Trees About Trees Binary Trees. Trees. Seth Long. January 31, 2010
Uses for About Binary January 31, 2010 Uses for About Binary Uses for Uses for About Basic Idea Implementing Binary Example: Expression Binary Search Uses for Uses for About Binary Uses for Storage Binary
More informationSemantic Preservation in Real-time Collaborative Graphics Designing Systems
Semantic Preservation in Real-time Collaborative Graphics Designing Systems Xueyi Wang, Jiajun Bu, and Chun Chen College of Computer Science, Zhejiang University Hangzhou, Zhejiang, 310013 China xueyiwang@yahoo.com,
More informationChapter 12 Advanced Data Structures
Chapter 12 Advanced Data Structures 2 Red-Black Trees add the attribute of (red or black) to links/nodes red-black trees used in C++ Standard Template Library (STL) Java to implement maps (or, as in Python)
More information(2,4) Trees. 2/22/2006 (2,4) Trees 1
(2,4) Trees 9 2 5 7 10 14 2/22/2006 (2,4) Trees 1 Outline and Reading Multi-way search tree ( 10.4.1) Definition Search (2,4) tree ( 10.4.2) Definition Search Insertion Deletion Comparison of dictionary
More informationProperties of red-black trees
Red-Black Trees Introduction We have seen that a binary search tree is a useful tool. I.e., if its height is h, then we can implement any basic operation on it in O(h) units of time. The problem: given
More informationTrees. Eric McCreath
Trees Eric McCreath 2 Overview In this lecture we will explore: general trees, binary trees, binary search trees, and AVL and B-Trees. 3 Trees Trees are recursive data structures. They are useful for:
More informationOn the Integration of Text Editing and Version Control
Presented at the Eighth Nordic Workshop on Programming Environment Research (NWPER 98), Ronneby, Sweden, August 1998. On the Integration of Text Editing and Version Control Patrik Persson Dept of Computer
More informationThe Adaptive Radix Tree
Department of Informatics, University of Zürich MSc Basismodul The Adaptive Radix Tree Rafael Kallis Matrikelnummer: -708-887 Email: rk@rafaelkallis.com September 8, 08 supervised by Prof. Dr. Michael
More informationCSE 530A. B+ Trees. Washington University Fall 2013
CSE 530A B+ Trees Washington University Fall 2013 B Trees A B tree is an ordered (non-binary) tree where the internal nodes can have a varying number of child nodes (within some range) B Trees When a key
More informationEE 368. Weeks 5 (Notes)
EE 368 Weeks 5 (Notes) 1 Chapter 5: Trees Skip pages 273-281, Section 5.6 - If A is the root of a tree and B is the root of a subtree of that tree, then A is B s parent (or father or mother) and B is A
More informationTree-based model algorithm for maintaining consistency in real-time collaborative editing systems
Tree-based model algorithm for maintaining consistency in real-time collaborative editing systems Claudia Ignat Institute for Information Systems ETH Zurich CH-8092, Switzerland ignat@inf.ethz.ch ABSTRACT
More informationTrees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file.
Large Trees 1 Trees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file. Trees can also be used to store indices of the collection
More informationModule 4: Index Structures Lecture 13: Index structure. The Lecture Contains: Index structure. Binary search tree (BST) B-tree. B+-tree.
The Lecture Contains: Index structure Binary search tree (BST) B-tree B+-tree Order file:///c /Documents%20and%20Settings/iitkrana1/My%20Documents/Google%20Talk%20Received%20Files/ist_data/lecture13/13_1.htm[6/14/2012
More information13.4 Deletion in red-black trees
Deletion in a red-black tree is similar to insertion. Apply the deletion algorithm for binary search trees. Apply node color changes and left/right rotations to fix the violations of RBT tree properties.
More informationLaboratory Module X B TREES
Purpose: Purpose 1... Purpose 2 Purpose 3. Laboratory Module X B TREES 1. Preparation Before Lab When working with large sets of data, it is often not possible or desirable to maintain the entire structure
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 11: Binary Search Trees MOUNA KACEM mouna@cs.wisc.edu Fall 2018 General Overview of Data Structures 2 Introduction to trees 3 Tree: Important non-linear data structure
More information(2,4) Trees Goodrich, Tamassia (2,4) Trees 1
(2,4) Trees 9 2 5 7 10 14 2004 Goodrich, Tamassia (2,4) Trees 1 Multi-Way Search Tree A multi-way search tree is an ordered tree such that Each internal node has at least two children and stores d -1 key-element
More informationMultiway searching. In the worst case of searching a complete binary search tree, we can make log(n) page faults Everyone knows what a page fault is?
Multiway searching What do we do if the volume of data to be searched is too large to fit into main memory Search tree is stored on disk pages, and the pages required as comparisons proceed may not be
More informationOPPA European Social Fund Prague & EU: We invest in your future.
OPPA European Social Fund Prague & EU: We invest in your future. Data structures and algorithms Part 9 Searching and Search Trees II Petr Felkel 10.12. 2007 Topics Red-Black tree Insert Delete B-Tree Motivation
More informationCIS265/ Trees Red-Black Trees. Some of the following material is from:
CIS265/506 2-3-4 Trees Red-Black Trees Some of the following material is from: Data Structures for Java William H. Ford William R. Topp ISBN 0-13-047724-9 Chapter 27 Balanced Search Trees Bret Ford 2005,
More informationCS350: Data Structures Red-Black Trees
Red-Black Trees James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Red-Black Tree An alternative to AVL trees Insertion can be done in a bottom-up or
More informationBinary Trees, Binary Search Trees
Binary Trees, Binary Search Trees Trees Linear access time of linked lists is prohibitive Does there exist any simple data structure for which the running time of most operations (search, insert, delete)
More information18.3 Deleting a key from a B-tree
18.3 Deleting a key from a B-tree B-TREE-DELETE deletes the key from the subtree rooted at We design it to guarantee that whenever it calls itself recursively on a node, the number of keys in is at least
More informationCS 310 B-trees, Page 1. Motives. Large-scale databases are stored in disks/hard drives.
CS 310 B-trees, Page 1 Motives Large-scale databases are stored in disks/hard drives. Disks are quite different from main memory. Data in a disk are accessed through a read-write head. To read a piece
More informationExtra: B+ Trees. Motivations. Differences between BST and B+ 10/27/2017. CS1: Java Programming Colorado State University
Extra: B+ Trees CS1: Java Programming Colorado State University Slides by Wim Bohm and Russ Wakefield 1 Motivations Many times you want to minimize the disk accesses while doing a search. A binary search
More informationCS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics
CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics 1 Sorting 1.1 Problem Statement You are given a sequence of n numbers < a 1, a 2,..., a n >. You need to
More informationLecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory
Lecture 21: Transactional Memory Topics: consistency model recap, introduction to transactional memory 1 Example Programs Initially, A = B = 0 P1 P2 A = 1 B = 1 if (B == 0) if (A == 0) critical section
More information(In)security of ecient tree-based group key agreement using bilinear map
Loughborough University Institutional Repository (In)security of ecient tree-based group key agreement using bilinear map This item was submitted to Loughborough University's Institutional Repository by
More information1 Divide and Conquer Approach
Comp 163: Computational Geometry Tufts University, Spring 005 Professor Diane Souvaine Scribe: Katelyn Mann Dynamic Convex Hull and Order Decomposable Problems 1 Divide and Conquer Approach In order to
More informationChapter 13. Michelle Bodnar, Andrew Lohr. April 12, 2016
Chapter 13 Michelle Bodnar, Andrew Lohr April 1, 016 Exercise 13.1-1 8 4 1 6 10 14 1 3 5 7 9 11 13 15 We shorten IL to so that it can be more easily displayed in the document. The following has black height.
More informationCode Transformation of DF-Expression between Bintree and Quadtree
Code Transformation of DF-Expression between Bintree and Quadtree Chin-Chen Chang*, Chien-Fa Li*, and Yu-Chen Hu** *Department of Computer Science and Information Engineering, National Chung Cheng University
More informationTREES. Trees - Introduction
TREES Chapter 6 Trees - Introduction All previous data organizations we've studied are linear each element can have only one predecessor and successor Accessing all elements in a linear sequence is O(n)
More informationMaterial You Need to Know
Review Quiz 2 Material You Need to Know Normalization Storage and Disk File Layout Indexing B-trees and B+ Trees Extensible Hashing Linear Hashing Decomposition Goals: Lossless Joins, Dependency preservation
More informationRole-Evolution in Role-based Access Control System Suganthy. A * Department of Banking Technology Pondicherry University, Puducherry, India
International Journal of Emerging Research in Management &Technology Research Article July 2017 -Evolution in -based Access Control System Suganthy. A * Department of Banking Technology Pondicherry University,
More informationLECTURE 11 TREE TRAVERSALS
DATA STRUCTURES AND ALGORITHMS LECTURE 11 TREE TRAVERSALS IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD BACKGROUND All the objects stored in an array or linked list can be accessed sequentially
More informationBinary Trees
Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what
More informationTrees. (Trees) Data Structures and Programming Spring / 28
Trees (Trees) Data Structures and Programming Spring 2018 1 / 28 Trees A tree is a collection of nodes, which can be empty (recursive definition) If not empty, a tree consists of a distinguished node r
More informationRed-Black Trees (2) Antonio Carzaniga. April 23, Faculty of Informatics Università della Svizzera italiana Antonio Carzaniga
Red-Black Trees (2) Antonio Carzaniga Faculty of Informatics Università della Svizzera italiana April 23, 2013 Recap on Red-Black Trees 2006 Antonio Carzaniga Recap on Red-Black Trees 12 5 18 2 9 15 19
More informationCSCI-401 Examlet #5. Name: Class: Date: True/False Indicate whether the sentence or statement is true or false.
Name: Class: Date: CSCI-401 Examlet #5 True/False Indicate whether the sentence or statement is true or false. 1. The root node of the standard binary tree can be drawn anywhere in the tree diagram. 2.
More informationCMSC 341 Leftist Heaps
CMSC 341 Leftist Heaps Based on slides from previous iterations of this course Today s Topics Review of Min Heaps Introduction of Left-ist Heaps Merge Operation Heap Operations Review of Heaps Min Binary
More informationECE 242 Data Structures and Algorithms. Trees IV. Lecture 21. Prof.
ECE 22 Data Structures and Algorithms http://www.ecs.umass.edu/~polizzi/teaching/ece22/ Trees IV Lecture 2 Prof. Eric Polizzi Summary previous lectures Implementations BST 5 5 7 null 8 null null 7 null
More informationTrees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file.
Large Trees 1 Trees can be used to store entire records from a database, serving as an in-memory representation of the collection of records in a file. Trees can also be used to store indices of the collection
More informationCMSC 754 Computational Geometry 1
CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College
More informationCS 231 Data Structures and Algorithms Fall Recursion and Binary Trees Lecture 21 October 24, Prof. Zadia Codabux
CS 231 Data Structures and Algorithms Fall 2018 Recursion and Binary Trees Lecture 21 October 24, 2018 Prof. Zadia Codabux 1 Agenda ArrayQueue.java Recursion Binary Tree Terminologies Traversal 2 Administrative
More informationQuestions from the material presented in this lecture
Advanced Data Structures Questions from the material presented in this lecture January 8, 2015 This material illustrates the kind of exercises and questions you may get at the final colloqium. L1. Introduction.
More informationKernel Range Reader/Writer Locking
Kernel Range Reader/Writer Locking Linux Plumbers Conference September 2017. Los Angeles, CA. Davidlohr Bueso SUSE Labs. Agenda 1. Introduction 2. Semantics 3. Range lock vs rw_semaphore
More informationCST-Trees: Cache Sensitive T-Trees
CST-Trees: Cache Sensitive T-Trees Ig-hoon Lee 1, Junho Shim 2, Sang-goo Lee 3, and Jonghoon Chun 4 1 Prompt Corp., Seoul, Korea ihlee@prompt.co.kr 2 Department of Computer Science, Sookmyung Women s University,
More informationStackless BVH Collision Detection for Physical Simulation
Stackless BVH Collision Detection for Physical Simulation Jesper Damkjær Department of Computer Science, University of Copenhagen Universitetsparken 1, DK-2100, Copenhagen Ø, Denmark damkjaer@diku.dk February
More informationConcurrency Control CHAPTER 17 SINA MERAJI
Concurrency Control CHAPTER 17 SINA MERAJI Announcement Sign up for final project presentations here: https://docs.google.com/spreadsheets/d/1gspkvcdn4an3j3jgtvduaqm _x4yzsh_jxhegk38-n3k/edit#gid=0 Deadline
More informationImproving generalized inverted index lock wait times
Journal of Physics: Conference Series PAPER OPEN ACCESS Improving generalized inverted index lock wait times To cite this article: A Borodin et al 2018 J. Phys.: Conf. Ser. 944 012022 View the article
More informationContributors to the course material
Constructive Computer Architecture Cache Coherence Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology November 18, 2013 http://www.csg.csail.mit.edu/6.s195 L21-1
More informationNePaLTM: Design and Implementation of Nested Parallelism for Transactional Memory Systems
NePaLTM: Design and Implementation of Nested Parallelism for Transactional Memory Systems Haris Volos 1, Adam Welc 2, Ali-Reza Adl-Tabatabai 2, Tatiana Shpeisman 2, Xinmin Tian 2, and Ravi Narayanaswamy
More informationLecture 7: Transactional Memory Intro. Topics: introduction to transactional memory, lazy implementation
Lecture 7: Transactional Memory Intro Topics: introduction to transactional memory, lazy implementation 1 Transactions New paradigm to simplify programming instead of lock-unlock, use transaction begin-end
More informationChapter 8: Data Abstractions
Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
More informationCS251-SE1. Midterm 2. Tuesday 11/1 8:00pm 9:00pm. There are 16 multiple-choice questions and 6 essay questions.
CS251-SE1 Midterm 2 Tuesday 11/1 8:00pm 9:00pm There are 16 multiple-choice questions and 6 essay questions. Answer the multiple choice questions on your bubble sheet. Answer the essay questions in the
More informationDATA STRUCTURES AND ALGORITHMS
LECTURE 11 Babeş - Bolyai University Computer Science and Mathematics Faculty 2017-2018 In Lecture 10... Hash tables Separate chaining Coalesced chaining Open Addressing Today 1 Open addressing - review
More informationHeaps. 2/13/2006 Heaps 1
Heaps /13/00 Heaps 1 Outline and Reading What is a heap ( 8.3.1) Height of a heap ( 8.3.) Insertion ( 8.3.3) Removal ( 8.3.3) Heap-sort ( 8.3.) Arraylist-based implementation ( 8.3.) Bottom-up construction
More informationData Structures and Algorithms
Data Structures and Algorithms Trees Sidra Malik sidra.malik@ciitlahore.edu.pk Tree? In computer science, a tree is an abstract model of a hierarchical structure A tree is a finite set of one or more nodes
More informationData Structures. Algorithms
Data Structures Algorithms Types of Data Structures Organize data to make access / processing fast Speed depends on the internal organization Internal organization allows different types of accesses Problems:
More informationAn AVL tree with N nodes is an excellent data. The Big-Oh analysis shows that most operations finish within O(log N) time
B + -TREES MOTIVATION An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations finish within O(log N) time The theoretical conclusion
More informationRed-black tree. Background and terminology. Uses and advantages
Red-black tree A red-black tree is a type of self-balancing binary search tree, a data structure used in computer science, typically used to implement associative arrays. The original structure was invented
More informationProblem. Indexing with B-trees. Indexing. Primary Key Indexing. B-trees: Example. B-trees. primary key indexing
15-82 Advanced Topics in Database Systems Performance Problem Given a large collection of records, Indexing with B-trees find similar/interesting things, i.e., allow fast, approximate queries 2 Indexing
More informationConcurrency Control. R &G - Chapter 19
Concurrency Control R &G - Chapter 19 Smile, it is the key that fits the lock of everybody's heart. Anthony J. D'Angelo, The College Blue Book Review DBMSs support concurrency, crash recovery with: ACID
More informationTrees. Tree Structure Binary Tree Tree Traversals
Trees Tree Structure Binary Tree Tree Traversals The Tree Structure Consists of nodes and edges that organize data in a hierarchical fashion. nodes store the data elements. edges connect the nodes. The
More informationHeaps. A heap is a certain kind of complete binary tree.
Heaps Heaps A heap is a certain kind of complete binary tree. Heaps Root A heap is a certain kind of complete binary tree. When a complete binary tree is built, its first node must be the root. Heaps Complete
More informationcatch(...){ printf( "Assignment::SolveProblem() AAAA!"); }
catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } ADD SLIDES ON DISJOINT SETS 2-3 Tree www.serc.iisc.ernet.in/~viren/courses/2009/ SE286/2-3Trees-mod.ppt Outline q Balanced Search Trees 2-3 Trees
More informationTrees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology
Trees : Part Section. () (2) Preorder, Postorder and Levelorder Traversals Definition: A tree is a connected graph with no cycles Consequences: Between any two vertices, there is exactly one unique path
More informationSearch Trees. COMPSCI 355 Fall 2016
Search Trees COMPSCI 355 Fall 2016 2-4 Trees Search Trees AVL trees Red-Black trees Splay trees Multiway Search Trees (2, 4) Trees External Search Trees (optimized for reading and writing large blocks)
More informationDictionaries. Priority Queues
Red-Black-Trees.1 Dictionaries Sets and Multisets; Opers: (Ins., Del., Mem.) Sequential sorted or unsorted lists. Linked sorted or unsorted lists. Tries and Hash Tables. Binary Search Trees. Priority Queues
More informationFriday Four Square! 4:15PM, Outside Gates
Binary Search Trees Friday Four Square! 4:15PM, Outside Gates Implementing Set On Monday and Wednesday, we saw how to implement the Map and Lexicon, respectively. Let's now turn our attention to the Set.
More informationData Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 20 Priority Queues Today we are going to look at the priority
More informationV Advanced Data Structures
V Advanced Data Structures B-Trees Fibonacci Heaps 18 B-Trees B-trees are similar to RBTs, but they are better at minimizing disk I/O operations Many database systems use B-trees, or variants of them,
More informationUsing the Holey Brick Tree for Spatial Data. in General Purpose DBMSs. Northeastern University
Using the Holey Brick Tree for Spatial Data in General Purpose DBMSs Georgios Evangelidis Betty Salzberg College of Computer Science Northeastern University Boston, MA 02115-5096 1 Introduction There is
More informationPART IV. Given 2 sorted arrays, What is the time complexity of merging them together?
General Questions: PART IV Given 2 sorted arrays, What is the time complexity of merging them together? Array 1: Array 2: Sorted Array: Pointer to 1 st element of the 2 sorted arrays Pointer to the 1 st
More information