18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 内存数据库数据交换(数据库)

内存数据库数据交换(数据库)

时间:2022-11-04 10:30:02 | 来源:信息时代

时间:2022-11-04 10:30:02 来源:信息时代

    内存数据库数据交换 : 内存数据库中内存版本与版本间的数据交换。内存数据库并非任何时候其整个数据库都在内存,因此存在着M-DB与S-DB两个版本之间的数据I/O,称为内存数据库的数据交换。其交换策略与方法如下:
1. 策略分析
内存数据库的定义未要求(也不应该要求)内存要足够大,以致整个数据库都始终在内存,故系统仍然要借助外存的能力,通过提供一种内外存数据交换策略来支持MMDB的实现。具体分析如下:
(1)易变性高的数据要常驻内存0-DB中,一般不要交换出去。
(2)活跃或高频数据应留驻内存0-DB中,一般不应交换出去。
(3)立即流行数据在第一个处理请求之前不能被交换出去,因为它“立即”被存取。
(4) 高优先级事务的数据在事务的活动期间不要被交换出去。为此,可给内存中的每一数据赋以“优先级天花板”,即存取它的各事务的优先级最高者,每当要交换时,选取“优先级天花板”的当时最低者换出。
(5)短暂数据和关键数据最好不要换出。短暂或临时数据不久就会过时(成为无用),交换反而增加系统负担。关键数据至关重要,要保证对它的存取的及时有效性;另一方面,每当这种数据变更时,都必须保留稳定(非易逝)副本,这已提供了一种交换时机。
综合上述因素,可构造一个对于任一数据x的“交换函数”:


其中,V(x)是x的有效期,q(x)为x的平均存取频率,c(x)为x的流行性程度(即可延迟处理的延时长度);pc(x)>0为x的“优先级天花板”,其值越大,优先级就越低; D(x)表示x的永久性程度(即需保存的时间长度),k(x)为x的关键性程度,当k(x)<0时,则表明x刚变更,需留稳定副本,正是好的交换时机。wi(i=1,2,…,6)为加权系数,需要针对系统的实际情况和应用语义,灵活动态地确定。每当有交换要求时,计算各SW(x)的值,取其最大者交换出内存。对于给定的x,其SW(x)的值将随时间的推移和活动事务的不同而变化,因为式中的各项都是动态变化的。因此,SW(x)难以静态计算。
2.基于事务预分析处理的交换方法
基于对事务的预分析处理可以知道事务所需数据集、这些数据的处理时机及存取顺序,从而可在需要时较准确地进行内外存的数据交换。
(1)数据的多映像: 进行交换的数据单位可以是单个元组(记录)、元组集(页或块)、关系(文件)等。为了便于讨论,引入抽象的“数据库片”来统一描述存储数据的单位。一个MMDB(M-DB和S-DB)是“数据库片”的集合,每一数据库片在不同的时候有不同的状态(值),每一状态称为一种映像,在时刻t,数据库片x可能有的映像有三种:①当前映像CUI[x,t](current image): 若x当前在M-DB,则CUI[x,t]就是它当前在内存的状态;若x当前不在M-DB,则CUI[x,t]为x在S-DB中的状态,即与其后备映像相同。②后备映像BAI[x,t](backup image): 对于时刻t,x在S-DB中的状态。③提交映像COI[x,t](commited image): 到时刻t为止,最后一个提交事务对x所产生的映像。显然,它与CUI[x,t],BAI[x,t]都可能不同。
(2)交换策略: 一个事务经过预分析处理后可表示为T={Pi|Pi为数据库存取过程,1≤i≤n}。对于任何一个T,各Pi之间存在一种执行时序关系,不失一般性地设其为P1,P2,…,Pn,则T的存取数据序列便为D(T)={D(P1),D(P2),…,D(Pn)},其存取时间序列为τ(T)={τ(P1),τ(P2),…,τ(Pn)},其中D(Pi)为Pi的存取数据集。称偶集HT=(D(T),τ(T))为T的数据库存取经历。
若一个交换策略能使事务T的HT中避免取进已在M-DB中的片、换出已在S-DB中的片以及重复出进的情形,则称为是“合理的”; 若能保证T在任何时刻τ(Pi),其所需数据集D(Pi)已在M-DB中,则称为是“有效的”。若一个交换策略既是合理又是有效的,且能保证在时刻τ(Pi)的每一换进片是所需数据D(Pi)的CUI[D,τ]对BAI[D,τ]的更新部分,换出的片数正是内存可用空间不足的片数,则称为是“理想的”。可以证明对应一个事务的数据库存取经历的“理想”交换策略是最佳的。
(3)交换策略评价: 对于一个给定事务T的数据库存取经历(D(T),τ(T)),称对偶序列(R,G)为一个交换,其G=(G1,G2,…,Gm)和R=(R1,R2,…,Rm)分别为换进和换出的数据库片序列。其性能可从下列方面来评价: ①存取代价 即读入和写出的MDB的数据库片数为:COSTs=|Gi|+|Ri|。②处理时间代价为:COSTt=tG×|Gi|+tR×|Ri|, 其中,tG和tR分别为读入和写出一数据库片所需时间。③平均内存需求量为:COSTm=1/(pt)m(t)dt,其中,m(t)是对应事务要求的数据库片数的时间函数,pt为执行该事务的各预取过程P′i所需总时间,即pt=tG×|Gi|, 或者也可用时空矩来衡量:COSTtm=pt×COSTm=m(t)dt。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