【内存数据库】内存数据库的原理及应用

内存数据库的原理及应用
摘要
近年来,数据库系统在各种领域中扮演了关键角,但传统的基于磁盘的关系数据库系统却不能满足上述应用高性能、qq空间登录网站 实时/近实时数据访问的要求,内存数据库系统则可以很好地满足各种应用系统的实时数据管理需求,本文主要阐述了内存数据库的基本概念,并对其和传统基于磁盘的数据库进行了比较,此外对其在内存中的数据管理方式有一定的介绍。
1. 内存数据库概述以及内存数据库技术的发展
内存数据库,也称主存数据库,是一个较新的研究领域,目前对内存数据库尚无一定义。 内存数据库的本质特征是其主拷贝或“工作版本”常驻内存。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、 并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多。
内存数据库与磁盘数据库之间主要区别在于:内存数据库主数据库常驻内存,体系结构设计的优化目标是提高内存和 CPU使用效率由于事务处理无需进行磁盘访问,使用内存数据库的应用系统性能得到极大提高。
随着电子技术的快速发展,计算机内存已越来越便宜,这使得计算机上配置的内存容量变得越来越大。现在一些商用的系统已配置几人教出版社GB甚至更多的主存,另外,随着计算机及操作系统从32位向64位的发展,使理论上计算机可配置内存总数达B。从前,利用虚拟内存或内存交换技术来使大于地址空间或大于物理内存的程序可以运行,这些技术在当时乃至现在都具有重要的意义,然而,现在的问题是如何充分利用大内存,使程序运行更快。
随着计算机应用领域不断扩大和应用程度不断加深,人们对数据库技术提出了新的更高的要求。主存数据库技术,是随着存储技术的发展和现代应用的高性能需求产生和发展起来的数据库技术分支。主存数据库管理系统把数据全部或部分驻留在主存
中,消除了传统的磁盘数据库系统中事务运行的I/O瓶颈,获得直接访问数据的极高
存取速度,大大地提高了系统的性能,为需要快速响应和高吞吐量的应用提供了强有力的支持。
    从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969IBM公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast PathFast Path是一个支持内存驻留数据的商业化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问和管理。在这个阶段中,包括网状数据库、关系数据库等其他各种数据库技术也都逐渐成型。
    1984年,D J DeWitt等人发表了《主存数据库系统的实现技术》一文。第一次提出了Main Memory Database(主存数据库)的概念。预言当时异常昂贵的计算机主存价格一定会下降,用户有可能将大容量的数据库全部保存在主存中,提出了AVL树、哈希算法、主存数据库恢复机制等主存数据库技术的关键理论,为主存数据库的发展指出了明确的方向
    1987年,ACM SIGMOD会议中提出了以堆文件(HEAP FILE)作为主存数据库的数据存储结构。Southern Methodist大学设计出MARS主存数据库模型。
随着互联网的发展,越来越多的网络应用系统需要能够支持大用户量并发访问、高响应速度的的数据库系统,主存数据库市场成熟半导体技术快速发展,半导体内存大规模生产,动态随机存取存储器(DRAM)的容量越来越大,而价格越来越低,这无疑为计算机内存的不断扩大提供了硬件基础,使得主存数据库的技术可行性逐步成熟
    1994年美国OSE公司推出了第一个商业化的,开始实际应用的主存数据库产品Polyhedra
    2001年美国McObject推出eXtremeDB。加拿大Empress公司推出EmpressDB
2. 内存数据库的特点
    内存系统和磁盘系统具有不同的特性,这是引起MMDBS(main memory database system )DRDBS(disk resident database system)之间的差别的根本所在,主要表现在下列方面:
