We use cookies to improve your experience with our site.

Flash-Optimized B+-Tree

  • 摘要: 随着闪速存储器(简称闪存)容量的不断快速增长,闪存设备的查询性能越来越受到重视,因而基于闪存的索引管理显得至关重要。与传统的硬盘相比,闪存具有高速随机读取、低功耗、低噪音、小体积等优点。但是闪存的性能也由于其一系列的特性而受到限制。首先,闪存在重写数据时需要先进行耗时的擦除操作;再次,闪存的读写速度不对称,并和擦除操作的粒度不一致。这些特性极大地影响了传统B+树索引技术在闪存上的性能表现。因此本文提出一种优化方法(Lazy-update B+-tree)来提高其索引性能。其主要的思想是将索引树的更新请求缓存于内存中,然后通过按组提交,更新合并的方法来有效地减少对闪存设备的写操作次数。实验结果显示Lazy-update B+-tree能很好地降低索引结构的更新代价,同时保持良好的查询性能。

     

    Abstract: With the rapid increasing capacity of flash memory, flash-aware indexing techniques are highly desirable for flash devices. The unique features of flash memory, such as the erase-before-write constraint and the asymmetric read/write cost, severely deteriorate the performance of the traditional B+-tree algorithm. In this paper, we propose an optimized indexing method, called \textitlazy-update B+-tree, to overcome the limitations of flash memory. The basic idea is to defer the committing of update requests to the B+-tree by buffering them in a segment of main memory. They are later committed in groups so that the cost of each write operation can be amortized by a bunch of update requests. We identify a victim selection problem for the \textitlazy-update B+-tree and develop two heuristic-based commit policies to address this problem. Simulation results show that the proposed \textitlazy-update method, along with a well-designed commit policy, greatly improves the update performance of the traditional B+-tree while preserving the query efficiency.

     

/

返回文章
返回