ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » 内存数据库 » 什么是内存数据库

标题: [参考文档] 什么是内存数据库
离线 Arrayedeed
骨骨
大圈帮首席打手


来自 大圈帮
精华贴数 0
个人空间 40
技术积分 684 (2790)
社区积分 53 (4712)
注册日期 2002-4-30
论坛徽章:8
管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:网球生肖徽章2007版:鸡
生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    

发表于 2007-10-24 21:48 
什么是内存数据库

内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。显然,它要求较大的内存量,但并非任何时刻整个数据库都存放在内存,即内存数据库系统还是要处理I/O。


__________________
心灵是干净的,保质是困难的,我趴在老树根旁,辛勤地唱歌。
我的博客:http://hi.baidu.com/edeed
只看该作者    顶部
离线 edeed
骨骨
大圈帮首席打手


来自 大圈帮
精华贴数 0
个人空间 40
技术积分 684 (2790)
社区积分 53 (4712)
注册日期 2002-4-30
论坛徽章:8
管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:网球生肖徽章2007版:鸡
生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    

发表于 2007-10-24 21:49 
尽管内存数据库已不是传统磁盘数据库的概念,但是内存数据库本质上还是数据库,它也具有一般数据库的基本功能:

■ 永久数据的管理,包括数据库的定义、存储、维护等;

■ 完成各种数据操作,如查询处理、存取、完整性检查;

■ 事务管理,包括调度与并发控制等;

■ 对存取的控制和安全性检验;

■ 具有数据库的可靠性恢复机制。

相对于利用程序开发手段调用内存处理来说,内存数据库自有其优势。首先,内存数据库是产品化的数据库管理软件,极大缩短了开发周期; 其次,内存数据库有着开放的平台和接口,程序开发和移植更加灵活便捷,也便于维护和二次开发; 第三,可以通过使用统一的SQL语言方便地查询内存中的数据; 最后,能在数据库中保障数据的安全性和完整性。这些优势,对于快速部署和简化维护都是有利的。


__________________
心灵是干净的,保质是困难的,我趴在老树根旁,辛勤地唱歌。
我的博客:http://hi.baidu.com/edeed
只看该作者    顶部
离线 edeed
骨骨
大圈帮首席打手


来自 大圈帮
精华贴数 0
个人空间 40
技术积分 684 (2790)
社区积分 53 (4712)
注册日期 2002-4-30
论坛徽章:8
管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:网球生肖徽章2007版:鸡
生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    

发表于 2007-10-24 21:51 
举一个电信行业计费系统的例子:




edeed 上传了这个附件:
2007-10-24 21:51
b06_3t2.jpg (29.53 KB)
 

__________________
心灵是干净的,保质是困难的,我趴在老树根旁,辛勤地唱歌。
我的博客:http://hi.baidu.com/edeed
只看该作者    顶部
离线 tom_111
++天道酬勤++


精华贴数 1
个人空间 0
技术积分 1886 (855)
社区积分 41 (5393)
注册日期 2007-8-24
论坛徽章:6
现任管理团队成员授权会员2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:帆船2008年新春纪念徽章生肖徽章2007版:鼠
      

发表于 2007-10-24 21:55 
内存数据库与磁盘数据库的区别:
有两个主要区别。一个是数据库所在的位置不同。磁盘DBMS总是将数据库存在磁盘上,将要访问的数据放在内存缓冲中。内存DBMS将磁盘上的备份数据库加载到内存中并在内存中进行管理。第二个区别就是他们的性能有非常大的不同。另外由于运行环境不同二者之间也有一些其它的区别。在性能方面内存DBMS大约比磁盘DBMS高10倍,功能方面内存DBMS和磁盘DBMS基本相同。


__________________
=========DBA格言================
从理论中来,到实践中去,再回到理论中。
不断的重复,不断的循环!!!
做人做事一定要厚道!!!
做DBA更应该厚道!!!
江湖越走越老,胆子越走越小!!!
***【技术讲究实践和理论】【玉雕讲究打磨和上色】***
***【做人讲究人品和魅力】【做事讲究方法和技巧】***
===============================
Oracle技术交流联盟:(MSN群)mgroup10396@hotmail.com
ALTIBASE技术交流联盟:(MSN群)group199500@xiaoi.com
ITPUB内存数据库版块:http://www.itpub.net/forum162.html
只看该作者    顶部
离线 edeed
骨骨
大圈帮首席打手


来自 大圈帮
精华贴数 0
个人空间 40
技术积分 684 (2790)
社区积分 53 (4712)
注册日期 2002-4-30
论坛徽章:8
管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:网球生肖徽章2007版:鸡
生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    

发表于 2007-10-24 21:55 
数据的加载

电信的二次批价和实时累账是计费系统中的两个必备功能。所谓二次批价是相对于一次批价来说的。一次批价是按照国家标准资费来进行价格计算,比如: 全球通每分钟本地通话为0.4元,在一次批价完成后,会根据这个用户的套餐进行再一次的计算。以北京全球通用户接听4分钟的电话为例,一次批价完成后,这条话单的价格是1.6元,如果这个用户参加了10元包月接听套餐,那么在二次批价后,这次通话的费用就为0元。一次批价是用于各大运营商之间结算的,而二次批价是针对用户个人的。

