18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 实时数据库缓冲区管理(数据库)

实时数据库缓冲区管理(数据库)

时间:2022-11-13 10:30:01 | 来源:信息时代

时间:2022-11-13 10:30:01 来源:信息时代

    实时数据库缓冲区管理 : 支持实时事务执行所需内存空间的管理,包括事务的工作(数据)缓冲区、日志记录缓冲区、I/O缓冲区等。它极大地影响着RTDB的系统性能和事务定时限制的满足。当接纳一个事务时,就要为其分配空间;若当前无充足的空缓冲区,则选择一些已占区被替换出去,以腾出空间。下面是适合于实时事务的基于优先级的缓冲区管理策略。
1. P-LRU(priority-least recently used)策略
它将缓冲区按其占有者事务的每一优先级组成一个队,队内按“最近被使用”的早晚排序,所有空的缓冲区组成一个队,如图1所示。按P-LRU策略,系统跟踪所有活动事务当前使用的页面(总数)。当一事务到达系统时,若有足够的空区,则接纳,将分给它的页面记入相应的优先级队列,标上“使用时标”(初始为0的单调递增整数); 否则,若有优先级比它低的活动事务,则“挂起”其中一(或多)个事务,以替换出足够的它(们)的缓冲区给新到达的事务;若无优先级比它低的活动事务可让出缓冲区,则它只有等待。当有事务完成或者夭折从而回收它所占有的页面时,则重激活“挂起”的事务或接纳等待的事务。


图1 P-LRU缓冲池组织的例子


如何选择替换的页面,首先考虑优先级低的队列,而在一队中则先考虑“最近使用时标”(见图1)最小者。若单纯地考虑这两个因素,则各队中最可能被替换的页面集始终为各队的使用时标最小者的集合PLRU,如图1中PLRU={P1,…,P16,P17}。这不一定合理,它过于偏向优先级而未考虑页面使用时标的全局性,因为这些使用时标的最小是局限于各队的,并非全局的,图1中P1的使用时标在本队中是最小的,可它比Prm-1队的最大者P18的还大。为此,应设立一个“替换窗口”WR,实际就是一个阈值参数,它可动态调整,改变它则在进行替换时便改变了优先级与使用时标的相对重要程度。
例如,在图1中,设当前用来作页面存取的时标值为100,WR为20。从Pr1队列的页P1开始选择,由于100-77>20,则P1作为替换者;若改变WR成25,则替换者应为P17
2. P-LFU策略
P-LFU(priority-least frequently used)策略是P-LRU策略的一个变种,只要在P-LRU策略中将“使用时标”改为“使用次数”即可。
3. 优先夭折
将并发控制中的“高夭折低”策略直接用于缓冲区管理。当一事务T不能获得足够所需的缓冲区页面时,它就夭折一个优先级比它低的活动事务,释放该事务所占有的所有缓冲区页面而为T所用。选择牺牲者要考虑的因素: 第一是优先级,牺牲者的优先级比等待者(可能多个)都低(但不一定是最低); 第二是占有的缓冲区页面数,夭折的事务所能释放的页面应尽可能的多。优先级比等待者低的所有事务中,优先级最低而占有页面数最多的事务作牺牲者当然是理想的。若无此理想者存在,则以能满足等待者的页面要求为准。
可能存在一个高优先级事务夭折一个低优先级事务后,仍然不能获得所需的缓冲区页面的情况,这是因为: 第一,所有优先级低的事务中的任一个占有的页面数都不够; 第二,正在此时,一个新的更高优先级事务要求缓冲区页面,因而抢先获得所释放的页面。在这种情况下,只有夭折多个事务以提供足够的页面,但必须有一个限制,否则夭折和重启动太多的事务会浪费系统太多的资源,从而使整个系统性能下降。实验表明,一般限制最多夭折4个事务为佳。
与在并发控制中所讨论的一样,还可以有各种优先夭折策略的变种,尤其是还可考虑候选牺牲者已完成和待完成的计算量的多少,若一事务虽然满足牺牲者的条件,但它已执行了大量计算,仅等很短时间便可完成而释放其所占有的页面,现夭折它,不是很可惜吗?这样既影响该事务,又反而浪费系统资源,加重系统负担。
4. 优先继承
其思想与并发控制中完全一样,当一高优先级事务T不能获得所需的缓冲区页面时,选择一个低优先级事务,但不是像上面所述夭折它,而是提高它的优先级到T的优先级,让它继续尽快执行完成以尽早释放其页面。这里作继承者的候选条件是优先级低、待计算量最少且最接近其截止时间,因为最接近其截止时间的事务也应该比其他事务早完成。
这种策略较上述优先夭折策略,在缓冲区的紧张程度不太高的情况下更好。

74
73
25
news

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

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