The VLDB Journal

, Volume 14, Issue 2, pp 257–277 | Cite as

Concurrency control and recovery for balanced B-link trees

  • Ibrahim Jaluta
  • Seppo Sippu
  • Eljas Soisalon-Soininen
Article

Abstract.

In this paper we present new concurrent and recoverable B-link-tree algorithms. Unlike previous algorithms, ours maintain the balance of the B-link tree at all times, so that a logarithmic time bound for a search or an update operation is guaranteed under arbitrary sequences of record insertions and deletions. A database transaction can contain any number of operations of the form “fetch the first (or next) matching record”, “insert a record”, or “delete a record”, where database records are identified by their primary keys. Repeatable-read-level isolation for transactions is guaranteed by key-range locking. The algorithms apply the write-ahead logging (WAL) protocol and the steal and no-force buffering policies for index and data pages. Record inserts and deletes on leaf pages of a B-link tree are logged using physiological redo-undo log records. Each structure modification such as a page split or merge is made an atomic action by keeping the pages involved in the modification latched for the (short) duration of the modification and the logging of that modification; at most two B-link-tree pages are kept X-latched at a time. Each structure modification brings the B-link tree into a structurally consistent and balanced state whenever the tree was structurally consistent and balanced initially. Each structure modification is logged using a single physiological redo-only log record. Thus, a structure modification will never be undone even if the transaction that gave rise to it eventually aborts. In restart recovery, the redo pass of our ARIES-based recovery protocol will always produce a structurally consistent and balanced B-link tree, on which the database updates by backward-rolling transactions can always be undone logically, when a physical (page-oriented) undo is no longer possible.

Keywords:

