内存数据库的原理及应用

上传人:s****a 文档编号:185544576 上传时间:2023-02-04 格式:DOCX 页数:8 大小:74.87KB
收藏 版权申诉 举报 下载
内存数据库的原理及应用_第1页
第1页 / 共8页
内存数据库的原理及应用_第2页
第2页 / 共8页
内存数据库的原理及应用_第3页
第3页 / 共8页
资源描述:

《内存数据库的原理及应用》由会员分享,可在线阅读,更多相关《内存数据库的原理及应用(8页珍藏版)》请在装配图网上搜索。

1、内存数据库的原理及应用摘要近年来,数据库系统在各种领域中扮演了关键角色,但传统的基于磁盘的关系数 据库系统却不能满足上述应用高性能、实时/近实时数据访问的要求,内存数据库系 统则可以很好地满足各种应用系统的实时数据管理需求,本文主要阐述了内存数据库 的基本概念,并对其和传统基于磁盘的数据库进行了比较,此外对其在内存中的数据 管理方式有一定的介绍。1. 内存数据库概述以及内存数据库技术的发展内存数据库,也称主存数据库,是一个较新的研究领域,目前对内存数据库尚无 一定义。内存数据库的本质特征是其主拷贝或“工作版本”常驻内存。相对于磁盘, 内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从

2、磁盘上访问能够 极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全 部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面 也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多。内存数据库与磁盘数据库之间主要区别在于:内存数据库主数据库常驻内存,体系 结构设计的优化目标是提高内存和CPU使用效率由于事务处理无需进行磁盘访问,使 用内存数据库的应用系统性能得到极大提高。随着电子技术的快速发展,计算机内存已越来越便宜,这使得计算机上配置的内 存容量变得越来越大。现在一些商用的系统已配置几GB甚至更多的主存,另外,随着 计算机及操作系统从

3、32位向64位的发展,使理论上计算机可配置内存总数达B。从前, 利用虚拟内存或内存交换技术来使大于地址空间或大于物理内存的程序可以运行,这 些技术在当时乃至现在都具有重要的意义,然而,现在的问题是如何充分利用大内存, 使程序运行更快。随着计算机应用领域不断扩大和应用程度不断加深,人们对数据库技术提出了新 的更高的要求。主存数据库技术,是随着存储技术的发展和现代应用的高性能需求产 生和发展起来的数据库技术分支。主存数据库管理系统把数据全部或部分驻留在主存 中,消除了传统的磁盘数据库系统中事务运行的I/O瓶颈,获得直接访问数据的极高 存取速度,大大地提高了系统的性能,为需要快速响应和高吞吐量的应用

4、提供了强有 力的支持。从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969 年IBM公司研制了世界上最早的数据库管理系统-基于层次模型的数据库管理系统 IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方 法,相应推出了 IMS/VS Fast Patho Fast Path是一个支持内存驻留数据的商业化数据库, 但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设 计思想,也就是将需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问 和管理。在这个阶段中,包括网状数据库、关系数据库等其他各种数据库技术也都逐

5、 渐成型。1984年,D J DeWitt等人发表了主存数据库系统的实现技术一文。第一次提出了 Main Memory Database (主存数据库)的概念。预言当时异常昂贵的计算机主存价格一 定会下降,用户有可能将大容量的数据库全部保存在主存中,提出了 AVL树、哈希算 法、主存数据库恢复机制等主存数据库技术的关键理论,为主存数据库的发展指出了 明确的方向。1987年,ACM SIGMOD会议中提出了以堆文件(HEAP FILE)作为主存数据库的数据存 储结构。Southern Methodist大学设计出MARS主存数据库模型。随着互联网的发展,越来越多的网络应用系统需要能够支持大用户量

