LSM-tree

摘要

TPC-A基准测试应用程序是一个众所周知的设置示例,已对其进行了修改,以支持对历史记录进行有效查询以查询特定帐户的帐户活动。这需要在快速增长的“历史记录”表上按帐户ID进行索引。不幸的是,基于标准磁盘的索引结构(例如B树)将使事务的I / O成本有效地翻倍,以实时维护这样的索引,从而使总系统成本增加多达50%。显然,需要一种以低成本维持实时索引的方法。日志结构合并树(LSM-tree)是一种基于磁盘的数据结构,旨在为长期记录插入(和删除)率很高的文件提供低成本索引。 LSM树使用一种推迟和分批索引更改的算法,以一种类似于合并排序的有效方式将更改从基于内存的组件通过一个或多个磁盘组件进行级联。在此过程中,所有索引值都可以通过内存组件或磁盘组件之一连续访问(除了非常短的锁定时间)。与传统的访问方法(例如B树)相比,该算法大大减少了磁盘臂的移动,并且将提高在使用传统访问方法插入的磁盘臂成本超过存储介质成本的域中的性价比。 LSM树方法还可以推广到除插入和删除之外的其他操作。但是,在某些情况下,需要立即响应的索引查找将失去I / O效率,因此LSM树在索引插入比检索条目更常见的应用程序中最有用。例如,这似乎是“历史记录”表和日志文件的通用属性。第6节的结论将LSM树访问方法中内存和磁盘组件的混合使用与混合方法在内存中缓冲磁盘页面的普遍理解的优势进行了比较。

介绍

随着活动流管理系统中的长期交易变得商业化([10],[11],[12],[20],[24],[27]),将越来越需要提供对交易的索引访问日志记录。传统上,事务日志记录侧重于中止和恢复,并要求系统在正常处理中参考较短的历史记录,偶尔会有事务回滚,而恢复则使用批处理的顺序读取执行。但是,随着系统对更复杂的活动负责,构成单个长期活动的事件的持续时间和数量将增加到有时需要实时查看过去的交易步骤以提醒用户注意的程度。已经完成了什么。同时,系统的已知活动事件总数将增加到这样的程度:尽管现在可以预期的内存成本将持续下降,但现在用于跟踪活动日志的内存驻留数据结构不再可行。需要回答有关大量过去活动日志的查询意味着索引日志访问将变得越来越重要。即使使用当前的事务处理系统,提供索引以支持对具有大量插入量的历史表的查询也具有明显的价值。联网,电子邮件和其他接近事务的系统通常会产生大量日志,从而损害其主机系统。从一个具体的,众所周知的示例开始,我们在以下示例1.1和1.2中探索经过修改的TPC-A基准。请注意,本文中介绍的示例均涉及特定的数字参数值,以便于展示;概括这些结果是一项简单的任务。还要注意,尽管历史记录表和日志都包含时间序列数据,但是LSM-Tree的索引条目不假定具有相同的时间键顺序。唯一提高效率的假设是更新率高于检索率。

你可能感兴趣的:(笔记)