实时累账是将用户从每月1号到目前为止的所有费用累加起来,也就是用户目前可以通过10086查到截止到前一天的实时话费。累账值可以帮助用户控制高额话费或是供用户即时查询消费信息。

二次批价和实时累账过程涉及用户资料、用户套餐等与用户相关的信息,电信支撑系统在开始批价时必须加载这些数据。稍大一点的省级运营商的这些数据就会超过1000万条,计费处理模型也由于套餐的组合、产品的组合以及不同的优惠规则变得相当复杂,加载这部分数据对系统而言是一笔不小的开销,这就使得现在的计费处理速度比较慢,而且很难做到对数据的实时更新。内存数据库的引入在一定程度上解决了这个问题。

在计费二次批价过程中数据量最大的是详单数据,这部分数据不用放在内存数据库中,每处理完一个话单文件或达到设定的提交记录数时直接操作磁盘数据库,不会影响系统性能。最急切的是将用户资料、套餐、营业套餐和计费套餐对应关系数据、计费套餐模型数据及用户累计数据放到内存数据库中,这部分数据查询操作远比数据新增和更新操作要频繁。除了这些数据外,当然还有应用需要的其他数据也都可以加载到内存数据库。

在采用内存数据库后,用户通过营业部或客户查询实时话费的时候完全可以做到实时,比目前只能提供查询到前一天的实时话费在业务上有了质的飞跃。因为系统在处理这部分数据时查询流程和以前的完全一样,但系统省去了以往内存中的数据和磁盘数据库数据同步的环节,所以就能做到了实时查询。对于信控来说也同样,以往系统在累完账后要按照一定周期刷新信控数据,这就存在一个时间差,不能够完全做到实时。

而采用内存数据库后,信控可以直接取得内存数据库中的实时话费累计表中的数据,完全实现实时预警、停机。二次批价和累账中采用内存数据库后,对防欺诈、收入保障系统也有相当大的好处,这样能够充分保证运营商的切身利益。

另外,在采用内存数据库后,整体提高了系统批价、累账的处理速度,大大缓解访问磁盘数据库的压力,提高数据查询、修改、删除的效率,也为后付费和预付费的融合提供了可能。


__________________
心灵是干净的,保质是困难的,我趴在老树根旁,辛勤地唱歌。
我的博客:http://hi.baidu.com/edeed
只看该作者    顶部
离线 edeed
骨骨
大圈帮首席打手


来自 大圈帮
精华贴数 0
个人空间 40
技术积分 684 (2790)
社区积分 53 (4712)
注册日期 2002-4-30
论坛徽章:8
管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:网球生肖徽章2007版:鸡
生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    

发表于 2007-10-24 21:57 
数据的同步

电信营业数据和计费系统中的数据总是在不断的变化中,这就涉及内存数据库中的数据和磁盘数据库数据的同步问题(为了描述清楚,这里的磁盘数据库以Oracle DB为例来说明)。数据同步包括两部分: 从内存数据库到Oracle DB数据同步和从Oracle DB到内存数据库的同步。

1. Oracle DB到内存数据库同步

这部分数据同步采用增量表的方式,营业系统或CRM新增或更新的数据将生成到Oracle的增量表中,计费后台程序先到这些增量表中查询数据。如果能在这些增量表中查到数据就把这些数据更新到内存数据库对应表中,如果查不到,就直接从内存数据库中直接查询,从而保证了数据的完整性和实时性。由于增量表的数据量一般会很小,所以这部分操作不会影响系统的性能。

2. 内存数据库到Oracle DB同步

由于Oracle的计费后台批价、累账数据几乎都加载到了内存数据库中,所以Oracle数据库对应的数据表将主要用于对内存数据库的数据备份。

用户最新的实时话费等信息都保存在内存数据库中,实时话费查询将直接连接到内存数据库中查询,保证用户得到最新的费用信息。信控也直接从内存数据库查询数据,因此对Oracle中的这部分数据已经没有实时性的要求。这时内存数据库到Oracle的同步可以由应用程序生成文件,定时地往Oracle数据库中同步备份,或者采用Oracle 存储过程在系统相对空闲时间段进行数据导入就可以了。


__________________
心灵是干净的,保质是困难的,我趴在老树根旁,辛勤地唱歌。
我的博客:http://hi.baidu.com/edeed
只看该作者    顶部
离线 edeed
骨骨
大圈帮首席打手


来自 大圈帮
精华贴数 0
个人空间 40
技术积分 684 (2790)
社区积分 53 (4712)
注册日期 2002-4-30
论坛徽章:8
管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:网球生肖徽章2007版:鸡
生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    

发表于 2007-10-24 21:58 
内存数据库与传统数据库的异同

传统的数据库系统是关系型数据库,开发这种数据库的目的,是处理永久、稳定的数据。关系数据库强调维护数据的完整性、一致性,但很难顾及有关数据及其处理的定时限制,不能满足工业生产管理实时应用的需要,因为实时事务要求系统能较准确地预报事务的运行时间。

