基于嵌入式内存数据库引擎的研究与设计

11-20| http://www.dianzi6.com | arm嵌入式|人气:333

基于嵌入式内存数据库引擎的研究与设计

  摘要: 磁盘数据的存取和传输到内存的速度一直是计算机系统的性能瓶颈。虽然现在磁盘转速和总线速度已经有了很大提高,但磁盘容量的大幅度增大又减缓了对其上数据的存取速度。本文介绍了嵌入式内存数据库技术发展的现状、定义、特点及面向3G平台嵌入式内存数据库引擎的具体设计方法实现。

  1 嵌入式内存数据库技术发展的现状

  数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中,它几乎无所不在。以关系型为代表的三大经典(层次、网状、关系)型数据库在传统的(商务和管理的事务型)应用领域获得了极大成功,然而它们在现代的(非传统)工程和时间关键型应用面前却显得软弱无力,面临着新的严峻的挑战,由此而导致了嵌入式实时数据库的产生和发展。在实时应用中,事务在运行前的操作逻辑(操作类型、顺序等)、数据集及其结构、行为以及时间的相关性等都是可预分析的。然而,对磁盘数据库而言,数据的I/O 是造成事务执行时间不确定、预报不准确的关键因素。为此,要求以大内存作为实时数据库的主要存储介质,使一个事务在活动期间没有I/O, 以达到较准确的预报,从而满足实时事务的定时限制。但这要解决两个问题,就是适当的数据安置和适时的内外存交换。随着内存技术的高速发展,内存数据库技术日益成熟,在非实时系统中也得到了广泛的应用。

  内存数据库(MMDB)把数据库的主拷贝(即“工作版本”)常驻在内存,使系统性能得到了极大的提高。但是,由于所有操作直接作用于内存中的数据库主拷贝上,数据库极易受到操作系统和应用软件错误造成的破坏,而且,数据库恢复所包含的I/O 操作(如做日志、备份等)在事务运行不需要I/O 操作的内存数据库系统中也显得极为突出。因此,内存数据库的恢复机制对系统性能有重要的影响作用,内存数据库的恢复较之传统的磁盘数据库的恢复要复杂得多,也关键得多。数据恢复是内存数据库可靠、实用的关键,恢复技术的研究已成为MMDB 研究领域最热门的课题。

  2 内存数据库的定义

  内存数据库的定义不应涉及内存的大小、存取数据所需I/O 的多少、数据何时进入及怎样才能留驻内存等这些具体的实现技术,而只包含数据库常驻内存(而不是磁盘)、事务(不是系统)的数据存取只涉及内存的意思。其本质特征是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。显然,它要求较大的内存量,但并不要求任何时刻整个数据库都能存放在内存,即内存数据库系统还是要处理I/O。传统的磁盘数据库即使缓冲区足够大,以致可以容纳所有数据也不能算是一个MMDB。因为它是针对磁盘特性、在数据库常驻磁盘的假定下设计的。例如,索引结构还是针对磁盘存取的,数据的存取仍必须经过缓冲区管理等。内存数据库的组织与管理要求新的适于内存特点的数据结构和算法,对于数据的组织与安置、数据库存取、内外存数据交换、查询处理及优化、并发控制及数据库恢复都需要研究新的策略与机制。

  内存数据库是一个较新的研究领域,结合各方面参考,现给出如下定义:

  定义:设有数据库DB,DBM(t)是t 时刻DB 在内存中的数据集,DBM(t)真包含于DB; T S 为所有事务的集合,A T(t)是t 时刻的活动事务集,A T(t)真包含于T S;D t(T)为T 在t 时刻的操作数据集,D t(T)真包含于DB;若在任一时刻t,均有:

  对任一事务有T∈A T(t),D t(T)真包含于DBM(t)成立,则称DB 为一个内存数据库,简记为MMDB 。

  按此定义,MMDB 的“工作版本”(当然也可以是整个数据库)常驻内存,任何一个事务在执行过程中没有内外存间的数据I/O。显然,它需要一定的内存容量,但并不要求整个数据库都必须常驻在内存。

  3 内存数据库的特点

  3.1     内存数据库数据存储的组织和管理一个MMDB的逻辑整体主要由两个部分构成,即内存版本与外存版本。 主存储器是易失内存,它存放MMDB的“工作版本”。它在逻辑上被划分为若干分区,一

  个分区用来存放一个关系的数据。每个分区又物理地由若干相互链接的块组成。一块是一个固定长度的连续区域,它是内外存I/O的单位,也是内存分配、回收以及对MMDB进行恢复的单位。索引与数据记录分离存放。

  NV-RAM(NO Vola tile RAM)兼有内存读写速度快和在后备电池维护的情况下非易失的特点,但价格昂贵,不便插拔,广泛用于嵌入式系统,并可与FLASH-RAM配合使用,充当Flash-RAM 写缓冲区。NV-RAM是主存储器的拓延,目前可用UPS、固态磁盘或磁盘Cache等实现。主存数据与NV-RAM数据一起统称为MMDB的“内存版本”。

  磁盘存储器用来存放未在内存的那一部分数据库数据,同时也用作数据库恢复的备份,我们称之为“外存版本”。为便于实现内外存间的数据交换,可将磁盘数据在逻辑上划分为与内存块同样长度的定长块,建立相同类型的索引。

  3.2     事务处理

  当内存数据库用于非实时系统时,除了日志和系统恢复的具体方式跟传统数据库差异比较大以外,事务处理过程与传统数据库的事务处理相似;然而,当内存数据库用于实时系统时,既实时内存数据库中,事务处理由于受到了时间上的限制,传统数据库的事务处理已经不再适用。传统的“ACID” 的事务概念及模型对实时事务不适合。实时事务表现出了许多不同的特征,如实时性和相关性。虽然实时事务的正确性与传统事务一样,也包括数据库状态正确性和事务执行正确性两个方面,但其含义与内容有很大的不同。在实时事务中,数据库状态正确性包含内部一致性和时间一致性,事务执行正确性则包含其结果正确性、行为正确性、结构正确性和时间正确性等。事务调度也要采取相关的实时调度算法。本文中讨论的内存数据库引擎针对非实时系统。

  3. 3 系统恢复

  数据库的备份是数据库的副本以及一些控制信息,在出现故障的情况下,可以随时用它进行恢复。数据库备份最小化了数据丢失,能够让您使用恢复过程,从备份副本中重新构造失败的数据库。有多种类型的失败导致需要恢复数据库。其中包括语句失败、用户错误、进程失败、数据库实例失败、媒介失败等。但不是所有类型的失败都需要进行人工交互。但是,在内存数据库系统中,由于所有操作都直接作用于内存中的数据库主拷贝上,数据库极易受到操作系统和应用软件错误造成的破坏,因此MMDB的恢复技术如备份、检验点(Checkpoint)和重启动(restart)等都较常规的磁盘数据库(DRDB)复杂。人们从体系结构、事务提交、日志系统到备份、检验点算法等各个方面进行了大量的研究和探索。日志管理是内存数据库恢复机制中至关重要的一环。由于内存有易失性,日志最好保存于另一稳妥的介质上(如磁盘、非易失内存等),而对日志的I/O操作又将在某种程度上影响MMDB的性能,可能成为瓶颈影响系统的事务吞吐量。为此,人们研究了各种各样的解决办法,比如构造非易失内存用于保存部分日志;采用“成组提交”的技术,使用影子内存技术等来解决日志瓶颈问题。在检验点方面,为了提高系统效率,通常力图使检验点操作和事务处理同时进行。为了提高速度指标和综合性能,MMDB系统往往利用附加的硬件设备如非易失内存、专用的日志处理器、检验点处理器等来支持高效、快速的数据恢复。

  4 面向3G平台嵌入式内存数据库引擎的设计

  4.1 3G平台中数据库子系统整体架构

  4.1.1 数据库系统各功能模块在3G平台系统中的位置 3G软件平台包括图1所示的除OS和BSP外的6大软件子系统。

