An evaluation of search tree techniques in the presence of caches

Costin Iancu, A. Acharya
{"title":"An evaluation of search tree techniques in the presence of caches","authors":"Costin Iancu, A. Acharya","doi":"10.1109/ISPASS.2001.990682","DOIUrl":null,"url":null,"abstract":"Two techniques underlie the design of commonly used search-tree algorithms: move commonly accessed items closer to the root (move-to-front) and keep the tree balanced (keep-it-balanced). The move-to-front technique tries to improve the performance for the common case by reducing the number of operations required to retrieve heavily accessed items. The keep-it-balanced technique tries to improve worst-case performance by reducing the maximum number of operations required to look up an item in the tree. In this paper, we evaluate these techniques in the presence of a cache hierarchy. As representatives of move-to-front algorithms we use splay trees. As representatives of keep-it-balanced algorithms we use B-Trees and B*-Trees. In addition to classic versions of these techniques, we evaluate variants that have been optimized for a cache hierarchy. To drive our evaluation, we use a suite of synthetic datasets. These data-sets vary primarily in the degree of locality found in the request stream and the operation mix. The major result of this paper is a qualitative performance difference analysis of the two classes of algorithms based on the expected data input characteristics. Based on this analysis, we can predict which algorithm performs faster for a large class of input data-sets. We also present guidelines for choosing implementation parameters in the presence of a cache hierarchy for all","PeriodicalId":104148,"journal":{"name":"2001 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS.","volume":"19 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2001-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2001 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISPASS.2001.990682","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

Abstract

Two techniques underlie the design of commonly used search-tree algorithms: move commonly accessed items closer to the root (move-to-front) and keep the tree balanced (keep-it-balanced). The move-to-front technique tries to improve the performance for the common case by reducing the number of operations required to retrieve heavily accessed items. The keep-it-balanced technique tries to improve worst-case performance by reducing the maximum number of operations required to look up an item in the tree. In this paper, we evaluate these techniques in the presence of a cache hierarchy. As representatives of move-to-front algorithms we use splay trees. As representatives of keep-it-balanced algorithms we use B-Trees and B*-Trees. In addition to classic versions of these techniques, we evaluate variants that have been optimized for a cache hierarchy. To drive our evaluation, we use a suite of synthetic datasets. These data-sets vary primarily in the degree of locality found in the request stream and the operation mix. The major result of this paper is a qualitative performance difference analysis of the two classes of algorithms based on the expected data input characteristics. Based on this analysis, we can predict which algorithm performs faster for a large class of input data-sets. We also present guidelines for choosing implementation parameters in the presence of a cache hierarchy for all
对存在缓存的搜索树技术的评价
两种技术是常用搜索树算法设计的基础:将经常访问的项移到更靠近根的地方(移到前面),并保持树的平衡(keep-it-balanced)。移动到前端技术试图通过减少检索大量访问项所需的操作数量来提高普通情况下的性能。保持平衡技术试图通过减少查找树中的项所需的最大操作次数来提高最坏情况下的性能。在本文中,我们在存在缓存层次结构的情况下评估这些技术。作为移动到前面算法的代表,我们使用了张开树。作为保持平衡算法的代表,我们使用B树和B*树。除了这些技术的经典版本之外,我们还评估了针对缓存层次结构进行优化的变体。为了推动我们的评估,我们使用了一套合成数据集。这些数据集主要在请求流和操作组合中的局部性程度上有所不同。本文的主要成果是基于预期数据输入特征对两类算法的性能差异进行定性分析。基于这种分析,我们可以预测哪种算法在处理大量输入数据集时执行得更快。我们还提供了在存在所有缓存层次结构时选择实现参数的指导方针
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信