6、并发访问、 高响应速度的的数据库系统,主存数据库市场成熟半导体技术快速发展,半导体内存 大规模生产,动态随机存取存储器(DRAM)的容量越来越大,而价格越来越低,这无 疑为计算机内存的不断扩大提供了硬件基础,使得主存数据库的技术可行性逐步成熟 1994年美国OSE公司推出了第一个商业化的,开始实际应用的主存数据库产品Polyhedra2001 年美国 McObject 推出 eXtremeDB。加拿大 Empress 公司推出 EmpressDB。2. 内存数据库的特点内存系统和磁盘系统具有不同的特性,这是引起MMDBS(main memory databasesystem )和DRDBS(d

7、isk resident databasesyste)之间的差别的根本所在,主要表现在下列方面:(1)内存和磁盘在存取时间上有若干数量级的差别,内存数据库“工作版本”常驻内存,数据直接被访问,因而其系统“瓶颈”主要是内存空间和处理机的有效利用。据报道,ORACLE发布内存型数据库TimesTen速度比传统产品快10倍。Figure 1.1 Comparing a diskbased RDBMS to TimesTenDisk-Based RDBMSI5QLFDBM5Query OptimizerApplicationsfable# Page#Loccre gg侧 ro.v? bu盹poo*ui

8、.陷 枷均陷 司斓哭*diUe 网 ro jeod 也阪g顷加 IP CBuffer PoolrrrrCopy .宜淑g p标rrw buffer*,、 Linked List 尸 into Buffers J、口 nHashFunctionckpoi mt FileuData Pages(2)内存是易失性的,而磁盘是永久性的存储器,即当系统断电时,前者所存信息立即消失,通电也不会恢复;而后者反之,断电时信息不会消失,再通电时即原样可使用。(3)存储格式不同。内存是字节或字编址的,而磁盘是块存储设备。(4)数据的存储组织方法对性能影响不同。不同的组织方式对磁盘而言的性能影响远 比对内存影响大,

9、如顺序存取与随机存取的时间对内存没有什么变化,而对磁盘则几 乎有数量级的差别。(5)存取方式不同。内存可由处理机直接存取,磁盘则不能;但内存比磁盘更易于受 来自程序错误的直接数据破坏。这些差异几乎要影响数据库管理的每一方面,进而形成MMDBS自己的技术特征。3. 内存数据库原理传统的磁盘数据库都是Disk-based的,即预先假定数据主要是放在磁盘中的,所以它的所 有优化、查询算法都是以磁盘存储为主的。举个简单的例子,比如说要查找一行记录,传统 的数据库要先查找索引,通过索引查找该记录所在的页面,然后通过查找该页是已经在内存 中,还是要从磁盘的数据文件中读取出来。而内存数据库是预先就把所有的数

10、据Load到内 存中,它知道所有的数据一定在内存里面,不会再通过其它的调用去决定数据在哪儿,这其 中就少走了很多的弯路,基本没有磁盘的10,而且都在内存中,效率也就高了很多。内存 数据库在物理数据组织上抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设 计了体系结构,体系结构的设计优化目标是提高内存和CPU使用效率所以处理数据速度要 比传统的处理速度快的多。而从逻辑角度上,内存数据库相当于是磁盘数据库的映射,所以 需要有一定的数据换入换出策略。3.1内存数据库的数据组织方式在传统的DRDBS中,数据以文件形式组织于磁盘上,其系统瓶颈是内外存的数据I/O, 因而其物理数据库组织应尽可能地

11、有利于减少对磁盘的存取次数。而在MMDBS中,“工作 版本”常驻内存,数据直接被CPU访问,因而其系统“瓶颈”主要是内存空间和处理机的 有效利用。因此,必须开发全新的适合内存特性的数据组织方法,由于内存中顺序存取和随 机存取同样高效,数据不必簇聚存放,甚至可以将每个元组的各属性值分散存放在内存中, 而在元组中仅保留指向各属性值的指针,从而大大提高空间的利用率。这里介绍其数据物理组织方式:(1)区段式组织i一个MMDB的数据由两部分组成:MMDB = M_DB+S_DB.其中,M_DB是数据库的“内存 版本”亦即数据库的“工作版本”,S_DB是数据库的“外存版本,存放在某一时刻整个数据库 的一个

12、完整的快照,它一方面是存放未调入内存的那一部分数据库数据的场所一方面用作数 据库恢复的备份,内存版本与外存版本构成整个的统一整体,当要访问的数据不在M_DB而在 S_DB中时,须事先将其交换到M_DB中,然后才能进行存取。数据在内存上的组织是区段式组织。区段式组织基于关系数据模型,它将存储空间逻辑 划分为“分区”,每一个分区存储一个关系的数据,每个分区又物理地由若干段组成,属于 同一分区的各数据段相互链接,并且对应于S_DB中的一个物理文件,一个段是一块固定长 度的连续区域,它是内外存信息交换的基本单位,也是内外存分配和回收以及对MMDB进 行恢复的单位。(2)影子内存式在事务的正常操作期间,

