CN100383792C - 缓存数据库数据组织方法 - Google Patents

缓存数据库数据组织方法 Download PDF

Info

Publication number
CN100383792C
CN100383792C CNB2006100501867A CN200610050186A CN100383792C CN 100383792 C CN100383792 C CN 100383792C CN B2006100501867 A CNB2006100501867 A CN B2006100501867A CN 200610050186 A CN200610050186 A CN 200610050186A CN 100383792 C CN100383792 C CN 100383792C
Authority
CN
China
Prior art keywords
data
version
cache
internal memory
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006100501867A
Other languages
English (en)
Other versions
CN1831824A (zh
Inventor
陈天洲
严力科
蒋宁
陈学亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CNB2006100501867A priority Critical patent/CN100383792C/zh
Publication of CN1831824A publication Critical patent/CN1831824A/zh
Application granted granted Critical
Publication of CN100383792C publication Critical patent/CN100383792C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种缓存数据库数据组织方法。它是通过采用处理器缓存可操作的硬件新特征,实现一种基于预测和存储介质特征的缓存数据库数据组织,其主要功能是系统根据数据使用频率预测数据在未来使用的可能性,将频繁数据装入缓存,大幅提高频繁数据访问速度。并能根据数据的使用情况动态地在各层次数据版本之间交换数据。

Description

缓存数据库数据组织方法
技术领域
本发明涉及数据库系统的体系结构设计技术领域,涉及到数据库物理数据组织技术领域,特别是涉及到一种缓存数据库的数据组织方法。
背景技术
数据库技术一直随着计算的发展而不断进步,随着智能移动终端的普及,人们对数据实时处理和管理要求的不断提高,嵌入式移动实时数据库越来越体现出其优越性,从而被学界和业界所重视。
在实时应用中,事务在运行前的操作逻辑(操作类型、顺序等)、数据集及其结构、行为以及时间的相关性等都是可预分析的。然而,对磁盘数据库而言,数据的I/O是造成事务执行时间不确定、预报不准确的关键因素。为此,要求以大内存作为实时数据库的主要存储介质,使一个事务在活动期间没有I/O,以达到较准确的预报,从而满足实时事务的定时限制。
因此,内存数据库是支持实时事务的最佳技术,其本质特征是其″主拷贝″或″工作版本″常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。显然,它要求较大的内存量,但并不要求任何时刻整个数据库都能存放在内存,即内存数据库系统还是要处理I/O。
实时内存数据库的设计打破传统磁盘数据库的设计观念,考虑内存直接快速存取的特点,以CPU和内存空间的高效利用为目标来重新设计开发各种策略与算法、技术、方法及机制。
实时事务要求系统能较准确地预报事务的运行时间,但对磁盘数据库而言,由于磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大。内存数据库将整个数据库或其主要的″工作″部分放入内存,使每个事务在执行过程中没有I/O,则为系统较准确估算和安排事务的运行时间,使之具有较好的动态可预报性提供了有力的支持,同时也为实现事务的定时限制打下了基础。
然而,在过去的二十年间,CPU速度的提高远远地超过了内存访问速度的提高。内存访问因而逐渐地成为很多计算机应用程序的性能瓶颈,包括需要较大内存量的内存数据库。而且,随着嵌入式硬件平台技术的不断进步,如IntelXscale PXA 27x系列巧妙的设计,使Data Cache可以配置为内存使用,从而提供了进一步大幅提高嵌入式数据库实时性性能的硬件基础。因此需要一种新的数据库数据组织技术,利用缓存的高速访问性能,进一步提高数据库的实时性。
发明内容
本发明的目的在于提供一种用于缓存数据库数据组织的方法。
本发明解决其技术问题采用的技术方案如下:
1)缓存数据库空间结构分层方法:
缓存数据库的存储空间是一个三层结构,各层结构存储不同的数据子集:
I.易失的处理器缓存,用以存放支持各事务的工作数据,是缓存数据库的工作版本,工作版本的数据是内存版本数据中最为常用的数据子集;
II.易失的内存,用以存储一些活动的临时性数据,是缓存数据库的临时内存版本,内存版本的数据是外存版本的常用数据子集;
III.非易失的外部存储器,用来存放完整的缓存数据库数据,还要存放用作恢复的缓存数据库备份。存储在非易失的外部存储器上的缓存数据库数据称为缓存数据库的外存版本;
2)缓存数据库物理数据组织方法:
由于缓存数据库存储空间三层结构的存储介质各不相同,所以三层结构中物理数据的组织方法也有所不同:
I.工作版本,以缓存行作为基本单元,作为缓存空间分配和与内存版本进行数据交换的单位;
II.内存版本,存储空间划分为和外存输入输出的块大小相同的段,作为内存空间分配和与外存版本进行数据交换的单位,段内进而划分为缓存行大小相同的行;
III.外存版本,以输入输出的块为基本单元组织数据;
3)缓存数据库的数据装入与交换方法:
为了确定缓存数据库的工作版本和内存版本数据,缓存数据库会维护两个列表LM和LC;列表LM记录了使用最频繁的段,LC记录了使用最频繁的行;
I.数据初始装入,缓存数据库启动时,先从列表LM依次获得使用最频繁的数据的段号,将这些段加载到事先分配的内存段之中,成为内存版本;然后从列表LC依次获得使用最频繁的数据的段号以及行号,将这些行加载到事先分配的缓存行之中,成为工作版本;
II.缓存数据库各层数据交换,在缓存数据库运行中,根据数据使用频率,列表LM和LC会随之调整,各层间数据也随列表LM和LC变化即时进行交换。
本发明与背景技术相比,具有的有益的效果是:
本发明是一种基于预测和存储介质特征的数据组织方法,其主要功能是系统根据数据使用频率预测数据在未来使用的可能性,并将频繁数据装入缓存,并根据数据的使用情况动态地在各层次数据版本之间交换数据。
(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++语言实施。

Claims (1)

1.一种缓存数据库数据组织方法,其特征在于:
1)缓存数据库空间结构分层方法:
缓存数据库的存储空间是一个三层结构,各层结构存储不同的数据子集:
I.易失的处理器缓存,用以存放支持各事务的工作数据,是缓存数据库的工作版本,工作版本的数据是内存版本数据中最为常用的数据子集;
II.易失的内存,用以存储一些活动的临时性数据,是缓存数据库的临时内存版本,内存版本的数据是外存版本的常用数据子集;
III.非易失的外部存储器,用来存放完整的缓存数据库数据,还要存放用作恢复的缓存数据库备份,存储在非易失的外部存储器上的缓存数据库数据称为缓存数据库的外存版本;
2)缓存数据库物理数据组织方法:
由于缓存数据库存储空间三层结构的存储介质各不相同,所以三层结构中物理数据的组织方法也有所不同:
I.工作版本,以缓存行作为基本单元,作为缓存空间分配和与内存版本进行数据交换的单位;
II.内存版本,存储空间划分为和外存输入输出的块大小相同的段,作为内存空间分配和与外存版本进行数据交换的单位,段内进而划分为缓存行大小相同的行;
III.外存版本,以输入输出的块为基本单元组织数据;
3)缓存数据库的数据装入与交换方法:
为了确定缓存数据库的工作版本和内存版本数据,缓存数据库会维护两个列表LM和LC;列表LM记录了使用最频繁的段,LC记录了使用最频繁的行;
I.数据初始装入,缓存数据库启动时,先从列表LM依次获得使用最频繁的数据的段号,将这些段加载到事先分配的内存段之中,成为内存版本;然后从列表LC依次获得使用最频繁的数据的段号以及行号,将这些行加载到事先分配的缓存行之中,成为工作版本;
II.缓存数据库各层数据交换,在缓存数据库运行中,根据数据使用频率,列表LM和LC会随之调整,各层间数据也随列表LM和LC变化即时进行交换。
CNB2006100501867A 2006-04-04 2006-04-04 缓存数据库数据组织方法 Expired - Fee Related CN100383792C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100501867A CN100383792C (zh) 2006-04-04 2006-04-04 缓存数据库数据组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100501867A CN100383792C (zh) 2006-04-04 2006-04-04 缓存数据库数据组织方法