对磁盘数据库而言,由于磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大,如果将整个数据库或其主要的“工作”部分放入内存,使每个事务在执行过程中没有I/O,则为系统较准确估算和安排事务的运行时间,使之具有较好的动态可预报性提供了有力的支持,同时也为实现事务的定时限制打下了基础。这就是内存数据库出现的主要原因。

内存数据库所处理的数据通常是“短暂”的,即有一定的有效时间,过时则有新的数据产生,而当前的决策推导变成无效。所以,实际应用中采用内存数据库来处理实时性强的业务逻辑处理数据。而传统数据库旨在处理永久、稳定的数据,其性能目标是高的系统吞吐量和低的代价,处理数据的实时性就要考虑的相对少一些。实际应用中利用传统数据库这一特性存放相对实时性要求不高的数据。

在实际应用中这两种数据库常常结合使用,而不是以内存数据库替代传统数据库。


__________________
心灵是干净的,保质是困难的,我趴在老树根旁,辛勤地唱歌。
我的博客:http://hi.baidu.com/edeed
只看该作者    顶部
离线 edeed
骨骨
大圈帮首席打手


来自 大圈帮
精华贴数 0
个人空间 40
技术积分 684 (2790)
社区积分 53 (4712)
注册日期 2002-4-30
论坛徽章:8
管理团队成员ITPUB元老授权会员2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:网球生肖徽章2007版:鸡
生肖徽章2007版:鼠ITPUB新首页上线纪念徽章    

发表于 2007-10-24 22:00 
几款内存数据库产品

■ Oracle TimesTen

Oracle TimesTen是Oracle从TimesTen公司收购的一个内存优化的关系数据库,它为应用程序提供了实时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle TimesTen可作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对完全位于物理内存中的数据存储区进行操作。

■ Altibase

Altibase是一个在事务优先的环境中提供高性能和高可用性的软件解决方案。它提供高性能、容错能力和事务管理能力,特别适合通信、网上银行、证券交易、实时应用和嵌入式系统领域。Altibase能够最大限度地发挥数据库服务系统的潜力,增强数据服务器的处理能力。Altibase支持客户端/服务器架构或嵌入式架构。其中客户端/服务器架构非常适合一般的应用。而嵌入式架构将应用程序嵌入到数据库服务器,适合于有高时效要求的实时系统。

■ eXtremeDB

eXtremeDB实时数据库是McObject公司的一款特别为实时与嵌入式系统数据管理而设计的数据库,只有50K到130K的开销,速度达到微秒级。eXtremeDB完全驻留在主内存中,不使用文件系统(包括内存盘)。eXtremeDB采用了新的磁盘融合技术,将内存拓展到磁盘,将磁盘当做虚拟内存来用,实时性能保持微秒级的同时,数据管理量在32BIT下能达到20G。


__________________
心灵是干净的,保质是困难的,我趴在老树根旁,辛勤地唱歌。
我的博客:http://hi.baidu.com/edeed
只看该作者    顶部
离线 tom_111
++天道酬勤++


精华贴数 1
个人空间 0
技术积分 1886 (855)
社区积分 41 (5393)
注册日期 2007-8-24
论坛徽章:6
现任管理团队成员授权会员2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:帆船2008年新春纪念徽章生肖徽章2007版:鼠
      

发表于 2007-10-24 22:16 
ALTIBASE4用户大会:
[URL=http://]http://www.billingchina.com/html/2007-03-22/3747.html[/URL]
ALTIBASE网站:
[URL=http://]http://www.altibase.com.cn/[/URL]


__________________
=========DBA格言================
从理论中来,到实践中去,再回到理论中。
不断的重复,不断的循环!!!
做人做事一定要厚道!!!
做DBA更应该厚道!!!
江湖越走越老,胆子越走越小!!!
***【技术讲究实践和理论】【玉雕讲究打磨和上色】***
***【做人讲究人品和魅力】【做事讲究方法和技巧】***
===============================
Oracle技术交流联盟:(MSN群)mgroup10396@hotmail.com
ALTIBASE技术交流联盟:(MSN群)group199500@xiaoi.com
ITPUB内存数据库版块:http://www.itpub.net/forum162.html
只看该作者    顶部
离线 liyongdong
版主


精华贴数 5
个人空间 0
技术积分 4764 (282)
社区积分 132 (2969)
注册日期 2001-11-25
论坛徽章:23
现任管理团队成员ITPUB元老会员2006贡献徽章授权会员2008年新春纪念徽章生肖徽章2007版:鸡
生肖徽章2007版:龙ITPUB新首页上线纪念徽章生肖徽章:虎生肖徽章:猪生肖徽章:狗生肖徽章:鸡

发表于 2007-10-24 22:33 
很好!比较  系统的说了内存数据库技术及案例


__________________
***人与人之间最大的信任是精诚相见人生没有停靠站,***
***自我本身永远是一个出发点。无论何时何地,只要创***
***造就有收获,只有不息的奋进,才能证明生命的存在。**
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问