智能存储器块替换的制作方法

文档序号:9865431阅读:407来源:国知局
智能存储器块替换的制作方法
【技术领域】
[0001] 本公开一般设及数据库,并且更具体地,设及替换或调换存储器中的数据。
【背景技术】
[0002] 内存数据库(in-memory database)被发展从而充分利用了现代硬件W提高性能。 通过在主存储器(main memo巧)(例如,随机存取存储器(RAM))中保持所有相关数据,能够 显著地加快数据处理操作。
[0003] 越来越多的企业和机构应用了内存数据库来处理和分析大数据(big data)。由于 所有的相关数据被保持在存储器中,内存数据库在运算速度方面无疑超过了传统的数据 库。然而,当可用的存储器大小(RAM)小于数据库的总数据大小时,将所有的数据保持在存 储器中也可能带来问题。例如,在运种情况下,每次小于整个数据库的被加载到存储器中。 存储器替换技术一般在运样的情形中被使用。例如,当前加载到存储器中的数据库的一部 分被替换为被请求的但是当前没有被加载到存储器中的数据库的另一部分。
[0004] 许多现有的存储器替换算法基于分页技术(paging technique),其主要处理在操 作系统等级上的存储器管理。存储器和程序的地址空间被划分到页框(page frame)。如果 请求的页不在主存储器中,则运些页将被换入(swap in)主存储器W用于运行。然而,运个 技术不适于不使用页的基于列的内存数据库。为了改进基于列的系统的数据扫描速度,内 存数据库通常在连续的地址空间中保存每一列。因此,存储器交换(swapping)/替换是基于 数据列,数据列通常远远大于页框。在运样的情况下,传统的基于页的存储器替换技术通常 不管用。

【发明内容】