13、每次查询都产生一个分别对应于影子内存(SM)和主拷贝(PDB)的双地址,且总是先对S M试探,若不成功,再对PDB操作所有的更新操作都在SM 中进行,且都记录在活动日志中.每当一个事务提交时,由它所产生的S M中的“后映像” 便拷贝到PDB中。使用影子内存具有以下优点:1. 省去事务失败或系统故障时的撤销操作,只需消除相应的影子内存即可;2.减少对MMDB ( PDB)的存取,各事务可并行地对各S M区操作;3.2数据库记录与内存的映射关系因为内存数据库自己维持着大块ram空间作为磁盘中数据的cache,那么其中就会涉及 到内存单元和磁盘数据的映射。假定磁盘DBMS管理的所有数据主要的存在于磁

14、盘中,记录 的访问是通过RID(record identifier)实现的。在区段式组织方式中,每个段中的一个数据记录 路就是一个关系元组,每个记录都有一个唯一的标识RID。RID有3部分组成,分区号,段 号,以及段内记录槽号,记录槽包含了对应记录的长度和记录的首地址。这样通过RID找到 相对应的记录槽,按槽中的地址和长度便可直接存取所要的记录。因此要访问一个记录,需 要地址映射将RID转换为内存的物理地址。其实,对于内存数据库,存取方法返回的不必是 所需的记录数据的副本,只需将其RID返回即可。3.3内存受限时内存数据库装入策略从某种角度上来看,MMDB也是一种Cache机制,是磁盘数据库的

15、Cache,通过物理 内存中的数据存储区的直接操作,减少了到磁盘间的I/O交互。因为内存的容量限制,无 法数据库所有的数据都装入,所以,在初始化数据装入时必须要有一定的规则来保证装入的 数据必须是最重要的,首先先介绍数据的初始化策略:(1)初始化数据装入ii内存数据库初装时,首先考虑的是事务的优先级。优先级高的事务先装入内存,其次 是数据的流行性,流行数据对应的事务往往也是高优先事务;再次就是活跃性,存取 频率高的数据一般还是先要被存取的数据;紧密相关的数据则随时要考虑被使用。由于内存数据库并不能容纳全部的外存数据库,因此内存数据库初始化的时候, 需要选择装入最应该被装入的数据。但是在内存数据

16、库初始化的时候,内存到底能容 纳多少事务的数据还是个未知数,事务类型、开始时间、结束时间等标准的相互冲突, 都给事务的选择带来了难度。首先我们把全部分析好的事务排成一个队列。内存数据库初始化的时候从队列的 第一个事务开始装入,无论内存有多大,装入的数据都是最应该装入的数据。队列的 形成策略如下:a)队列的开始是随机发生的硬实时事务。所谓硬事实事物是指任务必须在一定的时间 内,或者某个时间点前完成。由于硬实时事务如果超过了截止期会给系统带来毁灭 性的后果,因此随机发生的硬实时事务的数据应该最先被调入内存。b)其次是周期事务的数据。由于实时数据库的周期事务频繁地执行,如果不能保证数 据在内存,就会

17、发生“抖动”,严重影响系统的效率,因此周期事务的数据也应该 被调入内存。c)然后是内存数据库初始化时就应该把数据调入内存,否则会超过截止期的硬事实事 务的数据。设一个硬实时事务的开始时间Ts与当前时间Tn的差为N,事务数据装 入时间的最坏静态估计为M(最坏情况下所有涉及到的关系的外存块数和读取一块 的平均时间),如果N远远大于M,则该事务的数据现在可以不在内存,相反,则 硬事实事务的数据就应该装入内存。d)然后装入软实时事务的数据。如果在以上两类事务的装入过程中,内存耗尽,则内存数据库虽然初始化成功, 但是性能堪忧。以上的装入顺序保证无论内存有多大,装入的数据从事务类型来看都 是最应该装入的数