1)内存和磁盘在存取时间上有若干数量级的差别,内存数据库“工作版本 ”常驻内存,数据直接被访问,因而其系统“瓶颈”主要是内存空间和处理机的有效利用 。据报道,ORACLE发布内存型数据库TimesTen速度比传统产品快10倍。
外套膜2)内存是易失性的,而磁盘是永久性的存储器,即当系统断电时,前者所存信息立即消失,通电也不会恢复;而后者反之,断电时信息不会消失,再通电时即原样可使用。
3)存储格式不同。内存是字节或字编址的,而磁盘是块存储设备。
4)数据的存储组织方法对性能影响不同。不同的组织方式对磁盘而言的性能影响远比对内存影响大,如顺序存取与随机存取的时间对内存没有什么变化,而对磁盘则几乎有数量级的差别。
5)存取方式不同。内存可由处理机直接存取,磁盘则不能;但内存比磁盘更易于受来自程序错误的直接数据破坏。
这些差异几乎要影响数据库管理的每一方面,进而形成MMDBS自己的技术特征。
3. 内存数据库原理
    传统的磁盘数据库都是 Disk-based 的,即预先假定数据主要是放在磁盘中的,所以它的所有优化、查询算法都是以磁盘存储为主的。举个简单的例子,比如说要查一行记录,传统的数据库要先查索引,通过索引查该记录所在的页面,然后通过查该页是已经在内存中,还是要从磁盘的数据文件中读取出来。而内存数据库是预先就把所有的数据Load到内存中,它知道所有的数据一定在内存里面,不会再通过其它的调用去决定数据在哪儿,这其中就少走了很多的弯路,基本没有磁盘的IO双凤楼,而且都在内存中,效率也就高
了很多。内存数据库在物理数据组织上抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,体系结构的设计优化目标是提高内存和CPU使用效率所以处理数据速度要比传统的处理速度快的多。而从逻辑角度上,内存数据库相当于是磁盘数据库的映射,所以需要有一定的数据换入换出策略。
3.1 内存数据库的数据组织方式
在传统的DRDBS中,数据以文件形式组织于磁盘上,其系统瓶颈是内外存的数据 I/O,因而其物理数据库组织应尽可能地有利于减少对磁盘的存取次数。而在MMDBS中,“工作版本”常驻内存,数据直接被CPU访问,因而其系统“瓶颈”主要是内存空间和处理机的有效利用。因此,必须开发全新的适合内存特性的数据组织方法,由于内存中顺序存取和随机存取同样高效,数据不必簇聚存放,甚至可以将每个元组的各属性值分散存放在内存中,而在元组中仅保留指向各属性值的指针,从而大大提高空间的利用率。
滚压头这里介绍其数据物理组织方式:
(1) 区段式组织
    一个MMDB的数据由两部分组成:MMDB = M_DB+S_DB.其中,M_DB是数据库的“内存版本”,亦即数据库的“工作版本”,S_DB是数据库的“外存版本,存放在某一时刻整个数据库的一个完整的快照,它一方面是存放未调入内存的那一部分数据库数据的场所,一方面用作数据库恢复的备份,内存版本与外存版本构成整个的统一整体,当要访问的数据不在M_DB而在S_DB 中时,须事先将其交换到M_DB,然后才能进行存取
数据在内存上的组织是区段式组织。区段式组织基于关系数据模型,它将存储空间逻辑划分为“分区”,每一个分区存储一个关系的数据,每个分区又物理地由若干段组成,属于同一分区的各数据段相互链接,并且对应于S_DB中的一个物理文件,一个段是一块固定长度的连续区域,它是内外存信息交换的基本单位,也是内外存分配和回收以及对MMDB进行恢复的单位。
(2) 影子内存式
在事务的正常操作期间,每次查询都产生一个分别对应于影子内存我不是谁的偶像(SM)和主拷贝  ( PDB)的双地址,且总是先对S M试探,若不成功,再对PDB操作所有的更新操作都在SM中进行,且都记录在活动日志中. 每当一个事务提交时,由它所产生的S M中的“后映像” 便拷贝
PDB中。
使用影子内存具有以下优点:

本文发布于:2024-09-22 15:28:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/24808.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内存   数据库   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议