[000引运里描述了用于替换或调换存储器中的数据的构架。根据一个方面,所述构架计 算将要从存储器中丢弃的加载的数据的量。可W基于加载的数据列与被请求的数据列的相 关性来选择将要从存储器中丢弃的候选的加载的数据列。所述构架还可W计算每个候选的 加载的数据列的分数,丢弃具有最高分数的一些候选的加载的数据列,并将被请求的数据 列加载到存储器中。
[0006] 利用W下将变得明显的运些W及其它优点和特征,通过参考下面的详细描述和所 附权利要求和参考附图,可W获得更多的信息。
【附图说明】
[0007] 所述详细描述是参考附图来阐述的。在附图中,参考标号最左边的(多个)数字标 识该参考标号第一次出现的附图。相同的参考标号在不同的附图中的使用指示类似或相同 的项目。
[0008] 图1是可W实施运里讨论的技术和设备的示例计算环境的框图。
[0009] 图2是示出根据示例的用于内存数据库的示例存储器的模型的示图。
[0010] 图3是示例存储器替换配置体系结构的框图。
[0011] 图4是示出用于存储器替换配置的示例关联计算的流程图。
[0012] 图5是示出可W与存储器替换配置一起被采用的示例算法的流程图。
[0013] 图6是示出用于替换或调换存储器中的数据的示例过程的流程图。
【具体实施方式】
[0014] 根据示例实施方式,公开了用于替换或调换存储器中的数据的各种技术和系统。 例如,参考图1,所述技术和系统描述了将当前处于存储器104中的数据列102交换、替换、调 换(等等)成被请求的数据列106,被请求的数据列106被(例如,从存储装置108)加载到数据 列102的位置。为了便于讨论,本公开参考示出的计算环境(系统)100描述了各种技术。然 而,所述描述也适用于其它计算环境、网络、其它形式和类型的计算模型等。
[0015] 传统的存储器替换算法可能太复杂而无法使用,或者太简单、考虑的因素太少。例 如,诸如数据块102的访问量、数据块102的存储器大小、W及不同的数据块102之间的相关 性的因素可能对选择决策具有重要的影响,但是通常未被包括在内。在示例中,在系统100 上操作的改进的数据替换模块(例如,配置、组件等)在另一个数据块(例如,数据列)1〇6需 要被换入存储器104时,识别并换出(swap out)其下一次使用(例如,请求)将在很久的将来 的数据块(例如,数据列)1〇2。运样的技术实施起来可能是有问题的,因为很难准确地预测 将来对数据块102的请求或将来对数据块102的使用。
[0016] 在一种实施方式中,最佳的存储器替换(例如,调换、交换等)配置300(见图3)利用 数据列102的不同集合被用于数据库中的不同类型的查询的概念,来调换存储器104内的数 据列102。例如,在商业情形中,类似类型的查询经常被接连地执行。也就是说,关于销售数 据的查询通常是一起运行的,而不是将关于销售数据的查询与关于生产数据的查询交错。 假设一起运行的数据彼此之间的相关性高于与其它数据块的相关性。
[0017] 在实施方式中,关联规则算法被用来分析数据库表格的当前加载的列102之间的 相关性。分析结果预测在最近的将来不会发生下一次使用的列102。换句话说,基于相对的 相关性,与当前加载到存储器104中的其它列102相比,将要被替换(或换出)的数据列102在 不久的将来被请求的可能性更小。在实施方式中,可W考虑多个因素,诸如,近期访问时间、 访问数量、大小、W及其它历史使用数据。在实施方式中,存储器替换配置300适应于数据库 系统行为的改变。例如,如果列102的使用在最近的时间段中急剧减少,则其被换出存储器 104的可能性增大。
[0018] 对于所具有的存储器104的量有限的内存数据库系统,存储器替换可能频繁地发 生。因此,希望对于交换列(把106换成102)的计算(例如,由处理器110执行)是快速的和/或 不频繁的,W便维持系统100的效率。在一个实施方式中,为了减少系统100开销,当系统100 工作负荷低时,示例存储器替换配置300周期性地(例如,每星期一次、每个月几次等)执行 关联规则算法。在大多数情况下,可W安全地假定在一段相对较短的时间内系统100行为不 会发生改变。在实施方式中,系统100被安排为通过关联规则算法的预先计算的结果来捜索 候选列102,而不是再次运行该算法。
[0019] 公开了对于替换存储器104中的数据102的各种技术。运里的讨论意图示出在可W 在针对基于列的数据库应用来最优化存储块调换的过程中利用的组件和技术,但是所描述 的示例并不意图成为限制性的。在各种实施方式中,可w包括更少的、替换的、或额外的组 件,W执行所描述的技术的各个部分,而同时保持在本公开的范围之内。
[0020] 图1显示了其中可W实施存储器替换配置300的技术和设备的示例计算环境(例 如,系统)100。在示例中,系统100使用控制组件,诸如处理器110,例如,向配置300自动地提 供存储器替换管理。在各种实施方式中,系统100自动地确定加载到存储器104中的哪些当 前加载的数据块(例如,列)1〇2将被调换或换出为存储在存储装置108中的被请求的数据块 (例如,列)106。
[0021] 在实施方式中,加载的数据块102和被请求的数据块106包括关联到关系数据库 (relational database)应用的数据列。在实施方式中,数据块102、106可W具有任何大小, 并且可W是不同的大小。因此,当把数据块106换出为数据块102时,可能并不是一对一的调 换。在运样的实例中,数据块106的大小被考虑,并且足够的数据块102被从存储器104中移 除W提供数据块106的大小。在替换的实施方式中,数据块102、106可W包括数据的任何组、 集合、配置等等,其具有任何大小(例如,字段量、字段大小、位或字节数等)、配置等。
[0022] 在实施方式中,存储器104包括随机存取存储器(RAM)等。在实施方式中,在运行应 用的同时,加载的数据块102被加载到存储器104中,W便被处理器110更快地存取。在其它 实施方式中,存储器104包括其它固定或临时存储器存储装置,其(与系统100的其它存储器 存储装置组件或设备相比)被处理器110快速地存取(读/写)。
[0023] 在实施方式中,存储装置108包括一个或多个存储器存储装置设备,其典型地被用 于批量数据存储,并且与存储器104相比,具有更大的容量。存储装置108的组件的非详尽的 列表包括:硬盘驱动器、软盘驱动器、光学驱动器、磁带驱动器等。
[0024] 在实施方式中,处理器110经由一个或多个算法执行存储块替换或调换,其包括: 用于确定当前加载的数据块102中的哪些将被换出为被请求的数据块106的技术。
[0025] 在各种实施方式中,系统100可W连接到网络。在替换的实施方式中,网络可W包 括诸如W太局域网(LAN)、令牌环LAN、或其它LAN、广域网(WAN)、系统区域网的网络,或其它 类型的网络,并且能够包括若干个节点或主机(未示出)。此外,网络还可W包括硬接线的 化ardwired)路径、光学路径、和/或无线连接路径。在各种实施方式中,存储装置108可W位 于远处,并经由网络(例如,远程服务器、云存储装置等)被存取。
[0026] 图2是示出示例存储器104的模型的示图。在示图中,根据示例,存储器104正与内 存数据库一起使用。如图2中所示,数据库的不同部分W及其它系统100组件可W被加载到 存储器104中。
[0027] 例如,存储器104可W包括空闲存储器(free memo巧)202和使用的存储器(204、 206、208、210、^及212)。在使用的存储器中的一些中,可^驻留当前加载的数据块102,包 括临时计算204、列表格206、行表格208、系统表格210、W及应用代码和/或存储器堆找212。 在各种
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1