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

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

Info

Publication number
CN1831824A
CN1831824A CNA2006100501867A CN200610050186A CN1831824A CN 1831824 A CN1831824 A CN 1831824A CN A2006100501867 A CNA2006100501867 A CN A2006100501867A CN 200610050186 A CN200610050186 A CN 200610050186A CN 1831824 A CN1831824 A CN 1831824A
Authority
CN
China
Prior art keywords
data
version
database
internal memory
cache
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.)
Granted
Application number
CNA2006100501867A
Other languages
English (en)
Other versions
CN100383792C (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

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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)缓存数据库的数据装入与交换方法
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++语言实施。

Claims (1)

1.一种缓存数据库数据组织方法,其特征在于:
1)缓存数据库空间结构分层方法
缓存数据库的存储空间是一个三层结构,各层结构存储不同的数据子集:
I.易失的处理器缓存,用以存放支持各事务的工作数据,是缓存数据库的工作版本,工作版本的数据是内存版本数据中最为常用的数据子集;
II.易失的内存,用以存储一些活动的临时性数据,是缓存数据库的临时内存版本,内存版本的数据是外存版本的常用数据子集;
III.非易失的外部存储器,用来存放完整的数据库数据,还要存放用作恢复的数据库备份。存储在非易失的外部存储器上的数据库数据称为缓存数据库的外存版本;
2)数据库物理数据组织方法
由于缓存数据库存储空间三层结构的存储介质各不相同,所以三层结构中物理数据的组织方法也有所不同:
I.工作版本,以缓存行作为基本单元,作为缓存空间分配和与内存版本进行数据交换的单位;
II.内存版本,存储空间划分为和外存单元块大小相同的段,作为内存空间分配和与外存版本进行数据交换的单位,段内进而划分为缓存行大小相同的行;
III.外存版本,以输入输出的块为基本单元组织数据;
3)缓存数据库的数据装入与交换方法
I.数据初始装入,数据库启动时,将使用频率最高的数据装载到缓存中,成为工作版本,频率较高的数据装载到内存中成为内存版本;
II.缓存数据库各层数据交换,在缓存数据库运行中,根据数据使用频率的变化,各层间数据即时进行交换。
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 true CN1831824A (zh) 2006-09-13
CN100383792C 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)

Cited By (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 苏州坤里达信息科技有限公司 一种无线通信网络系统中的干扰矩阵高效管理方法
CN105117933A (zh) * 2015-08-05 2015-12-02 北京奇虎科技有限公司 一种广告物料数据调取方法和装置
CN105704184A (zh) * 2014-11-28 2016-06-22 国网河南省电力公司南阳供电公司 一种基于层级框架的电网组织解析系统及解析方法
WO2016141735A1 (zh) * 2015-03-11 2016-09-15 华为技术有限公司 缓存数据的确定方法及装置
CN103793485B (zh) * 2014-01-20 2017-07-11 锐达互动科技股份有限公司 客户端基于缓存数据实现查询网络数据的方法
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的方法、装置、计算机设备及存储介质
CN109976905A (zh) * 2019-03-01 2019-07-05 联想(北京)有限公司 内存管理方法、装置和电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065646A1 (en) * 2001-09-13 2003-04-03 Joseph Paul G. Database interface architecture with time-based load balancing in a real-time environment
CN1277217C (zh) * 2002-12-31 2006-09-27 中兴通讯股份有限公司 一种移动用户hlr/auc移动用户数据库实现方法
CN1277374C (zh) * 2003-09-29 2006-09-27 中兴通讯股份有限公司 通信系统中基站与服务器数据库实时同步方法

Cited By (12)

* 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 国网河南省电力公司南阳供电公司 一种基于层级框架的电网组织解析系统及解析方法
WO2016141735A1 (zh) * 2015-03-11 2016-09-15 华为技术有限公司 缓存数据的确定方法及装置
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的方法、装置、计算机设备及存储介质
CN109976905A (zh) * 2019-03-01 2019-07-05 联想(北京)有限公司 内存管理方法、装置和电子设备
CN109976905B (zh) * 2019-03-01 2021-10-22 联想(北京)有限公司 内存管理方法、装置和电子设备

Also Published As

Publication number Publication date
CN100383792C (zh) 2008-04-23

Similar Documents

Publication Publication Date Title
CN1831824A (zh) 缓存数据库数据组织方法
US20180285414A1 (en) Database management system cluster node subtasking data query
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US9003109B1 (en) System and method for distributed computing in non-volatile memory
US11188262B2 (en) Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
US9792227B2 (en) Heterogeneous unified memory
CN106990915B (zh) 一种基于存储介质类型和加权配额的存储资源管理方法
US8090924B2 (en) Method for the allocation of data on physical media by a file system which optimizes power consumption
US20130124794A1 (en) Logical to physical address mapping in storage systems comprising solid state memory devices
CN101373445B (zh) 一种内存调度方法及装置
CN102591947A (zh) 用于数据去重复的快速且低ram占用的索引
CN102262512A (zh) 一种实现磁盘阵列缓存分区管理的系统、装置及方法
CN107544756A (zh) 基于SCM的Key‑Value日志型本地存储方法
CN102411632B (zh) 基于链表的内存数据库页式存储方法
CN100377118C (zh) 基于sram的嵌入式文件系统的实现方法
Kim et al. Reducing tail latency of DNN-based recommender systems using in-storage processing
CN116364148A (zh) 一种面向分布式全闪存储系统的磨损均衡方法及系统
CN105988720B (zh) 数据存储装置和方法
CN103729309B (zh) 一种目录Cache一致性方法
US10339052B2 (en) Massive access request for out-of-core textures by a parallel processor with limited memory
KR20160121819A (ko) 이종 메모리 기반 데이터 관리 장치
Nijim et al. Multi-layer prefetching for hybrid storage systems: algorithms, models, and evaluations
Chen et al. Co-optimizing storage space utilization and performance for key-value solid state drives
CN104516827A (zh) 一种读缓存的方法及装置
Sun et al. Batched Pattern-Aware Cache Management Strategy for Astronomical Time Series Sub-images Retrieval

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