Transactional memory analysis using CSB+ trees

Rishab Bansal, P. Ramachandran
{"title":"Transactional memory analysis using CSB+ trees","authors":"Rishab Bansal, P. Ramachandran","doi":"10.1145/2979779.2979780","DOIUrl":null,"url":null,"abstract":"Enterprise applications using in-memory databases prefer to run on scale up systems where the amount of memory and CPUs available are increasing with each generation. In addition to the cores/socket, the number of hardware threads per core has also increased. Increasing cores/socket and HW threads per core provides opportunities for more parallelism from application's perspective. But the applications fail to achieve the expected linear scaling due to various reasons. One of the key reason being the application having to serialize access to certain resources. Hardware transactional memory provides a way for the application to execute concurrently without serializing them using locks. We let the CPUs execute enter transactional mode concurrently and let them execute until a transaction failure is detected which primarily is due to cache line collision. Else, we let all of them succeed. Hardware transactional memory is available in Haswell processors from Intel and also in Power8 processors from IBM. The most important data structure where enabling parallel access becomes critical is a tree update or modify. Without this we will have to serialize the threads using a global lock which prevents the application from using all the available CPUs. In this paper, we will use an sample program of cache sensitive B+ tree (CSB+ tree) which is used in file-system meta-data indexing and in key-value database systems where the data access performance is very critical and compare the performance advantages of using a transactional memory and its scalability. Also, we will provide ways to improve or tune the performance.","PeriodicalId":298730,"journal":{"name":"Proceedings of the International Conference on Advances in Information Communication Technology & Computing","volume":"15 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-08-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the International Conference on Advances in Information Communication Technology & Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2979779.2979780","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Enterprise applications using in-memory databases prefer to run on scale up systems where the amount of memory and CPUs available are increasing with each generation. In addition to the cores/socket, the number of hardware threads per core has also increased. Increasing cores/socket and HW threads per core provides opportunities for more parallelism from application's perspective. But the applications fail to achieve the expected linear scaling due to various reasons. One of the key reason being the application having to serialize access to certain resources. Hardware transactional memory provides a way for the application to execute concurrently without serializing them using locks. We let the CPUs execute enter transactional mode concurrently and let them execute until a transaction failure is detected which primarily is due to cache line collision. Else, we let all of them succeed. Hardware transactional memory is available in Haswell processors from Intel and also in Power8 processors from IBM. The most important data structure where enabling parallel access becomes critical is a tree update or modify. Without this we will have to serialize the threads using a global lock which prevents the application from using all the available CPUs. In this paper, we will use an sample program of cache sensitive B+ tree (CSB+ tree) which is used in file-system meta-data indexing and in key-value database systems where the data access performance is very critical and compare the performance advantages of using a transactional memory and its scalability. Also, we will provide ways to improve or tune the performance.
使用CSB+树进行事务性内存分析
使用内存数据库的企业应用程序更喜欢在可扩展的系统上运行,在这种系统中,可用的内存和cpu数量每一代都在增加。除了内核/套接字之外,每个内核的硬件线程数量也有所增加。从应用程序的角度来看,增加每个核心的内核/套接字和HW线程提供了更多并行性的机会。但由于各种原因,应用未能达到预期的线性扩展。其中一个关键原因是应用程序必须序列化对某些资源的访问。硬件事务性内存为应用程序并发执行提供了一种方法,而无需使用锁对它们进行序列化。我们让cpu执行并发地进入事务模式,并让它们执行,直到检测到事务失败,这主要是由于缓存线碰撞。否则,我们就让他们都成功。硬件事务性内存可以在Intel的Haswell处理器和IBM的Power8处理器中使用。启用并行访问变得至关重要的最重要的数据结构是树的更新或修改。如果没有这个,我们将不得不使用全局锁来序列化线程,这将防止应用程序使用所有可用的cpu。在本文中,我们将使用一个缓存敏感B+树(CSB+树)的示例程序,该程序用于文件系统元数据索引和键值数据库系统中,这些系统的数据访问性能非常关键,并比较使用事务性内存的性能优势及其可扩展性。此外,我们还将提供改进或调优性能的方法。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信