Publications (2)

Publication Number Publication Date
CN1831824A CN1831824A (zh) 2006-09-13
CN100383792C true CN100383792C (zh) 2008-04-23

Family

ID=36994120

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100501867A Expired - Fee Related CN100383792C (zh) 2006-04-04 2006-04-04 缓存数据库数据组织方法

Country Status (1)

Country Link
CN (1) CN100383792C (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117248A (zh) * 2011-03-09 2011-07-06 浪潮(北京)电子信息产业有限公司 一种缓存系统和在缓存系统中缓存数据的方法
CN102833769A (zh) * 2012-09-20 2012-12-19 苏州坤里达信息科技有限公司 一种无线通信网络系统中的干扰矩阵高效管理方法
CN103793485B (zh) * 2014-01-20 2017-07-11 锐达互动科技股份有限公司 客户端基于缓存数据实现查询网络数据的方法
CN105704184A (zh) * 2014-11-28 2016-06-22 国网河南省电力公司南阳供电公司 一种基于层级框架的电网组织解析系统及解析方法
CN104699422B (zh) * 2015-03-11 2018-03-13 华为技术有限公司 缓存数据的确定方法及装置
CN105117933A (zh) * 2015-08-05 2015-12-02 北京奇虎科技有限公司 一种广告物料数据调取方法和装置
CN107402982A (zh) * 2017-07-07 2017-11-28 阿里巴巴集团控股有限公司 数据写入、数据匹配方法、装置及计算设备
CN107515946A (zh) * 2017-09-05 2017-12-26 合肥爱吾宠科技有限公司 网站管理用编辑系统
CN107846681A (zh) * 2017-10-10 2018-03-27 北京小米移动软件有限公司 信息更新方法及装置
CN109697037A (zh) * 2019-01-22 2019-04-30 深圳忆联信息系统有限公司 节省本地dram的方法、装置、计算机设备及存储介质
CN109976905B (zh) * 2019-03-01 2021-10-22 联想(北京)有限公司 内存管理方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023656A1 (en) * 2001-09-13 2003-03-20 Jda Software Group, Inc Database interface architecture with time-based load balancing in a real-time environment
CN1514370A (zh) * 2002-12-31 2004-07-21 深圳市中兴通讯股份有限公司 一种移动用户高性能hlr/auc移动用户数据库实现方法
CN1529457A (zh) * 2003-09-29 2004-09-15 中兴通讯股份有限公司 通信系统中基站与服务器数据库实时同步方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023656A1 (en) * 2001-09-13 2003-03-20 Jda Software Group, Inc Database interface architecture with time-based load balancing in a real-time environment
CN1514370A (zh) * 2002-12-31 2004-07-21 深圳市中兴通讯股份有限公司 一种移动用户高性能hlr/auc移动用户数据库实现方法
CN1529457A (zh) * 2003-09-29 2004-09-15 中兴通讯股份有限公司 通信系统中基站与服务器数据库实时同步方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Oracle 9i数据库性能优化. 姚树春,朱艳琴.电脑知识与技术,第2005卷第8期. 2005 *
Oracle数据库内存优化配置. 李瑛,丁勇胜,孔波.海军航空工程学院学报,第19卷第5期. 2004 *

Also Published As

Publication number Publication date
CN1831824A (zh) 2006-09-13

Similar Documents

Publication Publication Date Title
CN100383792C (zh) 缓存数据库数据组织方法
CN107967124B (zh) 一种分布式持久性内存存储系统及方法
CN100541454C (zh) 一种数据缓存方法及系统
US11188262B2 (en) Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
CN103246616B (zh) 一种长短周期访问频度的全局共享缓存替换方法
CN101673188B (zh) 一种固态硬盘的数据存取方法
CN102364474B (zh) 用于机群文件系统的元数据存储系统和管理方法
KR102137761B1 (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
CN101373445B (zh) 一种内存调度方法及装置
CN100541453C (zh) 大容量缓存实现方法及存储系统
CN109240946A (zh) 数据的多级缓存方法及终端设备
CN103942161B (zh) 只读缓存的去冗余系统及方法以及缓存的去冗余方法
US20130198453A1 (en) Hybrid storage device inclucing non-volatile memory cache having ring structure
CN101000581A (zh) 使用请求调页技术的系统中减少页替换时间的方法和设备
CN104778126A (zh) 非易失性主存中事务数据存储优化方法及系统
CN101676906A (zh) 一种利用位图对内存数据库空间进行管理的方法
CN102411632B (zh) 基于链表的内存数据库页式存储方法
CN106201918B (zh) 一种基于大数据量和大规模缓存快速释放的方法和系统
CN100377118C (zh) 基于sram的嵌入式文件系统的实现方法
CN102681792B (zh) 一种固态盘内存分区方法
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
CN103020077A (zh) 一种电力系统实时数据库内存管理方法
CN105988720B (zh) 数据存储装置和方法
CN108920110A (zh) 一种基于内存计算模式的并行处理大数据存储系统及方法
KR20160121819A (ko) 이종 메모리 기반 데이터 관리 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080423

Termination date: 20120404