缓存数据库数据组织方法

文档序号:6556497阅读:184来源:国知局
专利名称:缓存数据库数据组织方法
技术领域
本发明涉及数据库系统的体系结构设计技术领域,涉及到数据库物理数据组织技术领域,特别是涉及到一种缓存数据库的数据组织方法。
背景技术
数据库技术一直随着计算的发展而不断进步,随着智能移动终端的普及,人们对数据实时处理和管理要求的不断提高,嵌入式移动实时数据库越来越体现出其优越性,从而被学界和业界所重视。
在实时应用中,事务在运行前的操作逻辑(操作类型、顺序等)、数据集及其结构、行为以及时间的相关性等都是可预分析的。然而,对磁盘数据库而言,数据的I/O是造成事务执行时间不确定、预报不准确的关键因素。为此,要求以大内存作为实时数据库的主要存储介质,使一个事务在活动期间没有I/O,以达到较准确的预报,从而满足实时事务的定时限制。
因此,内存数据库是支持实时事务的最佳技术,其本质特征是其″主拷贝″或″工作版本″常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。显然,它要求较大的内存量,但并不要求任何时刻整个数据库都能存放在内存,即内存数据库系统还是要处理I/O。
实时内存数据库的设计打破传统磁盘数据库的设计观念,考虑内存直接快速存取的特点,以CPU和内存空间的高效利用为目标来重新设计开发各种策略与算法、技术、方法及机制。
实时事务要求系统能较准确地预报事务的运行时间,但对磁盘数据库而言,由于磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大。内存数据库将整个数据库或其主要的″工作″部分放入内存,使每个事务在执行过程中没有I/O,则为系统较准确估算和安排事务的运行时间,使之具有较好的动态可预报性提供了有力的支持,同时也为实现事务的定时限制打下了基础。
然而,在过去的二十年间,CPU速度的提高远远地超过了内存访问速度的提高。内存访问因而逐渐地成为很多计算机应用程序的性能瓶颈,包括需要较大内存量的内存数据库。而且,随着嵌入式硬件平台技术的不断进步,如IntelXscale PXA 27x系列巧妙的设计,使Data Cache可以配置为内存使用,从而提供了进一步大幅提高嵌入式数据库实时性性能的硬件基础。因此需要一种新的数据库数据组织技术,利用缓存的高速访问性能,进一步提高数据库的实时性。

发明内容
本发明的目的在于提供一种用于缓存数据库数据组织的方法。
本发明解决其技术问题采用的技术方案如下1)缓存数据库空间结构分层方法缓存数据库的存储空间是一个三层结构,各层结构存储不同的数据子集I.易失的处理器缓存,用以存放支持各事务的工作数据,是缓存数据库的工作版本,工作版本的数据是内存版本数据中最为常用的数据子集;II.易失的内存,用以存储一些活动的临时性数据,是缓存数据库的临时内存版本,内存版本的数据是外存版本的常用数据子集;III.非易失的外部存储器,用来存放完整的数据库数据,还要存放用作恢复的数据库备份。存储在非易失的外部存储器上的数据库数据称为缓存数据库的外存版本;2)数据库物理数据组织方法由于缓存数据库存储空间三层结构的存储介质各不相同,所以三层结构中物理数据的组织方法也有所不同I.工作版本,以缓存行作为基本单元,作为缓存空间分配和与内存版本进行数据交换的单位;II.内存版本,存储空间划分为和外存单元块大小相同的段,作为内存空间分配和与外存版本进行数据交换的单位,段内进而划分为缓存行大小相同的行;III.外存版本,以输入输出的块为基本单元组织数据;3)缓存数据库的数据装入与交换方法I.数据初始装入,数据库启动时,将使用频率最高的数据装载到缓存中,成为工作版本,频率较高的数据装载到内存中成为内存版本;II.缓存数据库各层数据交换,在缓存数据库运行中,根据数据使用频率的变化,各层间数据即时进行交换。
本发明与背景技术相比,具有的有益的效果是本发明是一种基于预测和存储介质特征的数据组织方法,其主要功能是系统根据数据使用频率预测数据在未来使用的可能性,并将频繁数据装入缓存,并根据数据的使用情况动态地在各层次数据版本之间交换数据。
(1)提高缓存数据预测智能性。系统可以更加根据数据的历史使用情况,生成工作版本数据集和内存版本数据集,在系统启动之时就将它们相应地加载入缓存和内存,不必在需要时才进行加载,并且可以使这些数据在一段时间之内驻留在缓存和内存之中。
(2)大幅提高频繁数据访问速度。系统可以让使用最频繁的数据常驻在CPU缓存之中,而不被替换。因此可以有效减少这些频繁数据访问的冷启动失配,从而提高了数据访问的速度。
(3)动态调整频繁数据集。由于工作版本数据集和内存版本数据集的确定很大程度上是由数据使用的频繁程度所决定的,而在系统运行过程中,数据使用的频繁程度会发生变化,所以系统必须动态地根据数据频繁程度的变化来适时地调整频繁数据集,也就是工作版本数据集和内存版本数据集,以决定哪些数据应该加载到缓存,哪些数据应该加载到内存。


