- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内存数据库
组员:何华赟(数据库概述)
曾志超(组织结构)
曹旭 (并发控制)
曹建洲(恢复机制)
苏强卫(产品)
2016年4月5日
目录
内存数据库的定义
顾名思义就是将数据放在内存中直接操作的数据库。(MMDB:Main Memory Database,也叫主存数据库)技术
传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。
内存数据库
磁盘数据库
关于内存数据库的具体定义,典型的有下面几种不同的观点:
内存数据库的定义
整个数据库全部常驻内存,存取数据时没有必要I/O 操作,这就要求内存足够大,以容纳数据库的所有数据
内存不必足够大到容纳整个数据库,但数据被存取时,先进入内存,数据库的存取在内存进行。
数据库常驻磁盘,在事务执行前将所需要的数据集调入内存,提交时所有对数据库的修改必须写回磁盘。
数据库常驻磁盘,但内存有很大的缓冲区或高速缓存,因而使数据库的大部分乃至全部可在内存,通过适当的缓冲区的处理以减少内外存I/O 操作。
为什么需要内存数据库?
回顾一下磁盘数据库
磁盘存取
内外存的数据传递
缓冲区管理
排队等待
锁的延迟
系统调用
事务实际平均执行时间与估算的最坏情况执行时间相差很大
数据量大、操作频繁且复杂
磁盘数据库(DRDB):所有数据都放在磁盘上进行管理
共享内存技术
--安全性:系统或主机异常、不间断服务、进程故障
--兼容性:不支持SQL语句,不支持ODBC
--稳定性:产生内存碎片,导致系统不稳定
为什么需要内存数据库?
内存容量提高、实时响应要求高
在传统的数据库中增大缓冲池,主要目标是最小化磁盘访问
方案1
方案2
重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计
为什么需要内存数据库?
内存数据库
内存共享技术
成熟度
成熟的商业软件
单一用户订制化开发
开放性
通用的商业软件
专用软件,封闭系统
扩展性
支持IPC、TCP/IP、DOMAIN等多种连接方式,应用可以很方便的扩展
一般只支持IPC方式,应用和内存必须严格绑定在同一台主机上,难以扩展到其他应用·
安全性
系统或主机异常情况
处理的数据和历史数据不会被丢失,可以进行恢复,运用检查点机制进行数据备份和恢复。提供完备的日志级别保证数据的完整性和安全性
处理的数据以及历史数据会丢失,需要重新数据导入
不间断服务
数据可以分布在不同的主机系统上使用,可以自动切换
数据无法自动切换,影响系统的稳定性
通过回滚和日志文件可以自动恢复数据。
不能恢复数据,当前处理的数据会完全丢掉,为处理此故障需要手工完成,效率低
进程故障
兼容性
支持开放业界标准,如SQL,JDBC和ODBC,开发简单方便
不支持SQL语句,不支持ODBC代码复杂,不利于软件开发和系统的稳定运行
稳定性
由数据库系统提供内存管理,降低应用开发的复杂度,增加系统稳定性
需要通过应用程序来处理复杂的内存管理过程,容易产生过多的内存碎片,导致系统的不稳定
为什么需要内存数据库?
传统数据库
优点:ACID
缺点:始终绕不过磁盘I/O.
实时性很难得到保障
内存数据库
为了实现实时数据库系统,人们自然想到了基于内存的数据库
实时数据库
定时特性或显式的定时限制
依赖于逻辑结果及其产生的时间
内存数据库与实时数据库
比较项目
关系数据库
内存数据库
实时数据库
说明
表结构
完整
完整
简化
实时数据库不能处理复杂的表关系,但在特定行业的应用中,比如工控监控软件中,不需要复杂的表关系
每秒读写速度
3000
50000
500000
内存实时数据库比关系数据库快10倍左右,实时数据库比内存数据库快10倍左右
历史数据压缩
无
无
有
实时数据库比内存数据库的压缩率能达到20~40倍
4G空间能存贮30万个测点的每秒变化一次的历史数据(不带索引)
5小时
5小时
8.5天
在4G内存的情况下,在单服务器处理30万点的情况下,内存数据库只能存贮5小时以内的历史数据,在带索引时,只能保存3小时以内的历史数据。(详见我的博文《实时数据库存贮容量计算方法》)
128G空间能存贮30万个测点的每秒变化一次的历史数据(不带索引)
7天
7天
269天
内存数据库有般用在电信行业,国内电信行业应用的最大项目也就使用了90G内存,在128G内存下,内存数据库也只能保存7天的历史数据
是否需要历史数据库
不需要
需要
不需要
内存数据库还需要配套使用历史数据库,且历史数据库同样存在不能压缩、不能保存长时间海量历史数据的问题
内存数据库特点
数据缓存、快速算法、并行
原创力文档


文档评论(0)