18、据。而且也给后来的数据换出及如何方便地换出最应该换的数据打 下了基础。初始化完后,和cache 一样,还需要有数据的替换策略:(2)内存数据库运行时的数据装入(数据的替换策略)内存数据库初始化成功以后,系统开始运行。如果接纳一个事务后发现其数据不在内存。仍然要进行数据装入。数据交换策略必须考虑各种因素:1. 高易变的实时数据必须常驻内存M_DB中且不能被交换出去。2. 活跃或高频数据应留驻内存M_DB中,一般不应交换出去。3. 立即流行的数据在第一个处理请求以前不能被交换出去。4. 高优先级事务的数据在事务的活动期不能被交换出去,尤其当事务是周期性 事务时,其数据应尽可能常驻M_DB。5. 非

19、永久数据和关键数据最好不要换出。非永久数据无需换出;关键数据至关 重要,要保证对它的存取的及时性和有效性。进行交换的数据单位通常是分区中的段。为了让系统能正常运行,尽量减少因数据装入而造成超过截止期的事务数目增多,我们设定内存数据库运行时的数据装入时机有以下几种:a)新接纳的事务数据不在内存,且新接纳的事务比正在运行的事务有更高的优先级, 则挂起正在运行的事务,启动数据换入。b)原运行事务结束重新调度事务时,发现接纳队列的首元素比就绪队列的首元素优先级高,则启动数据换入。这要求接纳队列和就绪队列,按照优先级排序。4. 内存数据库的实例应用现代通信对计算机技术依赖性越来越强,在电信运营商的不断发

20、展中,建立起各类信息系统, 但是,这些数据资料过于庞大了,记录条数动辄以亿计,以中国移动为例,其全国移动电话 用户总数已经超过三亿,许多省公司的用户规模都超过千万,对于如此庞大的数据量,传统 的基于磁盘的数据库管理系统越来越难以应付,于是,内存数据库在电信领域出现了。iii 目前在国内,中国联通、中国电信、中国网通、中国移动等主要运营商的不同业务系统,以 计费为重点,包括NGN、IN系统等,已经纷纷采用内存数据库技术。全球主要电信运营商 的数据库管理系统正在经历由磁盘数据库为主向内存数据库为主的转变。在提升数据库工作效率的同时,使用内存数据库可以直接节省硬件投资和系统维护成本。实 际部署经验表

21、明,为达到特定重载系统的实时性要求,使用内存数据库比不使用所需要的 CPU数量减少23以上,而只需要把内存数量少量提高,从而大大节约了经费资金投入,系 统稳定性反而得到提高。内存数据库由于大量数据在内存中运行,没有过多的I/O操作,能较好地满足实时性, 灵活性,精确性的要求,在电信领域得到大量使用.由于电信行业处理的是巨量数据,而内存容量有限(IBM小型机为例,内存一般都在 8G12G之间),故需磁盘来存放事务处理的数据和非实时性的数据,此过程涉及到内存和 磁盘之间接口 I/O的数据交换,但实时数据,不会涉及I/O交换,所以不会降低事务处理的 效率,这也是内存数据库和传统数据库的主要区别。iv

22、用户通过前端页面直接查询内存数据库中的实时话费累计表.采用内存数据库后,大部 分数据操作在内存中运行,极大地减少了/0操作,减少了运行中因等待数据而消耗的时间, 提高了计费系统的运行效率.同时在话费查询中,由于省去了以往内存中的数据和磁盘数据 库数据同步的环节,用户可以通过营业部实时查询话费,比目前只能提供查询到前一天的实 时话费在业务上有了质的飞跃.5.总结本文首先介绍了内存数据库的定义以及技术发展,并着重介绍了其在内存上的数据组织 以及替换策略,始终围绕其实时性,效率高的特点,系统的对内存数据库原理进行阐述。毋 庸置疑,内存数据库技术已经成为电信行业进行巨量数据处理的一个必要手段,可以预见, 随着内存数据库的技术发展,成熟产品大量涌现,它在电信产业中必将广泛应用,为传统的 业务模式和技术的改进提供条件,从而更好的满足人们对速度和实时性的需求。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!