内存数据库与磁盘数据库比较_第1页
内存数据库与磁盘数据库比较_第2页
内存数据库与磁盘数据库比较_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、无 内存数据库(内存数据库(MMDB)与磁盘关系数据库()与磁盘关系数据库(DRDB)比较)比较 一、传统数据库与实时数据库一、传统数据库与实时数据库 传统数据库系统(Traditional Database System,TDBS)处理对永久数据的管理,实现事务对永久数据的存取,同时维护其完整性、一致性。所以传统的数据库具有 ACID(Atomicity,Consistency,Isolation,Durability)特征,即原子性、一致性、隔离性和永久性。传统数据库管理系统的典型代表是关系型数据库RDBMS(Relational Database Management System) ,

2、我们平常用到的商用数据库管理系统如 Oracle, Informix, Sybase, SQL Server 等都是 RDBMS。RDBMS 已发展了很多年,其技术成熟度已广为人接受,其可靠性、可用性已被广泛验证,并在传统的商务和管理事务型的应用领域获得了极大成功在传统的商务和管理事务型的应用领域获得了极大成功, 然而它们在现代的 (非传统) 工程和时间关键型应用时间关键型应用面前却显得软弱无力, 其主要原因是其数据存取服其主要原因是其数据存取服务的实时性很难得到保障务的实时性很难得到保障,由此导致了实时数据库系统(Real-time DataBase System)的产生和发展。 实时数据库

3、系统就是其事务和数据都可以具有定时特性或显式的定时限制的数据库系统, 系统的正确性不仅依赖于逻辑结果, 而且还依赖于逻辑结果产生系统的正确性不仅依赖于逻辑结果, 而且还依赖于逻辑结果产生的时间的时间。 近年来, 实时数据库系统已发展成现代数据库系统研究的重要方向之一,在数据库研究领域受到极大关注。实时数据库系统通常简称为实时数据库(Real-time Database,RTDB) 。 二、磁盘数据库与内存数据库二、磁盘数据库与内存数据库 正如前面所述,我们平常用到的商业关系数据库系统,其主要目标是保证数据存取的 ACID 特征,为各类商务及事务应用提供强大的数据管理与存取服务。但它们的数据服务

4、的实时性很难得到保障,其根本原因在于: 传统数据库是磁盘数据库(Disk Resident Database,DRDB) ,即数据的主拷贝(Primary DB)在磁盘上,数据库管理系统为了向应用系统提供存取服务,将用户需要访问的数据装入主存中,即对数据的管理是“基于磁盘的缓存技术” 。而我们知道,磁盘相对于主存来说是极其低速的存储介质,且磁盘存取速度还和无 欲存取的数据的物理位置和当前磁头状态有关。另外,管理缓存(cache)或缓冲(buffer) ,无论是在操作系统(OS)层,还是数据库管理系统层,都需要付出较大的代价(时间和空间,尤以时间代价为甚) 。因此,即使将磁盘数据全部缓存到主存,

5、其管理代价仍较大,存取速度仍然无法满足多数实时性应用系统的要求。 为了实现实时数据库系统,人们自然想到了基于内存的数据库,即内存数据库(Main Memory Database,MMDB) 。MMDB 与 DRDB 的根本区别在于,在MMDB 中,数据库的全部或活动事务存取的数据放于内存中数据库的全部或活动事务存取的数据放于内存中(如图 1 所示) ,这样事务对盘的访问完全取消了。由于整个数据库放于内存,数据库则不再作为大量存储文件看待而作为内存中可寻址的大量数据,不同于 DRDB 中的缓存或缓冲区方式,它完全打破了传统磁盘数据库系统的设计宗旨,带来了其自身新的设计问题。如:传统磁盘数据库系统

