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

文档序号:9865431阅读:来源:国知局
0包括使用关联规则算法来计算列102之间的相关性。在各种实施 方式中,一个或多个用于生成关联规则的算法可W用来计算相关性。例如,一些可W被使用 的算法是APRIORI、ECLAT、W及FP-GR0WTH算法。在实施方式中,关联规则计算引擎312执行 相关性计算。
[0070] 例如,APRI0RI算法可W用来挖掘关联规则,如图5的过程500的流程图中所示。过 程500可W使用广度优先捜索策略来计算项目集合的支持度,并且使用利用了支持度的向 下封闭属性(downward)的候选生成函数。例如,APRI0RI算法过程500使用广度优先捜索和 散列树化ash tree)结构来有效率地计算候选项目集合。
[0071 ]例如,在块502,过程500开始,而在块504,过程500包括将变量k初始化到1。在块 506,过程包括从长度k-1的项目集合中生成长度k的候选项目集合。在块508,过程包括修剪 (prune)具有不频繁子模式(infrequent sub pattern)的候选。根据向下封闭引理,(块 510、512)候选集合包含所有频繁的k长度的项目集合。运之后,过程包括扫描事务数据库, W确定候选当中的频繁的项目集合。当k到达最大时,过程停止(在块514)。
[0072] 在示例中,用于APRI0RI算法的过程的伪码如下:
[0073]
[0074] 算法APRI0RI的过程500可W产生Ξ个双数(double number)作为输出;包括支持 度、置信度和提升度。项目集合X的支持度SUPP(X)被定义为数据集合中包含项目集合的事 务的比例:
[0075] SUPP(X)=CNT(X)/CNT;
[0076] 其中,CNT(X)是掲示包含项目集合X的事务计数的函数,而CNT是事务的总计数。
[0077] 规则的置信度被定义为:
[007引 C0NFGX =? Y) == SUPPpC υ Y;)/SU'PFiX)
[0079] 并且规则的提升度被定义为:
[0080] LIF巧X 巧二 SUPP〇( υ ¥)/巧UPP(X) * SUPPCY))
[0081] 在一些实施方式中,计算最终相关性的公式可w如下定义。为了简化计算,可w使 用线性模型。所得到的公式被示为:
[0082] Ci = a*Confidencei+帕(l-Suppo;rti)+ 丫 *(1-Lifti),
[0083] 其中Conf 1(16]1。61、5啡口〇1'心和11打1能够从上述^个公式中计算。参数:日、0和丫 被用来调整公式的Ξ个因子的影响。
[0084] 为了最小化计算规模和改进算法过程500的效率,不满足先前定义的最小SUPPORT 和最小CONFIDENCE的项目可W被删除。在一些情况下,运可能导致运样的结果:只有具有相 对较高相关性的那些列102、106被记录在结果表格中。然而,具有更低的相关性的列102、 106也可W是有用的。为了保证具有更低相关性的列102、106被包括,最小相关性值(例如, MIN_C0RRELATI0NS)可W被选择W包括那些列102、106。
[0085] 在一个实施方式中,能够确定具有等于所选择的MIN_C0RRELATI0NS值的相关性值 (即,相关性程度)的列102、106是不相关的。因此,MIN_C0RRELATI0NS值可W被选择和/或调 整W便调整解集合(solution set)。在实施方式中,结果(例如,各种列102、106之间的示例 相关性程度)可W如下W表格形式示出:
[0086]
[0087] 整
[0088] MRA 300可W被配置为使用存储器块替换算法,基于上述确定的相关性程度,将加 载到存储器中的列102调换为被请求的列106。在各种实施方式中,MRA 300被配置为使用各 种其它因子、参数、约束等等,如运里讨论的,W将列102调换或替换为列106。
[0089] 变量M_肥邸_5126和]?_。1祀6_5126可W如所示来确定:
[0090] G_SIZE=M_NEED_SIZE-M_FREE_SIZE。
[0091] 在一些实施方式中,如果G_SIZE小于零,则内存数据库具有足够的空闲存储器202 来加载必要的列106。存储器替换引擎304可W经由数据加载器引擎306加载所有相关的列 106到存储器中。然而,如果G_SIZE大于零,则存储器替换引擎304继续基于一个或多个替换 算法来丢弃不小于G_SIZE的、列102中的一个或多个。
[0092] S化分析器302可W被配置为确定M_肥邸_SIZE,而存储器替换引擎304被配置为确
[0093] 由于所选择的列106的总大小必须不小于G_SIZE,保证运个关系的约束函数被如 下示出:
[0094]
[0095] Di e C0MBINATI0N_C0LUMNS_WT;
[0096] 其中Di是C0MBINATI0N_C0LUMNS_SET的项目,集合C0MBINATI0N_C0LUMNS_SET是 CANDIDATE_COLUMNS的集。C(Di)表示子集化中列的数量,而0〇'.)是返回列j的大小的函数。
[0097] 如何从候选列102的集合中选择要丢弃的列102的问题可W公式化为最优化问题。 各种算法中的一个或多个可用来解决运个问题。例如,最久远使用化east Recently Used, L抓)算法可W被使用。LRU算法的优点是其可W是相当地简单,并且具有较低的计算成本。 利用LRU算法,目标函数不被使用。在实施方式中,具有最早访问时间的列被一个接一个地 选择,直到列102或多个列102满足约束函数。相对好的结果可相对小的计算成本来实 现。LRU算法的伪码被如下示出:
[009引
[0099] 在另一种实施方式中,通过使用随机选择算法(random selection algorithm, RSA)可WW相对较低的计算成本实现更好的结果。使用RSA,最大运行时间可W是用户设置 的,而列的最大数量可W是用户选择的。用户选择是可选的,并且能够在极端情况下避免大 量的迭代。在实施方式中,RSA使用目标函数,其可W如下设计:
[0100]
[0101] DieC0MBINATI0N_C0LUMNS_WT.
[0102] 在上述公式中,Di是CANDIDATE_COLUMNS的子集;C(Di)是子集Di中列的数量;τ (j) 是指示列j的近期访问时间的整数;φ狱是列j的访问数;0(/)是列巧时皮请求的列1〇6之间 的相关性。Ξ个自变量:α、β、丫被用来调整公式的Ξ个因子的影响。它们的值在零到一之 间。
[0103] 在实施方式中,具有更早访问时间、更低访问数、和更低相关性的列102将具有更 高的化,并且将具有从存储器104中被丢弃的更高的优先级。目标函数是线性函数并且具有 较高的配合质量(fitness quality)。
[0104] 最后,在实施方式中,MRA 300的目标是根据W下公式选择具有最大分数的列102 的集合:
[0105] 沈 LECTED_COLUMNS =
[0106] (ar卵axScore(Di) |DieC0MBINATI0N_C0LUMNS_WT}
[0107] 公式的伪码可W如下编写:
[010 引
[0109] 函数RUNTIMEO可W定义为算法的当前运行时间的返回。
[0110] 为了得到不考虑计算成本的情况下的最佳结果,MRA 300可W计算满足约束函数F (Di)的候选列的所有子集的Di,然后具有最大化值的列102将被从存储器中丢弃。伪码可W 如下示出:
[0111]
[0112] 函数RUNTIMEO可W定义为算法的当前运行时间的返回。
[0113] 图6是示出用于将存储器104中的数据102替换或调换为被请求的数据106的示例 过程600的流程图。例如,当数据块106被内存数据库请求时,过程600使用一个或多个存储 器替换算法将存储器104中的数据块102替换为数据块106。过程600被参考图1到图5来描 述。
[0114] 对过程400、500和600进行描述的次序并不意图被解释为限制,并且任意数量的被 描述的过程块可任意次序组合W实施该过程,或者替换的过程。另外,单个的块可W从 所述过程中删除而不脱离运里描述的主题的精神和范围。而且,所述过程可任何适当 的组件、或者它们的组合来实施,而不脱离运里描述的主题的范围。
[0115] 在块602,过程开始,并且在块604,过程包括分析将要加载的被请求的列(例如,数 据块、诸如数据块106,例如),包括数据块的大小。在实施方式中,过程包括分析数据库日志 W确定运行的结构化查询语言(S化)请求W及分析相关联的被请求的数据块W确定将用于 将被请求的数据块加载到存储器中的存储器的量。
[0116] 在块606,过程包括计算将要从存储器中丢弃的加载的数据的量W便为被请求的 数据块(例如,列)让出空间。例如,过程包括计算当空闲存储器的量小于被请求的数据块的 大小时将要从存储器中丢弃的加载的数据的量。
[0117] 在块608,过程包括进行检查W了解所需空间的量是否大于零。例如,如果所需空 间的量小于零,则不会从存储器中丢弃数据块W加载被请求的数据块。
[0118] 在块610,过程包括基于加载的数据块与被请求的数据块的相关性,选择将要从存 储器中丢弃的候选的加载的数据块。在实施方式中,过程包括使用关联规则算
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1