The performance of concurrent data structure algorithms

This thesis develops a validated of concurrent data structure algorithm performance, concentrating on concurrent B-trees. The thesis first develops two analytical tools, which are explained in the next two paragraphs, for the analysis. Yao showed that the space utilization of a B-tree built from random inserts is 69%. Assuming that nodes merge only when empty, we show that the utilization is 39% when the number of insert and delete operations is the same. However, if there are just 5% more inserts than deletes, then the utilization is at least 62%. In addition to the utilization, we calculate the probabilities of splitting and merging, important parameters for calculating concurrent B-tree algorithm performance. We compare merge-at-empty B-trees with merge-at-half B-trees. We conclude that merge-at-empty B-trees have a slightly lower space utilization but a much lower restructuring rate, making merge-at-empty B-trees preferable for concurrent B-tree algorithms. We analyze queues that service readers and writers. Readers are served concurrently and writers are served serially. Customers receive service in FCFS order. We show that the additional time that a writer must wait for preceding readers increases logarithmically with the proportion of readers to writers. From this, we can calculate the expected wait in the queue and the capacity of the queue. We use the analytical tools to model a representative set of concurrent B-tree algorithms. The algorithms use a variety of locking, restructuring and path recovery techniques. The analyses, which are validated by simulations, show that the Link-style algorithms are by far the best. The analyses are extended to account for buffering and database recovery. We show that holding non-leaf locks until commit time is bad for performance. The analysis of concurrent B-tree algorithms can be extended to cover other concurrent data structure algorithms. We describe a template for analyzing concurrent tree data structures, and apply the template to some concurrent extensible hashing schemes.

[1]  Dennis Shasha,et al.  Concurrent search structure algorithms , 1988, TODS.

[2]  Dieter Gawlick,et al.  One Thousand Transactions per Second , 1985, COMPCON.

[3]  Alexander Thomasian,et al.  Performance Analysis of Centralized Databases with Optimistic Concurrency Control , 1987, Perform. Evaluation.

[4]  John T. Robinson,et al.  Limitations of concurrency in transaction processing , 1985, TODS.

[5]  Hartmut Wedekind On the Selection of Access Paths in a Data Base System , 1974, IFIP Working Conference Data Base Management.

[6]  Ronald Fagin,et al.  Asymptotic Miss Ratios over Independent References , 1977, J. Comput. Syst. Sci..

[7]  James C. Browne,et al.  Simultaneous Update of Priority Structures , 1987, ICPP.

[8]  C. Mohan,et al.  ARIES/KVL: A Key-Value Locking Method for Concurrency Control of Multiaction Transactions Operating on B-Tree Indexes , 1990, VLDB.

[9]  H. T. Kung,et al.  Concurrent manipulation of binary search trees , 1980, TODS.

[10]  Alexander Thomasian,et al.  A decomposition solution to the queueing network model of the centralized DBMS with static locking , 1983, SIGMETRICS '83.

[11]  E. Gelenbe,et al.  Optimization of the number of copies in a distribution data base , 1980, Performance.

[12]  R. Bayer,et al.  Organization and maintenance of large ordered indices , 1970, SIGFIDET '70.

[13]  Carla Schlatter Ellis,et al.  Extendible hashing for concurrent operations and distributed data , 1983, PODS '83.

[14]  Wing Shing Wong,et al.  Performance Analysis of Locking and Optimistic Concurrency Control Algorithms , 1985, Perform. Evaluation.

[15]  Carla Schlatter Ellis,et al.  Concurrency in linear hashing , 1987, TODS.

[16]  Sheau-Dong Lang,et al.  Modeling B-Tree Insertion Activity , 1987, Inf. Process. Lett..

[17]  Wing Shing Wong,et al.  Performance of Concurrency Control Algorithms with Nonexclusive Access , 1984, Performance.

[18]  Y. C. Tay,et al.  Locking performance in centralized databases , 1985, TODS.

[19]  Behrokh Samadi,et al.  B-Trees in a System with Multiple Users , 1976, Inf. Process. Lett..

[20]  Alexandros Biliris Operation specific locking in B-trees , 1987, PODS '87.

[21]  Debasis Mitra,et al.  Probabilistic Models of Database Locking: Solutions, Computational Algorithms, and Asymptotics , 1984, JACM.

[22]  Miron Livny,et al.  Concurrency control performance modeling: alternatives and implications , 1987, TODS.

[23]  E. G. Coffman,et al.  Stochastic Analysis of Computer Storage , 1987 .

