Concurrent operations of O2-tree on shared memory multicore architectures

  • Authors:
  • Daniel Ohene-Kwofie;E. J. Otoo;Gideon Nimako

  • Affiliations:
  • The University of the Witwatersrand, South Africa;The University of the Witwatersrand, South Africa;The University of the Witwatersrand, South Africa

  • Venue:
  • ADC '13 Proceedings of the Twenty-Fourth Australasian Database Conference - Volume 137
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern computer architectures provide high performance computing capability by having multiple CPU cores. Such systems are also typically associated with very large main-memory capacities, of the order of tens to hundreds of gigabytes, thereby allowing such architectures to be used for fast processing of in-memory databases applications. However, most of the concurrency control mechanism associated with the index structures of these memory resident databases do not scale well, under high transaction rates due to the overhead incurred. This paper presents the O2-Tree, a fast main memory resident index, which is highly scalable and tolerant of high transaction rates in a concurrent environment using the relaxed balancing tree algorithm. The O2-Tree is a modified Red-Black tree in which the leaf nodes are formed into blocks that hold key-value pairs, while each internal node stores only a single key that results from splitting leaf nodes in a manner reminiscent of the B+-Tree. The scheme adopts well to implementing key-value store as in the NoSQL database. Multithreaded concurrent manipulation of the O2-Tree, in shared memory outperforms popular NoSQL based key-value stores considered in this paper. An added feature of the scheme is its resiliency to system failure since the memory resident index can be restored from the minimum keys in each of the leaf nodes.