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

文档序号:9865431阅读:来源:国知局
实施方式中,被请求的数据块106可W被加载到空闲存储器202中,除非对于被请求 的数据106的大小而言空闲存储器202不够。在运样的情况下,当前的加载到使用的存储器 中(诸如加载到表格(206、208、210)中)的数据102中的一些,可W从存储器104中移除并保 存到存储装置108。然后,存储在存储装置108中的被请求的数据106可W加载到释放的存储 器104空间中的存储器104中。
[0028] 在替换的实施方式中,系统100可W由更少的或额外的组件组成,在其中,不同地 安排的结构可w执行在本公开内讨论的技术。
[0029] 用于存储器替换的最常使用的算法之一包括当为被请求的数据块106让出空间时 首先丢弃最久远(least recently)使用(例如,存取)的数据项或块102。然而,由于数据块 102的最近的存取时间是仅有的被考虑的因素,运个技术可能造成问题。在示例中,考虑将 在数据库中运行的、从当前没有加载到存储器104中的106的两个列A和B请求数据的结构化 查询语言(S化)请求。数据库还包括102的一系列的列(series columns)C、D、E、F和G,它们 被加载到存储器104中,然而只有很少的或者没有可用的空闲存储器。
[0030] 根据最久远使用算法,从具有最遥远的访问时间的列102开始,一些列102被一个 接一个地丢弃。运个将持续,直到有足够的空闲存储器来加载被请求的列A和B(106)为止。
[0031] 在示例中,假设列E和G(l〇2)被选择,并且将从存储器104中丢弃。但是如果列A和B (106)具有与列E和G较高的相关性,则列E和G( 102)将在近期被存取的概率较高。因此,如果 列E和G(l〇2)被从存储器104中丢弃,则系统100的效率被降低,因为它们将需要在近期被重 新加载到存储器104中。因此,如果在交换存储器块102时考虑到附加的因素,包括列之间的 相关性,则能够改进系统100的效率。
[0032] 图3是根据一个实施方式的包括示例体系结构的示例存储器替代模块(例如,配 置、组件等)TMRA" )300的框图。在实施方式中,MRA300确定当前的加载到存储器104中的数 据块(例如,列)1〇2中的哪些将被调换或换出为存储在存储装置108中的被请求的数据块 (例如,列)106。在实施方式中,一个或多个因素,包括列(102、106)之间的相关性、近期列 102访问(例如,存取)时间、访问次数、列数102等,被MRA 300用来确定在存储器104中哪些 列102被替换为被请求的列106。
[0033] 在各种实施方式中,MRA 300的组件和模块可W具体体现为硬件和软件组件。例 如,所述组件和模块可W包括驻留在控制或处理器110中的硬件组件,和/或可W包括存储 在存储器104中并且可在处理器110上操作W执行所描述的功能的计算机可执行指令。
[0034] 如图3所示,MRA 300可W包括"A部分",其包括存储器替换引擎304。在实施方式 中,根据由MRA 300的组件确定的方向,引擎304管理存储器块调换或替换。换句话说,引擎 304对W下进行管理:将一些数据块102从存储器104中移出,W及将被请求的数据块106从 存储装置108移动到存储器104。
[0035] S化分析器302可W加载列106并确定数据块106的大小。在一个实施方式中,S化分 析器302接收关于SQL请求的信息,并确定需要哪些列106来实现所述请求。另外,基于将要 被加载的列l〇6,SQL分析器302检测希望用于被请求的列106的存储器104的量。因此,运个 信息由存储器替换引擎304接收,并用来管理存储器调换。
[0036] 数据加载器引擎306可W基于存储器替换引擎304的管理执行将存储器移出和移 入存储器104。例如,数据加载器引擎306将被请求的列106移入先前由数据块102占据的存 储器104位置。将数据106移入存储器104位置可W有效地从存储器104中丢弃先前的数据块 102。
[0037] 在各种实施方式中,客户端308提供将要运行的S化请求,而SQL执行器310运行SQL 请求。在实施方式中,由SQL执行器310运行SQL请求包括从数据加载器引擎306接收关于加 载的列106的信息。
[0038] 不同的列(102、106)之间的相关性可W由MRA300的吨部分"来确定。然而,如上所 述,列(102、106)之间的相关性并不需要在每次发生存储器调换时被计算。在各种实施方式 中,相关性在空闲时间被计算或者根据一定的时间延迟、周期性的、或预定的定时来计算。 在实施方式中,关联规则计算引擎312基于由S化历史模块314提供的请求和/或存取历史数 据,确定列(102、106)之间的相关性。
[0039] 列(102、106)之间的相关性可W在两个或更多个加载的列102之间、在两个或更多 个被请求的列106之间、和/或在一个或多个加载的列102与一个或多个被请求的列106之间 被确定。在各种实施方式中,相关性由关联规则计算引擎312使用一个或多个如运里所描述 的算法来确定。
[0040] 在一些实施方式中,到MRA 300的输入包括W下参数中的一个或多个:将要加载到 存储器104中的数据的大小、将要加载的列106、存储器104内的空闲存储器的大小、被运行 的S化历史等。在一个实施方式中,到MRA300的输入包括上述所有参数。MRA 300可W生成一 个或多个表格来确定为了被请求的列106而将要从存储器104中丢弃的候选列102。在另一 种实施方式中,MRA 300的输出包括其中列出候选列102的一个或多个生成的表格。
[0041 ] 例如,候选列102的表格(运里称为CANDIDATE_0)LUMNS)可W由关联规则算法(例 如,C0RRELATI0N_TABLE)和系统存储器表格生成。系统存储器表格记录了列102的状态、大 小W及其它信息,它们可用来检查一列102是否已经被加载到存储器104中。在实施方式中, 另一个算法可用来基于另一个表格(例如,C0MBINATI0N_O)LUMNS_SET)计算候选列102的哪 些组合应该被丢弃,W下进一步讨论。组合的分数可W基于大小、近期访问(例如,存取)时 间、访问次数、和列102数量来计算。在一个实施方式中,具有最高分数的组合将具有从存储 器104中丢弃的最高优先级。所选择的列102的标识符将被输出到存储器替换引擎304W用 于从存储器104中丢弃。
[0042] 在实施方式中,数据结构(例如,表格、矩阵等rnNode"被构建,用于计算列102之 间的相关性的目的。在实施方式中,表格"nNode"被设计用于每个事务,其中
[0043] nNode = (id,coll ,col2,col3···),
[0044] 并且id是事务的标识符,而col是事务中使用的列102。
[004引在实施方式中,另一个数据结构"mNode"被构建,用于计算所选择的列102的分数 的目的。在实施方式中,表格"mNode"被设计用于每个列,其中
[0046] mNode = ( id, t, vis its, size),
[0047] 并且id是存储器块的标识符,t是指示列102的近期访问时间的整数(访问越早,数 值越小)、visits是列102的访问量、而size是列102的大小。在示例中,变量id、time、visits 和size的值都可W从数据库的存储器替换引擎304中检索到。
[0048] 为了 W下讨论的目的,W下变量被用到:
[0049] >M_肥邸_SIZE:要求的总存储器104大小。
[0050] 参C0LUMN_LIST:被请求的列106列表。
[0051 ] >M_FREE_SIZE:空闲存储器202的大小。
[0052] ?G.SIZE:需要被丢弃的存储器的大小。
[0053] 参C0RRELATI0N_TABLE:运个表格记录列102之间的相关性。
[0054] 参MIN_SUPP0RT:关联规则算法的支持度的最小阔值。
[005引 ?MIN_C0NFIDENCE:关联规则算法的置信度的最小阔值。
[0056] 参 MIN_C0RRELATI0NS:默认相关性。
[0057] 参CANDIDATE_COLUMNS:全部具有与被请求的列106的相对更小
[0058] 的相关性并且已经被加载到存储器104中的候选列102。
[0059] 参C0MBINATI0N_C0LUMNS_WT:从候选列102生成的并且被用
[0060] 来计算目标函数W得到最优选择策略的列的组合集合。
[0061] 图4是示出用于存储器替换配置300的示例关联计算过程400的流程图。在各种实 施方式中,当满足一定条件时,用于关联计算的过程400可W在固定的(例如,用户定义的) 时间段被调度等等。例如,固定的时间段可W是灵活的和可配置的。过程400可W基于从客 户端308接收到的S化经由S化分析器302执行。
[0062] 在块402,过程400包括通过分析数据库的日志获得运行的S化和它们的事务Id。在 示例中,块402的输出能够如下W表格的形式示出:
[0063]
[0065] 皇
[0066] 在块404,过程400包括分析事务和设及的SQL, W计算每个事务所请求的列106。在 示例中,块404的输出能够如下W另一个表格的形式示出:
[0067]
[006引 整
[0069] 在块406,过程40
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1