[24]  Leonidas J. Guibas,et al.  A dichromatic framework for balanced trees , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[25]  Yehoshua Sagiv Concurrent Operations on B*-Trees with Overtaking , 1986, J. Comput. Syst. Sci..

[26]  Andreas Reuter,et al.  Principles of transaction-oriented database recovery , 1983, CSUR.

[27]  Ricardo A. Baeza-Yates,et al.  Performance of B+-Trees with Partial Expansions , 1989, IEEE Trans. Knowl. Data Eng..

[28]  C. Mohan,et al.  ARIES/IM: an efficient and high concurrency index management method using write-ahead logging , 1992, SIGMOD '92.

[29]  G. F. Simmons Differential Equations With Applications and Historical Notes , 1972 .

[30]  Witold Litwin,et al.  Linear Hashing: A new Algorithm for Files and Tables Addressing , 1980, ICOD.

[31]  Carla Schlatter Ellis,et al.  Distributed data structures: A case study , 1985, IEEE Transactions on Computers.

[32]  Philip A. Bernstein,et al.  Recovery Algorithms for Database Systems , 1983, IFIP Congress.

[33]  C. G. van der Laan,et al.  Calculation of special functions: the gamma function, the exponential integrals and error-like functions , 1984 .

[34]  Yoav Raz,et al.  Concurrency Control in B+-Trees Databases Using Preparatory Operations , 1985, VLDB.

[35]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[36]  Leonard Kleinrock,et al.  Communication Nets: Stochastic Message Flow and Delay , 1964 .

[37]  Wei-Pang Yang,et al.  Concurrent Operations in Extendible Hashing , 1986, VLDB.

[38]  Erol Gelenbe,et al.  On the modeling of parallel access to shared data , 1983, CACM.

[39]  Feller William,et al.  An Introduction To Probability Theory And Its Applications , 1950 .

[40]  Abraham Silberschatz,et al.  Locking Protocols: From Exclusive to Shared Locks , 1983, JACM.

[41]  A. Palmboom,et al.  Analysis of Demand Paging Algorithms , 1972, GI Jahrestagung.

[42]  Erol Gelenbe,et al.  An analysis of parallel-read sequential-write systems , 1981, Perform. Evaluation.

[43]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[44]  Konrad H. Quitzow,et al.  Space utilization and access path length in B-trees , 1980, Inf. Syst..

[45]  William E. Wright,et al.  An efficient model for representing and analyzing B-trees , 1985, ACM '85.

[46]  Derick Wood,et al.  A New Method for Concurrency in B-Trees , 1982, IEEE Transactions on Software Engineering.

[47]  Alexander Thomasian,et al.  An Iterative Solution to the Queueing Network Model of a DBMS with Dynamic Locking , 1982, Int. CMG Conference.

[48]  Dennis Shasha,et al.  A Symmetric Concurrent B-Tree Algorithm , 2011, Fall Joint Computer Conference.

[49]  S. B. Yao,et al.  Efficient locking for concurrent operations on B-trees , 1981, TODS.

[50]  Ronald Fagin,et al.  Extendible hashing—a fast access method for dynamic files , 1979, ACM Trans. Database Syst..

[51]  E. G. Coffman,et al.  A data base replication analysis using an M/M/m queue with service interruptions , 1982, SIGMETRICS '82.

[52]  Shalom Tsur,et al.  Memory Management for B-Trees , 1985, Perform. Evaluation.

[53]  Carla Schlatter Ellis,et al.  Concurrent Search and Insertion in AVL Trees , 1980, IEEE Transactions on Computers.

[54]  Dennis Shasha,et al.  An analytical model for the performance of concurrent B tree algorithms , 1987 .

[55]  B. Srinivasan,et al.  Approximate Storage Utilization of B-Trees , 1986, Inf. Process. Lett..

[56]  Michael J. Jipping,et al.  On the Performance of Concurrent Tree Algorithms , 1990, J. Parallel Distributed Comput..

[57]  EllisCarla Schlatter Concurrent search and insertion in 2---3 trees , 1980 .

[58]  William A. Massey A probabilistic analysis of a database system , 1986, SIGMETRICS '86/PERFORMANCE '86.

[59]  Vipin Kumar,et al.  Concurrent Access of Priority Queues , 1988, IEEE Trans. Computers.

[60]  MARTIN L. KERSTEN,et al.  Application of an optimistic concurrency control method , 1984, Softw. Pract. Exp..

[61]  Richard E. Ladner,et al.  Concurrency control in a dynamic search structure , 1984, TODS.