B2-Tree: Page-Based String Indexing in Concurrent Environments

被引:2
作者
Josef Schmeißer
Maximilian E. Schüle
Viktor Leis
Thomas Neumann
Alfons Kemper
机构
[1] TU Munich,Chair for Database Systems
[2] Friedrich–Alexander University Erlangen–Nürnberg,Chair of Computer Science 6
关键词
Indexing; B‑tree; String;
D O I
10.1007/s13222-022-00409-y
中图分类号
学科分类号
摘要
Recently proposed index structures, that combine trie-based and comparison-based search mechanisms, considerably improve retrieval throughput for in-memory database systems. However, most of these index structures allocate small memory chunks when required. This stands in contrast to block-based index structures, that are necessary for disk-accesses of beyond main-memory database systems such as Umbra. We therefore present the B2-tree. The outer structure is identical to that of an ordinary B+-tree. It still stores elements in a dense array in sorted order, enabling efficient range scan operations. However, B2-tree is composed of multiple trees, each page integrates another trie-based search tree, which is used to determine a small memory region where a sought entry may be found. An embedded tree thereby consists of decision nodes, which operate on a single byte at a time, and span nodes, which are used to store common prefixes. This architecture usually accesses fewer cache lines than a vanilla B+-tree as shown in our performance evaluation. As a result, the B2-tree answers point queries considerably faster. Concurrent access to B2-tree pages are managed by an optimistic locking protocol which results in high utilization of the available hardware resources. Our evaluation of read-write workloads attests more than competitive performance for the B2-tree compared to a traditional B+-tree.
引用
收藏
页码:11 / 22
页数:11
相关论文
共 15 条
[1]  
Comer D(1979)Ubiquitous b‑tree ACM Comput Surv 11 121-137
[2]  
Leis V(2019)Optimistic lock coupling: A scalable and efficient general-purpose synchronization method IEEE Data Eng Bull 42 73-84
[3]  
Haubenschild M(2005)Cache-oblivious b‑trees SIAM J Comput 35 341-358
[4]  
Neumann T(2007)An adaptive packed-memory array ACM Trans Database Syst 32 26-280
[5]  
Bender MA(1999)The string b‑tree: A new data structure for string search in external memory and its applications J ACM 46 236-534
[6]  
Demaine ED(1968)Patricia—Practical algorithm to retrieve information coded in alphanumeric J ACM 15 514-402
[7]  
Farach-Colton M(2017)Array layouts for comparison-based searching ACM J Exp Algorithmics 3 203-undefined
[8]  
Bender MA(2011)Modern b‑tree techniques Found Trends Databases undefined undefined-undefined
[9]  
Hu H(undefined)undefined undefined undefined undefined-undefined
[10]  
Ferragina P(undefined)undefined undefined undefined undefined-undefined