3G 软件平台系统分布图

  图1 3G 软件平台系统分布图

  DataBase 子系统负责管理平台的物理资源和平台实现的信令、协议的配置信息,同时向其它子系统提供数据库访问接口。它工作于操作系统之上。 承载子系统向业务子系统、信令子系统、OAM和网管子系统提供ATM、IP、等方面的承载服务。它工作于操作系统和DataBase 子系统之上。 信令子系统实现窄带No.7 信令、宽带No.7 信令、IP信令、网关控制信令,向业务处理子系统提供服务。它工作于操作系统、DataBase子系统和承载子系统之上。 系统控制子系统负责对整个系统的监控、启动、版本下载等。它工作于操作系统和DataBase 子系统之上。

  OAM 和网管子系统提供平台与网管后台的统一接口,负责对平台的协议、信令进行配置和管理,以及提供必要的统计数据。它工作于操作系统、承载子系统、DataBase子系统之上。

  业务处理子系统实现系统提供的各种业务。它工作于操作系统、承载子系统、信令子系统、DataBase子系统之上。

  数据库子系统分布在3G 平台各处理器上。从结构上看数据库子系统属于分布式数据库系统;主要为平台各个子系统提供数据支持,并为将来其上的扩展业务提供支持易扩充机制的数据库模型。

  4.1.2 数据库子系统内部模块划分

  数据库子系统内部划分五大功能模块,支持数据 如果觉得 基于嵌入式内存数据库引擎的研究与设计这篇文章不错,可以推荐给朋友分享哦。

本文Tags:arm嵌入式系统,arm系统,arm开发,arm嵌入式,
此页提供基于嵌入式内存数据库引擎的研究与设计arm嵌入式系统,arm系统,arm开发, arm嵌入式参考。本站还有更多的arm嵌入式相关资料分享。
Copyright© www.dianzi6.com Inc. All rights reserved 。 1 2 3 4 5 6 7 8