B-link tree Transaction Concurrency control Tree-structure modifications Recovery 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bernstein P, Hadzilacos V, Goodman N (1987) Concurrency control and recovery in database systems. Addison-Wesley, Reading, MAGoogle Scholar
  2. 2.
    Biliris A (1987) Operation specific locking in B-trees. In: Proc. 1987 ACM international conference on principles of database systems, pp 159-169Google Scholar
  3. 3.
    Chen I, Hassan S (1995) Performance analysis of a periodic data reorganization algorithm for concurrent B-link trees in database systems. In: Proc. 1995 ACM symposium on applied computing, pp 40-45Google Scholar
  4. 4.
    Cosmadakis S, Ioannidou K, Stergiou S (2001) View serializable updates of concurrent index structures. In: Proc. 2001 DBPL international workshop on database programming languages, pp 247-262Google Scholar
  5. 5.
    De Jonge W, Schijf A (1990) Concurrent access to B-trees. In: Proc. 1990 PARBASE international conference on databases, parallel architectures and their applications, pp 312-320Google Scholar
  6. 6.
    Fu A, Kameda T (1989) Concurrency control for nested transactions accessing B-trees. In: Proc. ACM SIGACT-SIGMOD-SIGART international conference on management of data, pp 270-285Google Scholar
  7. 7.
    Gray J, Reuter A (1993) Transaction processing: concepts and techniques. Morgan Kaufmann, San FranciscoMathSciNetGoogle Scholar
  8. 8.
    Goyal B, Haritsa J, Seshadri S, Srinivasan V (1995) Index concurrency control in firm real-time DBMS. In: Proc. 21st VLDB conference, pp 146-157Google Scholar
  9. 9.
    Jaluta I (2002) B-tree concurrency control and recovery in a client-server database management system. Ph.D. thesis and report TKO-A37/02, Department of Computer Science and Engineering, Helsinki University of Technology. http://lib.hut.fi/Diss/2002/isbn9512257068/Google Scholar
  10. 10.
    Keller AM, Wiederhold G (1988) Concurrent use of B-trees with variable-length entries. SIGMOD Rec 17(2):89-90Google Scholar
  11. 11.
    Kornacker M, Mohan C, Hellerstein J (1997) Concurrency and recovery in generalized search trees. In: Proc. ACM SIGMOD international conference on management of data, pp 62-72Google Scholar
  12. 12.
    Kwong Y, Wood D (1982) A new method for concurrency in B-trees. IEEE Trans Softw Eng 8:211-222MATHGoogle Scholar
  13. 13.
    Lanin V, Shasha D (1986) A symmetric concurrent B-tree algorithm. In: Proc. fall joint computer conference, pp 380-389Google Scholar
  14. 14.
    Lehman P, Yao S (1981) Efficient locking for concurrent operations on B-trees. ACM Trans Database Sys 6:650-670CrossRefMATHGoogle Scholar
  15. 15.
    Lomet D (1992) MLR: a recovery method for multi-level systems. In: Proc. ACM SIGMOD international conference on management of data, pp 185-194Google Scholar
  16. 16.
    Lomet D, Salzberg B (1992)) Access method concurrency with recovery. In: Proc. ACM SIGMOD international conference on management of data, pp 351-360Google Scholar
  17. 17.
    Lomet D, Salzberg B (1997) Concurrency and recovery for index trees. VLDB J 6:224-240CrossRefGoogle Scholar
  18. 18.
    Mohan C (1989) ARIES/KVL: a key-value locking method for concurrency control of multi-action transactions operation on B-tree indexes. IBM Research Report RJ7008, IBM Almaden Research CenterGoogle Scholar
  19. 19.
    Mohan C (1990) ARIES/KVL: a key-value locking method for concurrency control of multi-action transactions operation on B-tree indexes. In: Proc. 16th VLDB conference, pp 392-405Google Scholar
  20. 20.
    Mohan C (1996) Concurrency control and recovery methods for B\(\pm\)tree indexes: ARIES/KVL and ARIES/IM. In: Kumar V (ed) Performance of concurrency control mechanisms in centralized database systems. Prentice-Hall, Upper Saddle River NJ, pp 248-306Google Scholar
  21. 21.
    Mohan C, Levine F (1992) ARIES/IM: an efficient and high concurrency index management method using write-ahead logging. In: Proc. ACM SIGMOD international conference on management of data, pp 371-380Google Scholar
  22. 22.
    Mohan C, Haderle D, Lindsay B, Pirahesh H, Schwarz P (1992) ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans Database Sys 17:94-162CrossRefGoogle Scholar
  23. 23.
    Mond Y, Raz Y (1985) Concurrency control in B\(\pm \)tree databases using preparatory operations. In: Proc. 11th VLDB conference, pp 331-334Google Scholar
  24. 24.
    Nurmi O, Soisalon-Soininen E, Wood D (1987) Concurrency control in database structures with relaxed balance. In: Proc. ACM international conference on principles of database systems, pp 170-176Google Scholar
  25. 25.
    Papadimitriou C (1986) The theory of database concurrency control. Computer Science Press, Rockville, MDGoogle Scholar
  26. 26.
    Sagiv Y (1986) Concurrent operations on B*-trees with overtaking. J Comput Sys Sci 33:275-296CrossRefMathSciNetMATHGoogle Scholar
  27. 27.
    Setzer V, Zisman A (1994) New concurrency control algorithms for accessing and compacting B-trees. In: Proc. 20th VLDB conference, pp 238-248Google Scholar
  28. 28.
    Srinivasan V, Carey M (1991)) Performance of B\(\pm \)tree concurrency control algorithms. In: Proc. ACM SIGMOD international conference on management of data, pp 416-425Google Scholar
  29. 29.
    Srinivasan V, Carey M (1993) Performance of B\(\pm \)tree concurrency control algorithms. VLDB J 2:361-406Google Scholar
  30. 30.
    Sullivan M, Olson M (1992) An index implementation supporting fast recovery for the POSTGRES storage system. In: Proc. 8th IEEE data engineering conference, pp 293-300Google Scholar

Copyright information

© Springer-Verlag Berlin/Heidelberg 2005

Authors and Affiliations

  • Ibrahim Jaluta
    • 1
  • Seppo Sippu
    • 2
  • Eljas Soisalon-Soininen
    • 1
  1. 1.Department of Computer Science and EngineeringHelsinki University of TechnologyFinland
  2. 2.Department of Computer ScienceUniversity of HelsinkiFinland

Personalised recommendations