图1是总体流程图;图2是数据分层和数据组织示意图;图3是系统实施例列表LC示意图;图4是系统实施例列表LM示意图;图5是数据初始装入流程图;图6是数据交换流程图。
具体实施例方式
缓存数据库数据组织方法的具体实现流程如下。
第一步缓存数据库空间结构分层。
根据缓存数据库使用得三层存储结构易失的处理器缓存、易失的内存、不易失的外存,数据在空间结构上被分为相应的三层,如图2所示I.工作版本。存放在易失的处理器缓存之中,是缓存数据库支持各事务的工作数据。工作版本的数据是内存版本数据中最为常用的数据子集;II.内存版本。存放在易失的内存之中,是缓存数据库一些活动的临时性数据,内存版本的数据是外存版本的常用数据子集;III.外存版本。存放在非易失的外部存储器之中,是缓存数据库完整的数据,还包括用作恢复的数据库备份。
第二步缓存数据库物理数据组织。
由于缓存数据库存储空间三层结构的存储器不同,各种存储器都有各自特征,所以各层结构中物理数据的组织也依据存储器的特征进行相适应的设计,以最好地利用存储器的优点I.工作版本。CPU缓存以缓存行为单位从内存进行数据读写,所以工作版本的数据以缓存行作为基本单元进行组织,作为缓存空间分配和与内存版本进行数据交换的单位。以Intel Xscale PXA 27x系列CPU为例,处理器的数据缓存行大小为32字节,则缓存数据库数据记录应该以4字节,8字节,16字节或32字节对齐,且每32字节组成一行,每一行有一个唯一的标识符LID,LID是一个二元组<B,L>,其中B为此行所处的块号,L为块内的行号。系统保持一个使用最频繁的行的列表LC,如图3所示。
II.内存版本。采用区-段式组织基于关系数据模型,它将存储空间逻辑地划分为″分区″,每一分区存储一个关系,物理上由若干″段″组成。一个段是内存中一固定长度的连续区域,它相当于″页″,是内外存I/O的单位,也是内存空间分配及内存数据库恢复的单位。每个段对应的数据都有一个唯一的标识符BID,用<B>表示,B为此行所处的段号。系统维护一个使用最频繁的段的列表LM,如图4所示。
III.外存版本。以输入输出的块为基本单元组织数据。
第三步缓存数据库的数据装入与交换。
影响缓存数据库的数据装入与交换的主要因素有数据本身及其事务的特征①数据易变性指其变更速率。不同数据有不同的变化速率,易变数据要频繁更新。
②数据活跃性指存取频率。应该保证活跃数据具有更大的可存取性。
③数据流行性指更新的及时性。流行数据必须保持与现实世界当前真实状态一致。
④数据相关性指多个数据经常被一起使用的程度。当装入或交换数据时,相关性强的数据应同时装入或交换。
⑤事务的特征这里只考虑影响数据装入与交换的那些事务特征。首先是在嵌套事务中,父子事务的数据是共享的,故在进行缓存和内存装入和与外存交换时,必须注意到这一点。其次是实时事务,其数据装入的次序及时机必须有利于保证满足其定时限制。再有,高优先级事务的数据显然应留驻缓存和内存,且不能交换出去。
(1)数据初始装入。
缓存数据库数据初始装入包括内存版本的数据装入和缓存版本的数据装入,内存版本的数据是外存版本的数据子集,从外存装入内存;缓存版本的数据是内存版本的数据子集,从内存装入缓存。
缓存数据库数据初始装入时,首先考虑的是事务的优先级。优先级高的事务先装入内存和缓存,或者不分优先级而按调度策略,将先执行的事务先装入内存和缓存;其次是数据的流行性,流行数据对应的事务往往也是高优先事务;再次就是活跃性,存取频率高的数据一般还是先要被存取的数据;紧密相关的数据则随时要考虑被使用。
数据初始装入的具体过程如图5所示①读取系统维护的列表LM;②从列表LM依次获得使用最频繁的数据的段号,将这些段加载到事先分配的内存段之中;③读取系统维护的列表LC;④从列表LC依次获得使用最频繁的数据的段号以及行号,将这些行加载到事先分配的缓存行之中。
(2)数据交换。
由于工作版本数据集和内存版本数据集的确定很大程度上是由数据使用的频繁程度所决定的,而在系统运行过程中,数据使用的频繁程度会发生变化,所以系统必须动态地根据数据频繁程度的变化来适时地调整频繁数据集,也就是工作版本数据集和内存版本数据集,以决定哪些数据应该加载到缓存,哪些数据应该加载到内存。
数据交换的具体过程如图6所示①如果访问的数据在缓存中,即在工作版本中,调整系统列表LC和LM;如果访问的数据不在缓存中,则从内存中访问数据,进入②;②如果访问的数据在内存中,即在内存版本中,调整系统列表LC和LM,并且如果LC发生变化,则在工作版本和内存版本间进行数据交换;如果访问的数据不在内存中,则从外存中访问数据,进入③;③调整系统列表LC和LM,如果LM发生变化,则在外存版本和内存版本间进行数据交换;如果LC发生变化,则在工作版本和内存版本间进行数据交换。
本发明可用c,c++语言实施。
权利要求
1.一种缓存数据库数据组织方法,其特征在于1)缓存数据库空间结构分层方法缓存数据库的存储空间是一个三层结构,各层结构存储不同的数据子集I.易失的处理器缓存,用以存放支持各事务的工作数据,是缓存数据库的工作版本,工作版本的数据是内存版本数据中最为常用的数据子集;II.易失的内存,用以存储一些活动的临时性数据,是缓存数据库的临时内存版本,内存版本的数据是外存版本的常用数据子集;III.非易失的外部存储器,用来存放完整的数据库数据,还要存放用作恢复的数据库备份。存储在非易失的外部存储器上的数据库数据称为缓存数据库的外存版本;2)数据库物理数据组织方法由于缓存数据库存储空间三层结构的存储介质各不相同,所以三层结构中物理数据的组织方法也有所不同I.工作版本,以缓存行作为基本单元,作为缓存空间分配和与内存版本进行数据交换的单位;II.内存版本,存储空间划分为和外存单元块大小相同的段,作为内存空间分配和与外存版本进行数据交换的单位,段内进而划分为缓存行大小相同的行;III.外存版本,以输入输出的块为基本单元组织数据;3)缓存数据库的数据装入与交换方法I.数据初始装入,数据库启动时,将使用频率最高的数据装载到缓存中,成为工作版本,频率较高的数据装载到内存中成为内存版本;II.缓存数据库各层数据交换,在缓存数据库运行中,根据数据使用频率的变化,各层间数据即时进行交换。
全文摘要
本发明公开了一种缓存数据库数据组织方法。它是通过采用处理器缓存可操作的硬件新特征,实现一种基于预测和存储介质特征的缓存数据库数据组织,其主要功能是系统根据数据使用频率预测数据在未来使用的可能性,将频繁数据装入缓存,大幅提高频繁数据访问速度。并能根据数据的使用情况动态地在各层次数据版本之间交换数据。
文档编号G06F12/08GK1831824SQ20061005018
公开日2006年9月13日 申请日期2006年4月4日 优先权日2006年4月4日
发明者陈天洲, 严力科, 蒋宁, 陈学亮 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1