6、的数据组织、访问方法、查询处理算法的设计都针对减少磁盘访问次数与有效利用盘存储空间, 甚至牺牲 CPU 时间来减少 I/O次数(如查询处理有大量中间数据) ,而内存数据库的设计则主要考虑如何有效地利用 CPU 的时间和内存空间。对传统磁盘数据库系统相当有效的数据组织、访问方法、查询处理算法,对于内存数据库系统可能并不有效,相反,一些认为对传统磁盘数据库系统无用的办法,反而成为可行的。显然此方式可完全消除事务与盘打交道,且可避免与影响性能的缓冲区管理程序发生联系,故采用此方式使数据库系统性能极大提高。 无 图 1 MMDB 与 DRDB 比较 三、传统磁盘数据库与内存数据库的特点比较三、传统磁盘

7、数据库与内存数据库的特点比较 传统磁盘数据库的优点 传统数据库的 ACID 机制成熟、可靠; 提供强大的数据定义语言(DDL)及数据操作语言(DML) ,提供 SQL支持; 提供一定的主动机制(如触发器,Trigger)和后台数据处理能力(如存储过程,Stored Procedure) 。 传统磁盘数据库的主要缺陷 占用、消耗的系统资源较多; 数据存取的速度慢; 数据存取时间不一致且难以预测 内存数据库的突出优势 存取速度快速、一致 存取时间易于预测 易于定制数据存取方式 内存数据库的主要特点 MMDB vs DRDB -Architectural Comparison Backup DB L

8、og Disk Primary DB Page Buffer Primary DB Lock Server thread process Write log at transaction commit Lock/unlock (Pointer swizzling) Load at server startup Checkpoint periodically Load when accessed Write back at transaction commit Object Manager MMDB DRDB 无 为了降低 MMDB 的内存开销,MMDB 往往简化了对复杂事务处理的支持,如 MM

9、DB 一般不提供事务的 undo 机制,代之以“补偿事务”的方式来实现事务处理的原子性和一致性。 由于 MMDB 中的数据库“主拷贝”在内存中,因此,MMDB 对系统的故障恢复提出了更高的要求,实现起来难度更大。 通用性不强,由于不同的实时应用系统中的数据对象不同,对数据库的访问要求及访问方式不同。为了提高数据库的实时性,在设计 MMDB时,需要根据应用特点,采取一些针对性的措施。因此,设计上往往有一定的特殊性。 四、自主开发面向交易系统内存数据库的必要性四、自主开发面向交易系统内存数据库的必要性 国外目前有一些内存数据库系统的报道, 如美国 AT&T 公司的 Data Blitz (

10、前身为 Dali) ,韩国的 Xmas,美国的 Berkley DB, eXtreme DB 等。但这些系统往往只适合某些类特定的应用,且基本上都不商品化,而只是为了满足特定的应用需求而开发的。而对于交易系统而言,其实时性要求较高,如果采用商业传统磁盘数据库系统,其实时性很难令人满意。而交易系统对数据的操作事务并不十分复杂,因此,开发面向交易系统的实时内存数据库系统是必要、可行的。 无 五、传统磁盘数据库与内存数据库并行工作的可能性五、传统磁盘数据库与内存数据库并行工作的可能性 传统磁盘数据库和内存数据库可以并行工作,图 2 是我们为手机通讯行业提供的解决方案。其中,对实时性要求不是很高的数据可以放在 Oracle 中,这样可以减少内存数据库处理的数据量,提高效率。 图 2 传统磁盘数据库与内存数据库并行工作 主处理机(主)主处理机(备)ORACLE数据库实时数据库ORACLE数据库实时数据库光纤镜像维护台近端受理台以太网基本模块通信接口机ModemModem远端受理台远端受理台虚拟HLR远端受理台虚拟HLRDDNX.25七号信令网MSC/VLRMSC/VLR无 六、六、Oracle Oracle 与与 MMDB MMDB 事务处理能力比较(仅供参考)事务处理能力比较(仅供参考) 表一是我们为通讯行业开发的内存数据库与 Oracle 8.0 事务处理能力的比较: 大话务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论