内存数据(共10篇)
内存数据 篇1
摘要:内存数据库运行在内存中, I/O操作较少, 且直接通过地址访问得到数据, 运行速度较快, 实时性较高, 在一些实时性要求较高的场合, 如电信、股票、证券及工业控制等领域得到广泛应用。本文阐述了内存数据库的相关概念, 给出了几种常用的内存数据库恢复系统的设计方法和研究概况。
关键词:内存数据库,事务,日志,检查点,故障恢复
1 引言
内存数据库的研究起于20世纪70年代, 人们思考能否将数据库的全部或大部分数据存于内存, 省去运行时复杂的I/O操作, 从而提高存取效率。同时, 随着嵌入式设备的广泛应用, 人们在其里面存储着各种信息, 如何对这些信息进行有效的管理至关重要。近年来, 内存数据库技术不断发展, 各种新的思想和解决方法不断涌现, 丰富了内存数据库的理论基础。
2 内存数据库的定义及特点
设数据库系统DBS;数据库DB;在某时刻t, DB在内存的数据集DBM (t) , DBM (t) ⊆DB;所有可能的事务的集合TS, 在时刻t处于活动状态的事务集AT (t) , AT (t) ⊆TS;事务T在时刻t所操作的数据集Dt (T) , Dt (T) ⊆DB。任一时刻t, 若均有:∀T∈AT (t) , Dt (T) ⊆DBM (t) 成立, 则称DBS为内存数据库系统, 简称MMDBS;DB为内存数据库, 简称MMDB。
内存数据库的特点主要有常驻内存;优化体系结构设计的目标是提高内存和CPU效率;事务处理无需进行磁盘访问, MMDB性能较高。
3 内存数据库关键技术研究
3.1 内存数据库的存储结构
内存数据库存储在易失性内存中, 可以由处理机直接存取, 因而存取时间较短, 短至10-8量级。内存的顺序访问和随机访问时间开销相同, 提高内存的空间利用率是系统追求的目标, 内存是字节或字编址的。内存数据库物理组织多采用区-段式。此方式属关系模型, 它将存储空间划分为区, 每一区存储一个关系, 区由段组成。段是内外存I/O的单位, 也是内存空间分配和数据库恢复的单位。
3.2 索引的结构
常用的内存数据库索引结构为数组、AVL树、B/B+树、T树及hash索引等方法。其中, 它们具有各自的优点和缺点, 数组作为索引需要移动大量的数据, AVL树存储利用率低, 每一节点只能存储一个数据项, B树及其变种B+树操作性能好, 能动态维护, 但内存利用率低。内存数据库普遍应用T树, 它是一种AVL树和B树结合起来的二叉树。
3.3 并发控制
内存数据库的并发控制具有新的特点。首先, 内存访问速度快, 事务持有锁的时间很短, 对锁的竞争比较小。其次, 可以用统一的方式访问数据和元数据。对更加复杂的内存数据库系统, 采用单一的加锁方式不能满足长短事务的需要, 一般采用多粒度锁机制。
3.4 故障恢复
数据存储在内存中, 内存本身具有易失性, 再加上内存数据库很多用在易发生断电等故障的嵌入式设备, 因此内存数据库出现系统故障或事务故障较为频繁, 建立有效的恢复机制变得很关键。内存数据库恢复系统中, 有的数据库采用了特殊的硬件作为支撑, 主要有两种: (1) 采用非易失性内存 (NVRAM) , 将数据库的影子拷贝和日志放入其中, 减少I/O操作的次数, 提高吞吐量; (2) 为恢复处理操作, 增加一个恢复处理器, 负责日志管理、执行检查点、故障后的恢复操作。
3.4.1 日志协议
数据库的日志协议一般包括redo日志, undo日志和redo/undo日志协议。内存数据库中尽量使用redo日志, 而避免过多使用undo日志。redo日志采取延迟更新技术, 日志记录被写到磁盘后, 被更新数据可以在任何时候写入磁盘。有些内存数据库结合了上述两种日志协议的优点, 结合影子页面技术的思想, 提出事务私有缓冲区的概念, 同时, 该协议吸收了redo日志和undo日志的优点, 摒弃它们的很多缺点, 形成新的redo-undo日志协议, 该日志协议同时记录redo日志和undo日志, 但是当事务提交时, 只将redo日志保留, undo日志被删除, undo日志只在检查点操作时被刷新到磁盘, 这样可以减少日志的数量及I/O操作的次数, 同时又能利用undo日志处理检查点过程中的撤销操作, 实现模糊检查点的策略, 提高检查点过程中事务的并发性, 减少检查点与正常事务的冲突。
3.4.2 检查点 (Checkpoint) 选取
做检验点的策略有两种:静止检查点, 这种方法要求检查点开始运行时, 不在接纳新的事务, 等待当前运行的所有事务结束, 检查点结束, 新的事务开始运行。静止检查点虽原子地反映一个事务活动, 但是检查点过程可能由于等待一个长事务而消耗时间。静止检查点方法不适合内存数据库。
动态检查点, 在检查点执行的过程中, 可以接受新的事务, 同时基本上能保证事务或活动的原子性。典型的动态检查点包括fuzzy checkpoint技术, Ping—Pong方式, 黑白检验点, 更新时复制检验点等方法。
3.4.3 内存数据库的重装
为了不降低整个系统性能而快速恢复事务处理, 必须开发出一种有效的重装机制, 把数据库备份从磁盘转到内存。重装算法分两类:简单重装和并发重装。在简单重装中, 系统直到整个数据库装入主存中才恢复正常操作。并发重装中, 重装和事务处理并行进行。在并发重装机制中, 系统在整个数据库装入内存前就开始执行事务了。有的方法在系统日志和它们的索引装入内存后就可以开始正常事务处理了。当事务需要访问那些还没有装入内存的关系或者索引时, 恢复管理器就会重装相应的部分。典型的并发重装算法有顺序优先级装载 (ORP) 、智能装载 (SR) 和频率装载 (FR) 等三种算法, 这三种都通过预测哪些页面需要立刻使用来降低重装时间。
4 结语
内存数据库的应用领域日益广泛, 新的研究成果和技术不断涌现, 关注的人越来越多。把内存数据库引入到电信, 军事国防, 工业控制领域已成为必然趋势并将为解决这些领域的难题提供新的解决思路。
参考文献
[1]王珊, 等.内存数据库关键技术研究[J].计算机应用, 2007, 27 (10) .
[2]杨武军, 等.内存数据库技术综述[J].西安邮电学院学报, 2005, 10 (03) .
[3]陈亚峰, 张效尉.一种新的无冲突并发控制算法[J].科技创新与应用, 2012 (14) .
内存数据 篇2
0引言
族谱又称为家谱、宗谱,是一种记录家族世代繁衍和重要人物事迹的图文体裁。 族谱文献对于我们了解人文历史有很大的帮助,并且在政治经济学、地理学、群体遗传学等方面都有着潜在的研究价值[1]。 传统的中国式族谱通常以纸质、布质等形式的谱书为承载形式,各族、各家拥有自己独立的谱书。 这些谱书在存在形式上相互独立,但是在内容上却有很强的相关性。传统的谱书式族谱在信息交互和共享方面存在着先天不足,且实体的谱书不便于后续的修改(续修)以及保存。 因此,近年来族谱数字化受到了社会的广泛关注。
数字化族谱系统除了能提供给用户录入族谱信息、利用族谱信息的功能之外,还需要兼顾中国式族谱的特殊需求——谱书。 家族在编修族谱时,通常都需要以采集好的族谱数据为基础,通过编辑、排版形成内容丰富、图文并茂、样式美观的谱书,然后将其印刷成册并分发给族人。 目前,国内外在数字化族谱系统方面已有一些研究和开发工作。 著名的族谱网站FamilySearch[2]中,用户可以方便地创建和管理个性化族谱空间,但没有提供族谱数据纸质化输出功能。 文献[34]都实现了基于单机形式的族谱录入软件:将族谱的制作工作分割成多个任务,由多位制作人员分别完成这些任务并以文件存储任务中的族谱数据,最后将多个数据文件合并,编辑形成最终的族谱。 但是这种数据管理方式不利于信息的共享,而且多个数据文件之前存在较多的冗余以及冲突,无法自动完成数据文件合并。 为了加快族谱数字化进程,结合实际的应用需求,本文设计并实现了一个基于B/S架构的族谱信息系统,该系统提供了族谱数据的录入、查询服务、纸质化输出等功能。 结合族谱信息系统中的实际需求,本系统的数据存储采用了分布式结构和内存数据管理技术,大大加快了族谱信息录入和检索的速度。
本文内容组织如下:第1节介绍族谱信息数据的特点;第2节介绍系统功能,并分析引入内存数据管理技术的必要性;第3节将简单介绍本系统中所涉及的相关内存数据管理技术;第4节介绍内存数据管理技术在族谱信息系统中的具体应用;第5节对本文工作进行总结并对未来工作进行展望。
第5期张文杰,等:内存数据管理技术在族谱信息系统中的应用华东师范大学学报(自然科学版)1族谱数据简介
族谱数据通常由三部分构成:世系数据、文档数据以及多媒体数据。
(1) 世系数据包括人物数据和人物之间的亲缘关系数据。 其中亲缘关系主要分为父子(父女)、母子(母女)、配偶、过继(从亲属中收养子女)、兼祧(一位男子同时继承多家)。 世系数据是族谱数据中最重要的部分。 (2) 文档数据包括在族谱中家族大事件的文字记录和重要的人物传记,族谱中的文档数据除文本之外还包含图表等,呈现一种图文并茂的形式。
(3) 多媒体数据包括族谱中记录人物或者家族大事件的图像、音频、视频,这里的多媒体数据并不包括文档数据中含有的图表。
族谱数据中的文档数据、多媒体数据和一般的文档数据、多媒体数据在组织和存储形式上并无明显区别,而世系数据作为族谱数据中的核心数据,其特点鲜明。
如果把世系数据中每个人物作为节点,人物之间的关系作为边,则世系数据就构成了一种类似树的结构,下文中也把这种结构称为世系树,如图1所示。
如果考虑更广泛的亲缘关系(如联姻),很多世系数据就会联系在一起构成类似森林的结构,这和社会网络[5]数据非常相似。 但是世系数据比社会网络数据所表达的人物群体更加特定,人物之间的关系更加明确。
总结起来,世系数据具有以下特点:
(1) 表达对象是特定的人物“群体”——家族(或者支系),人物关系是亲缘关系,相比其他人际关系要更加紧密和牢固。
(2) 如果把人物视作节点,把人物之间的关系视作边,世系数据构成了一种特殊的层次结构—世系树。
(3) 如果把多个世系树用联姻关系联系在一起,会构成一种特殊的图结构,类似于森林和社会化网络数据。
图1世系树示例图
Fig。1The tree structure of genealogy data
2族谱信息系统
传统族谱信息系统采用的是单机管理不易于扩展功能,数据分散且有大量冗余,无法利用这些族谱数据向公众用户提供服务。 为了更好地收集和利用族谱数据,我们设计并开发了一款基于B/S架构的`族谱信息系统。 该系统支持多用户并行录入同一族谱中的数据,并统一对族谱数据进行管理,同时通过本系统还可向公众用户提供对已录入族谱数据的检索。
族谱信息系统的主要功能包括数据录入、数据服务和数据输出。
2。1数据录入
数据录入功能主要包括三部分:世系数据录入、文档数据录入、多媒体数据录入。 其中世系数据录入是指录入人物的基本数据以及录入人物之间的联系数据。
2。2数据服务
数据服务功能主要包括数据展示、统计检索、一键寻祖和一键寻亲。
(1) 数据展示
数据展示功能包括族谱展示和对照预览。 族谱展示功能主要显示一个族谱的基本信息。 对照预览则用于在正式输出纸质化族谱之前以各种不同的样式来预览输出的效果。
(2) 统计检索
统计检索提供了对系统中的族谱数据进行统计和检索的功能。 族谱统计是显示整个族谱的统计信息,如总人数、男女比例、生死状况等。 简单检索和组合检索是在某些族谱属性或者人物属性上进行检索的功能。
(3) 一键寻祖和一键寻亲
一键寻祖可以从族谱中根据人物之间的亲缘关系得到指定人物在指定范围内(比如限定世代数)的祖先。 一键寻亲则是指在族谱数据中找到两个指定人物之间的亲缘关系链(即两人是通过哪些人关联在一起)。
2。3数据输出
为了满足用户传统纸质谱书的需求,族谱信息系统中提供了数据输出功能,主要包括族谱编排、族谱生成。
(1)族谱编排
谱志编排功能是通过用户的个性化需求对谱书的样式、数据出现的顺序、名词的表达方式等进行设置。
(2) 族谱生成
族谱生成功能主要是在族谱编排过后,按照用户的个性化需求从原始族谱数据中转换生成电子版的谱书以供印刷。
2。4应用内存数据管理技术的必要性
通过对族谱信息系统的功能分析,族谱信息系统具有以下特点。
(1)数据源单一。 在数据录入过程中,对每个录入用户来说,只能操作自己参与录入的族谱数据。 同时,数据输出过程中,只需要去访问要生成电子族谱的特定族谱的数据。
(2)数据量较大。 每个族谱都存有数量和容量庞大的世系数据、文档数据、多媒体数据。
(3)实时性要求高。 由于本系统基于B/S模式设计,无论是数据录入、数据服务还是数据输出功能,系统响应时间都应该很短。
族谱信息系统的大数据量和高实时性的特点对系统实现提出了挑战。 而随着主存的成本显著降低,许多成熟的内存数据管理技术为族谱信息系统的实现提供了解决方案[6]。
3内存数据管理技术
内存数据管理[7]的关键技术包括存储结构[8]、索引结构[9]、并发控制[10]、同步策略[11]、故障恢复[12]等。 本节将重点介绍系统中用到的索引结构和同步策略。
3。1索引结构
内存数据库由于其工作的主版本保存在内存中,所以内存数据库的索引选择应结合存储介质的特点,从而通过索引的建立来保证内存数据库查询操作的高效性。 目前在内存数据库中经常选用的索引结构有hash索引和T树索引。
(1) hash索引[13]定义了一个hash函数,通过将关系表的索引项传入到hash函数可以计算出相应的hash值,从而在索引项和hash值之间建立起对应关系,通过hash索引查找数据只需常数时间的复杂度。
(2) 在内存数据库中目前较广泛使用的一种树是结合B树[14]和AVL树进化而来的T树[14]。 T树的单个节点有多个数据,因此拥有良好的修改和存储特性。 由于T树属于AVL树的一种演进,具有AVL树的平衡特性,从而进一步提升了树的搜索性能。 因此T树在时间和空间两者间具备较好的平衡性。
hash索引在进行定值的查找时效率很高,而T树索引一方面具有树的二叉性而且其设计符合内存数据库存储介质的特性,所以当前主流的内存数据库都至少提供了这两种索引结构。3。2同步策略
内存数据管理的数据同步更新技术大致可以分为表复制技术、事务复制技术、触发器技术和影子表技术。 这里主要介绍表复制技术和事务复制技术[15]。
(1) 表复制技术:采用把某一时刻源数据表的内容通过网络发送到复制的副本,因为复制的内容是表的某一时刻的状态,所以又被形象地称为表快照。 表快照的复制不是以事务为基础,所以副本缺乏基本的关系完整性。 基于表复制技术不需依赖特别的机制,不占用额外的系统资源,管理和操作也非常容易,而且在同步初始化和崩溃恢复时是必须的。 但是全表更新效率很低。
2GB内存系统仍提示内存不足等 篇3
我用的是Vista操作系统,内存容量为2GB,我把虚拟内存给关了,但操作系统平时占用的内存都要到60%~70%(就开个迅雷而已),有时甚至更大,我以前用1GB的时候也才60%左右(开迅雷),为什么2GB的内存也用这么大,而且经常出现内存不足的提示,要我关掉一些程序,这是怎么回事呀,用1GB内存时都很少出现这个情况,请问这个问题如何解决?Vista操作系统在执行些程序时,仍然需要调用系统虚拟内存,建议不要关闭虚拟内存,加上现在硬盘容最一般都比较大了,不要为了节省硬盘空间而导致系统运行缓慢甚至程序出错的故障。另外,由于Vista系统对内存容量的需求本身较高,就不要因为使用2GB内存就关闭虚拟内存,这样做并不能增加系统运行的速度,反而会影响系统运行的稳定性。
编辑点评
新的操作系统对于内存的需求更大,因此会出现不同容量时内存占用率差不多的情况,这也是为了让系统能够更流畅地运行。建议用户不要关闭虚拟内存,因为关闭虚拟内存会占用内存容量、导致内存不足,性能反而降低的现象。
易驱能否接DVD刻录机?
现在市场上有一种易驱,也就是一种带电源的USB2.0接口转IDE接口的转接器。可以用外接IDE接口硬盘和刻录机,但是不知道能不能满足16×DVD刻录机的数据流量的需要?
USB 2.0接口的理论速率为480Mbps,能提供最大约60MB/s的理论数据传输速度,实际速率也能达到30MB/s左右。16×DVD的理论最高速率为1358KB/s×16=21MB/s,这是刻录的最高峰值速度,平均速率在15MB/s左右,因此USB 2.0是能满足DVD刻录机的需要的。
查看移动硬盘的详细信息
最近新买了—个移动硬盘,想知道硬盘盒用的什么芯片以及用的什么硬盘,不想拆开硬盘盒,因为怕出了问题之后没有质保。请问应该怎么才能看到呢?
使用EVEREST软件查看存储设备,就可以发现移动硬盘所用的芯片和硬盘品牌以及一些详细的情况。
DDR2 533内存无法开机
最近我升级了电脑,主板换成了富士康P35A,处理器换成了酷睿2 E6550,内存保留了原来机器上的两条KINGMAX 512MB DDR2 533,不料无论如何也开不了机器。但是把硬件一样一样放到别人的机器上试验,却都是正常的。请问这是怎么回事?
现在部分主板根本没有提供1333MHz/533MHz规格的分频,因此就可能出现开不了机器的情况。建议用户去厂商官方网站看有没有支持低分频的新版BIOS。如果实在不行就只有更换频率更高的DDR2内存了。
数码相机波纹效果问题
我的相机在拍摄具有精细规则图案(如条纹、格子或者显示器)的主体时,图像中有时会出现主体本身并不存在的波纹,影响拍摄效果。请问有什么方法可以避免?
这种情况称为波纹效果。你可以通过变换与主体的距离、放大倍率或相机角度来避免波纹效果。另外,尝试转换拍摄环境,改变光线也可以避免波纹效果。值得注意的是,波纹效果也可能是数码相机液晶显示屏显示的原因,这种效果不一定存在于所拍摄的照片中。
GeForce 8600GT玩游戏不流畅
在运行《Crysis》时,我的GeForce 8600GT显卡显得非常吃力,即便是将分辨率调整到1280×720这种低宽屏分辨率,并把特效开到很低也没办法流畅运行。但我看到网上的一些跟我同样平台的测试数据比我的成绩都好得多,请问这是为什么?
8600GT虽然算不上什么高端显卡,但应该完全能够保证Crysis在低环境下的正常运行。你遇到的问题有可能是驱动程序版本过低造成的。目前NVIDIAForceware 169.28已经发布,刚好解决了一些NVIDIA显卡与Crysis之间的兼容性问题。同时,《Crysis》这款游戏的首个升级补丁也已经问世,建议将新驱动和新补丁配合使用。
显卡辅助供电接口的转接头问题
我的显卡的辅助供电接口是6Pin的,但是电源没有6Pin的显卡辅助供电接口,只有4Pin的接口,听说可以通过4Pin转6Pin的转接头来转接,不知道这样是否可行?
内存数据库故障恢复策略研究 篇4
内存数据库不同于传统磁盘数据库,它将主版本放在内存中运行,提高了系统性能。但是,由于应用程序直接访问数据,数据库更易受到应用软件错误和系统崩溃等故障带来的伤害。内存数据库的恢复较之传统磁盘数据库要复杂得多,也更为关键,恢复部件一定要被恰当地设计、实现和维护。内存数据库恢复系统的设计方法,由于应用领域和设计思路的不同而千差万别,但它们追求的目标是相同的,都是保持数据库的一致性,使数据库能从故障中快速恢复,且恢复时占用尽量少的时空开销。恢复技术的研究已成为内存数据库研究领域的热点问题。本文从内存数据库的特性出发,对系统恢复模型、日志协议、检查点策略及恢复处理等方面进行了研究和探讨,给出了一种新的恢复机制。
1 系统恢复模型
目前,内存数据库的恢复方法存在诸多不足之处,例如成本过大,记录Undo日志方面I/O比较频繁,事务和检查点进程操作并发度低,从而造成系统效率不高。内存数据库的恢复一般采用基于日志的恢复或者影子页技术,它们各有优缺点。如何将上述两种恢复技术有效地结合在一起,设计一个高效且可靠的恢复子系统是内存数据库研究的突破点。新的内存数据库恢复机制无需额外硬件的支持,模型如图一所示[1]。
在该模型中,事务管理器负责事务的创建、消亡及调度管理,处理事务运行中的并发控制及死锁。数据库为每一事务分配一个事务私有缓冲区,包括数据缓冲区和日志缓冲区,存储事务操作的数据和产生的日志。日志管理器将内存缓冲区中的Redo日志写入硬盘的日志文件中,以便系统发生故障后恢复数据库。检查点管理器定期执行检查点操作,它根据日志管理器提供的信息,将上次检查点操作以来数据库主拷贝中的变更数据库片刷新到硬盘数据库备份中,并向外存的日志文件中写检查点记录。数据交换器,负责数据库主拷贝与硬盘备份数据库间的数据交换,同时兼做恢复时的重装器。每当系统故障后,它先调用重装器按一定策略将备份数据库中的相关数据片装入数据库主拷贝中,恢复处理器用日志管理器中的Redo日志和Undo日志,将数据库主拷贝恢复到最近的一致性状态。
2 日志管理器
日志是日志记录的一个序列,每个日志记录记载有关某个事务已改变的某些情况,它是使用最广泛的记录数据库修改的结构,记录了数据库中所有的更新活动。日志模块的设计思想是既要记录足够的信息以备恢复之用,同时又要求日志所需的存储空间尽量少,执行过程中I/O操作的次数少。
2.1 日志设计
当数据库中发起一个事务时,系统为每个事务线程分配私有日志。私有日志有两个日志链表:Redo日志链表用来保存记录的新值,保证在系统故障时可以恢复数据;Undo日志链表用来保存记录的旧值,确保未完成的事务在出现事务故障时可以被回滚,事务的执行都记录在各自的日志缓冲区中,可以提高不同事务之间操作的并发度[2]。为减少全局日志的数量,事务结束后删除Undo日志,只将已提交事务的Redo日志暂时连续写入内存的全局日志文件中,事务的私有缓冲区被释放,系统会在特定的时刻将内存中存放的全局日志提交给磁盘,用于事务故障时的恢复,从而提高检查点操作和恢复的效率。
2.2 事务提交处理
事务Ti开始执行时被加入活动事务表中,在该事务的私有日志缓冲区中,记录事务的Redo日志和Undo日志。当Ti完成执行后,进入预提交阶段,过程如下:①依据事务缓冲区的记录,对内存中要被事务修改的数据块加锁,对加锁的数据块进行更新操作;②在日志私有缓冲区中的Redo日志中,加入Ti的提交记录,然后将事务的私有Redo日志修改到系统的全局Redo日志里;③释放事务Ti所有的锁和资源。
当提交记录成功写入磁盘时,事务才真正被提交,该阶段采用组提交策略,将要提交的事务组成队列,合并后以一个扇区为单位写入磁盘,处理过程如下:(1)通知用户,事务Ti被提交,并传回返回值;(2)在活动事务表中删除Ti;(3)释放事务的私有Redo日志和Undo日志。
2.3 事务失败处理
如果事务执行失败,只需释放事务的私有缓冲区,而无需对数据库执行撤销操作,节省了内存空间且简化了夭折处理。
3 检查点策略
检查点设计的目标是尽量减少I/O操作的次数,减少用于恢复的日志的频率。本文设计的内存数据库采用模糊检查点模式,检查点进程和事务并发执行,减少检查点执行过程中与正常执行事务的冲突,提高检查点操作执行效率。为保证检查点操作的原子性,系统采用乒乓方法的检查点策略,该方法允许检查点执行过程中出现暂时不一致的情况,即允许在Undo日志写出前,相应的数据更新已经被写出,脏页表写出后,足够的Redo日志和Undo日志信息被写到磁盘上,保证能将检查点带到一致的状态。磁盘上包括两个检查点映像,检查点操作时对其中的一个映像进行操作,当这个检查点执行过程中出现失败,另一个检查点映像仍然处于一致状态并可以用于恢复。
采用时间戳来确定备份时哪些数据库段需要写入外存:时间戳TCP表示当前检查点操作的开始时间;再为每个在内存的数据库段设置时间戳TSEG指明其最后被修改的时间;给每一个事务私有缓冲区WAi设置一时间戳TWAi,用来表示对应事务预提交过程结束的时间。设△mem为在TCP时刻所有TSEG
4 故障处理
内存数据库的故障包括事务故障、系统故障和介质故障。本文的研究侧重于系统故障,指系统由于掉电和软件错误,需要重新启动的故障,此时内存数据库中有些更新还没有写入外存数据库,将外存数据库重装入内存和利用日志进行恢复,使数据库恢复到最近一致性状态是解决问题的关键。
4.1 重装算法
简单重装不能使数据库并发处理;顺序优先级重装忽视了数据访问频率。而只关心装入优先级且允许抢占;智能重装考虑了事务处理数据的访问频率,但增加了额外开销;而频率重装考虑了数据被存取的频率,降低了额外开销,却复杂了备份的过程。针对这些重装算法的不足,考虑重装过程中事务执行的优先级、预装入、数据的临时性和被访问的频率等因素,提出了一种针对内存数据库的数据优先级重装算法。它减少了无效的临时数据和事务终止次数,因此,高优先级的事务被立即执行从而能在截止期内完成。具体的重装算法如下[4]:
(1)装入系统信息到MMDB系统区。
(2)建立恢复缓冲区和脏页表,标示等待事务及其所需数据库片,根据磁盘数据库目录提供的信息,将这些数据库片按柱面组合在一起。
(3)根据如下的优先级策略,重装外存数据到MMDB主数据区,直到数据量达到重装阈值:(1)按照“等待”事务的优先级,由高到低装入数据;(2)将在恢复位图中最近一次检查点之后被修改的脏数据页,根据日志进行数据恢复,若非脏页则直接装入;(3)按存取频率装入其余数据。
(4)将日志中已提交事务的“后映像”复制到各事务私有缓冲区。
(5)当重装达到阈值,系统启动运行。
(6)依据如下优先级策略,重装其他外存数据到MMDB主数据区:(1)执行事务所需的数据库片;(2)以柱面为基础装入“等待”事务所需其余的数据库片;(3)按磁盘数据库存储顺序装入其他柱面数据。
4.2 恢复算法
系统重启过程中,如果发现脏页,需要利用磁盘上的日志和数据库备份,进行重装恢复,具体恢复过程所下[5]。
(1)将磁盘上当前数据库的镜像装入内存。
(2)找到最近一个完整检查点。
(3)将该检查点中以下内容读入内存:①检查点发生时的稳定全局日志尾指针;②检查点发生时的活动事务表;③检查点发生时所有活动事务的Undo日志。
(4)从读入的检查点记录的稳定日志尾指针开始,向后遍历日志直至日志尾,根据日志选择做以下操作:
①如果遇到Redo记录且有提交记录,那么执行这个Redo操作。
②如果遇到失败终止记录
(5)对于在检查点处于活动状态,但在Redo日志中没有提交记录,而且其状态也没有被标记为“提交中”的事务,从检查点中找到相应的Undo日志并执行Undo操作。
5 结束语
本文在内存数据库的恢复技术方面,取得了一定的成果,给出了系统恢复模型及相关实现技术。但也存在很多不足,主要表现在部分模块缺少编程实现、缺乏与同类数据库的分析和对比,需要在以后的研究中,改进前面的成果,同时克服前面的问题。
参考文献
[1]易国洪.内存数据库中恢复技术研究[J].科技广场,2007,(03):106-107.
[2]钱能.基于日志恢复技术的内存数据库快速恢复模型的研究[J].现代计算机,2008,287(07):81-82.
[3]吴绍春,李国微等.内存数据库恢复及其实现机制[J].江汉石油学院学报,1998,20(02):103-104.
[4]李蔚,马江涛.嵌入式内存数据库的恢复及重装算法研究[J].微计算机信息,2007,23(04Z):92-93.
内存数据 篇5
数据的内存中表示形式
在 ADO 中,数据的内存中表示形式为记录集。在 ADO.NET 中,它为数据集。它们之间有重要的差异。
表的个数
记录集看起来像单个表。如果记录集将包含来自多个数据库表的数据,则它必须使用 JOIN 查询,将来自各个数据库表的数据组合到单个结果表中。
相反,数据集是一个或多个表的集合。数据集内的表称为数据表;明确地说,它们是 DataTable 对象。如果数据集包含来自多个数据库表的数据,它通常将包含多个 DataTable 对象。即,每个 DataTable 对象通常对应于单个数据库表或视图。这样,数据集可以模仿基础数据库的结构。
数据集通常还包含关系。数据集内的关系类似于数据库中的外键关系,即它使多个表中的行彼此关联。例如,如果数据集包含一个有关投资者的表和另一个有关每个投资者的股票购买情况的表,则数据集可能还包含一个关系来连接投资者表的各个行和购买表的对应行。
由于数据集可以保存多个独立的表并维护有关表之间关系的信息,因此它可以保存比记录集丰富得多的数据结构,包括自关联的表和具有多对多关系的表。
数据导航和游标
在 ADO 中,您使用 ADO MoveNext 方法顺序扫描记录集的行。在 ADO.NET 中,行表示为集合,因此您可以像依次通过任何集合那样依次通过表,或通过序号索引或主键索引访问特定行。DataRelation 对象维护有关主记录和详细资料记录的信息,并提供方法使您可以获取与正在操作的记录相关的记录。例如,从 Investor 表的“Nate Sun”的行开始,可以定位到 Purchase 表中描述其购买情况的那组行。
“游标”是数据库元素,它控制记录导航、更新数据的能力和其他用户对数据库所做更改的可见性。ADO.NET 不具有固有的游标对象,而是包含提供传统游标功能的数据类。例如,在 ADO.NET DataReader 对象中提供只进、只读游标的功能。有关游标功能的更多信息,请参见数据访问技术。
将打开连接的时间降至最低
在 ADO.NET 中,打开连接的时间仅足够执行数据库操作,例如“选择”(Select) 或“更新”(Update),
您可以将行读入数据集中,然后在不保持与数据源的连接的情况下使用它们。在 ADO 中,记录集可以提供不连接的访问,但 ADO 主要是为连接的访问设计的。
ADO 和 ADO.NET 中的不连接处理之间存在一个显著差异。在 ADO 中,通过调用 OLE DB 提供程序来与数据库通信。但在 ADO.NET 中,您通过数据适配器(OleDbDataAdapter、SqlDataAdapter、OdbcDataAdapter 或OracleDataAdapter 对象)与数据库通信,这将调用 OLE DB 提供程序或基础数据源提供的 API。ADO 和 ADO.NET 之间的主要区别在于:在 ADO.NET 中,数据适配器允许您控制将对数据集所做的更改传输到数据库的方式,方法是实现性能优化、执行数据验证检查或添加其他任何额外处理。
注意 数据适配器、数据连接、数据命令和数据读取器是组成 .NET Framework 数据提供程序的组件。Microsoft 和第三方供应商可能会提供其它提供程序,这些提供程序也可集成到 Visual Studio 中。有关不同 .NET 数据提供程序的信息,请参见 .NET 数据提供程序。
在应用程序间共享数据
在应用程序间传输 ADO.NET 数据集比传输 ADO 不连接的记录集要容易得多。若要将 ADO 不连接的记录集从一个组件传输到另一个组件,请使用 COM 封送。若要在 ADO.NET 中传输数据,请使用数据集,它可以传输 XML 流。
相对于 COM 封送,XML 文件的传输提供以下便利之处:
更丰富的数据类型
COM 封送提供一组有限的数据类型(由 COM 标准定义的那些类型)。由于 ADO.NET 中的数据集传输基于 XML 格式,所以对数据类型没有限制。因此,共享数据集的组件可以使用这些组件一般会使用的任何丰富的数据类型集。
性能
传输大型 ADO 记录集或大型 ADO.NET 数据集会使用网络资源;随着数据量的增长,施加于网络的压力也在增加。ADO 和 ADO.NET 都使您可以最大限度地降低所传输的数据。但 ADO.NET 还提供另一个性能优势:ADO.NET 不需要数据类型转换。而需要 COM 封送来在组件间传输记录集的 ADO,则需要将 ADO 数据类型转换为 COM 数据类型。
穿透防火墙
防火墙可以影响试图传输不连接的 ADO 记录集的两个组件。请记住,防火墙通常配置为允许 HTML 文本通过,但防止系统级请求(如 COM 封送)通过。
因为组件使用 XML 交换 ADO.NET 数据库,所以防火墙可以允许数据集通过。
内存数据 篇6
1 数据库发展的现状
随着我国信息时代的到来, 我国有大量研究人员正在努力开发一些数据软件, 有不少软件已投入使用, 并且还有一些重要程序已被大型网站采用, 这些软件程序的开发, 为我国信息时代的发展带来了巨大经济效益和发展机遇。在传统数据库发展过程中存在大量问题, 其中最为重要的就是数据库在访问时出现严重的停滞现象, 尤其是在大量的数据存储方面还非常不足, 而目前一些程序和软件的成功开发加大了数据库的存储容量, 使得系统在运行时提高了工作效率。这些程序主要就是将复杂的问题简单化, 然后就能够轻而易举地解决较为困难的问题。为什么说这些软件和程序只是解决简单的问题呢?主要的原因有两个, 其中一个就是数据模型较为复杂, 像淘宝、阿里巴巴等一些软件在开发研究的过程中, 其核心都非常复杂, 并不是单单简单运行就能够开发出来的, 因为在进行会员充值时会有较多的个人信息需要填写, 如果不能保证人们信息的保密性, 就会降低人们的信赖度, 导致这些软件的最终失败。所以, 在进行软件开发时一定要注重保证人们信息的保密性, 增加保密程序, 避免将信息泄露出去, 否则不但不会有较大的资金收入, 还会导致整个公司出现巨大危机。第二个原因就是, 现在的业务越来越复杂, 随着我国的经济快速发展, 人们之间的贫富差距越来越大, 造成了一些人投机取巧, 利用别人的信息进行商业欺诈, 或者是制造陷阱坑害别人, 所以, 现在必须要加强对人们信息的保护。在进行业务交易时需要的手续非常多, 这就导致一些数据的程序要设定得非常繁琐, 这样做才能提高人们对一些软件的信赖度, 像淘宝、阿里巴巴等, 这些软件都赢得了人们的好感。
2 内存数据库概述
内存数据库是一种将数据置于内存中直接进行相关操作的数据库类型, 与传统数据相比, 存在十分明显的差异。首先, 传统数据库的架构是以磁盘为中心, 而内存数据库的架构中心则为内存。其次, 在具体的实施方面, 传统数据库采用的是利用单独服务器的方式, 内存数据库则可以嵌入应用。另外, 内存数据库还具有高实时性的特点。在内存数据库运行程序时一定要注意将程序完整保存, 数据库的大小严重影响到数据的存储效果。如果出现存储容量不够的情况, 就会造成系统出现非常严重的卡顿现象。只有在内存足够大时才能保证整个系统的正常运行, 不会出现停滞现象。这就是为什么要努力开发新的数据库方式, 只有开发出能够进行大量数据存储的数据库, 才能不断促进信息时代的发展, 才能保证整个系统能够有效率运行。
通过上文分析可以了解到, 当前我国数据库在发展中面临的主要问题, 便是业务和数据模型复杂。正因为此才导致现在的技术在开发过程中受到了严重阻碍, 降低了我国系统服务的质量以及服务水平。因此, 在研发数据库时, 要注意的是不再运用传统的交互方式。传统的交互方式是直接与磁盘数据库进行交互, 这种方式会导致系统速度降低, 转而选择将读写操作都直接针对内存数据库。这样一来, 可以有效简化交互的过程, 提高交互速度, 提高运行效率以及运行水平。
3 基于内存数据库的分布式数据库构架分析
内存数据库具有非常强的持久性, 如果不对系统进行更改, 系统会一直存留原先的数据信息, 并能够非常正常地运行出来, 这是内存数据库非常大的优点。内存数据库在运行时需要做集群, 这就是开发分布式数据库的原因, 运用这种方法可以将整个系统的信息全部保存下来, 还可以直接选出数据库的代理, 直接控制数据库, 方便了对数据库的管理, 提高了工作效率。
当前信息时代大背景下, 各种信息不断涌现出来。于是, 越来越多的数据信息开始出现在人们的日常工作和生活之中。为了更好地对这些数据信息进行管理、储存以及分析研究, 人们开始将越来越多的信息存储在网络中的计算机上。而常规的数据库已无法满足人们在数据信息方面的实际需求, 于是, 分布式数据库应运而生。内存数据库具有高能性, 分布式数据库的构架相当于内存数据库的一种新型构架。分布式数据库中, 相应的数据具有高度统一性, 并体现在逻辑统一和管理统一两个方面。存在于该数据库中的大量数据并非存储在同一个场所, 而是被分散存储在多个不同的场所之中。因此, 从使用单位的组织和地理情况进行分析, 该数据库具有十分灵活的体系结构。
分布式数据库整体构架中, 具有中间持久层, 能够支撑海量数据进行访问。这种构架方式具有非常大的挑战, 并且提高了复杂度。运行这种新型构架方式就是将内存数据库看成一个磁盘, 可以将多种数据库进行整合。另外, 其还具有非常高的可用性, 异步持久性也较强。在实际应用过程中, 人们可以结合自身在数据方面的实际需求, 实施分布式数据管理。分布式数据库的特殊结构十分适合被应用于具有一定的地理分布特性的组织或者机构之中, 具有很强的灵活性, 可以被不同级别、分布在不同区域的不同部门利用。不同的部门可以立足实际内存情况, 结合自身需求对自身的各项数据实施管理和控制。另外, 在整个数据库系统中, 还可以通过自动检测方式及时发现各种故障, 并在联机状态下, 通过对冗余数据的分析对出现故障的地方予以恢复。因此, 整个数据库系统具有很强的可用性以及可靠性, 并且具有很高的实际应用价值。但是, 需要注意的是, 在具备显著优点的同时, 分布式数据库也存在一定的缺点。例如, 在实际应用过程中, 在对各种数据进行管理和保密方面难度较大, 存在一定的保密性和安全性问题。因此, 分布式数据库需要通过通信网络来实现有效的分布控制。而通信网络很容易在安全性和保密性等方面出现一定的问题, 进而对分布式数据库的安全水平和保密程度产生一定的影响。另外, 在集中式数据库系统中, 各种复杂的存取结构是有效的。但是, 在分布式数据库中, 相应的存取结构不一定有效。因此, 就目前的实际情况来看, 这种新型构架方式还是存在许多漏洞, 还要继续进行研究开发, 才能推动整个系统发展。
4 结语
上文对数据库进行了全面介绍, 内存数据库的重要作用也已进行了分析, 作为基于内存数据库下的分布式数据库的新型构架, 面临着巨大的困难需要克服, 只有在不断研究分析探讨中找到正确的解决方法, 才能解决存在的问题, 才能推动信息时代的不断进步, 数据库的更新和采用的方法, 直接关系到我国未来的发展状况。
摘要:随着我国经济快速发展, 我国已初步进入信息时代, 随之人们对物质文化的需求越来越大, 只有不断加快社会发展步伐才能满足人们的需求。笔者主要介绍了内存数据库, 内存数据库在信息时代是非常重要的, 为了适应信息时代的发展, 数据库内存必须要非常大, 必须能够支持庞大的数据量, 这就要创新数据库的结构, 笔者主要介绍了还在开发中的分布式数据库架构。
关键词:内存数据库,分布式,数据库,架构
参考文献
[1]陈明.分布系统设计的CAP理论[J].计算机教育, 2013 (15) .
[2]岳旭强.数据库的发展现状分析[J].数据分析, 2012 (4) :37.
[3]张强.内存数据库的应用[J].数据分析, 2012 (4) :146.
内存数据 篇7
关键词:内存数据库,Oracle数据库,数据同步,数据字典,变更数据索引
0引言
数据库技术诞生于20世纪60年代末70年代初,是随着计算机技术的发展而产生的一种计算机应用技术,其主要目的是有效地管理和存取大量的数据资源。数据库技术主要研究如何存储、使用和管理数据[1]。传统的数据库是用磁盘进行存储的,在数据库存取的过程中需要频繁地对磁盘进行读写操作,而磁盘的“输入/输出(I/O)”一直是计算机硬件性能中最薄弱的环节[2,3,4],随着计算机网络技术和信息技术的发展,需要存储的信息越来越多,对数据的访问实时性要求越来越高,传统的以磁盘存储的物理数据库越来越不能满 足实时性 和并发性 的要求[2,5]。虽然采用磁盘阵列的方式在一定程度上能够增加数据库访问的“I/O”吞吐量,但是磁盘 阵列的价格比较昂贵且磁盘阵列性能也存在极限,内存数据库虽然能够解决实时性和并发性问题[2,3,4,5,6,7],但是内存数据库的存储容量有限,故内存数据库与传统商业数据库混合服务的组网方式逐渐流行起来,成为一种既能保证数据库访问的实时性和并发性又能大容量存储的经济性解决方案。
这种解决方案一般只将访问频度比较高的实时信息和关键性数据存储在内存中,传统的商业数据库中存储系统的全部信息,兼作内存数据库数据的“固化版本”[4,5,6,7],这就引入了内存数据库与商业数据库的同步问题。文章以Oracle数据库为例,提出了一种可靠的内存数据库与Oracle数据库的数据同步机制,能够快速有效地保证内存数据库与Oracle数据库的数据一致性。
1数据库同步设计
内存数据库与Oracle商业数据库组合的组网方式一般是部署一台Oracle数据库服务器和一台或多台内存数据库。Oracle数据库存储所有的数据信息,也被称为后台数据库(下文简称后台),内存数据库是Oracle数据库的“工作版本”,存储实时的业务信息,也称为前台数据库(下文简称前台)。下面以一台Oracle数据库服务器和两台内存数据库作负载均衡的混合组网数据库系统为例说明数据库同步设计。内存数据库与Oracle数据库混合组网部署如图1所示。
内存数据库与Oracle数据库的同步主要有以下3种方式:
(1)前台内存数据库数据加载:内存数据库与Oracle数据库混合组网的数据库系统上电时,内存数据库需要从Oracle数据库加载全部业务数据,即全库同步。
(2)前台向后台数据同步:当前台内存数据库处理业务时会产生一些新数据或数据变更,这些新数据或数据变更需要同步到后台Oracle数据库进行固化。
(3)后台向前台数据同步:由于本设计前台采用两台负载均衡的内存数据库,当一台内存数据库处理业务产生新数据或数据变更后,将其同步到后台Oracle数据库,需要后台向前台另一台前台内存数据库同步;另外系统网管在后台配置的数据也需要同步到前台。
实现上述三种同步需要在后台Oracle数据库服务器和两台前台内存数据库服务器部署数据同步模块。前台数据库服务器的数据同步模块负责在上电时向后台请求加载业务数据、将前台产生的新数据向后台同步并处理来自后台的数据同步请求;后台数据库服务器的数据同步模块负责处理前台上电的加载请求、处理来自前台的数据同步请求并将后台的新数据按照一定的规则推送到前台。前台内存数据库和后台Oracle数据库同步信息交互图如图2所示。
设计中前台数据同步模块不直接对后台数据库进行存取,实现了前台对后台Oracle数据库访问的隔离,通过数据同步请求实现前台对外置的后台数据库的数据查询、插入、更新和修改等数据库操作请求,两台前台内存数据库服务之间的数据同步亦是通过前后台数据库同步实现。前台内存数据库加载的全量同步基于数据字典技术实现,前后台实时数据同步基于变更数据索引表完成,这种设计可以简化前台同步模块的业务逻辑和前台数据库服务器的性能开销,而前台内存数据库与后台Oracle数据库的相对隔离也 在一定程 度上增强 了数据库 的安全性。
2技术实现
2.1前台数据加载同步
内存数据库,顾名思义就是将数据放在内存中直接操作的数据库,由于使用随机存储器(RAM)对外提供服务,故存取速度是传统硬盘无法比拟的,但RAM的特性也决定了存储在内存数据库中的数据在断电后就消失了,所以内存数据库在上电时必须进行数据加载以便恢复到断电前的状态,这就需要前台数据加载同步。设计中前台数据加载功能由前台数据库、前台同步模块、后台同步模块、后台同步缓冲区和后台数据库组成,前台数据加载同步功能的处理流程如图3所示。
前台数据加载是全库同步,采用按表加载的方式,即每次同步请求加载一张数据库表,由于数据比较多,故采用了分包数据同步的方式进行前台数据加载同步,即将每次同步请求(一张表)的结果拆分成多个数据包,其中第一包除携带同步数据外还自带待加载数据表的数据字典。数据字典可以通过查询后台数据库的数据目录获得。数据字典包括待加载数据表的字段数目、字段名、字段类型和字段长度等信息,后续包只需携带同步数据。前台数据加载同步的流程如下:
(1)前台同步 模块向后 台同步模 块发送加 载请求。
(2)后台同步模块查询后台物理数据库。
(3)后台同步模块提取数据库查询结果。
(4)后台同步模块提取第一包查询结果数据到后台同步缓冲区。
(5)向前台同步模块发送第一包加载数据并设置重发定时器,直到收到请求下一包的消息或超过重发次数,超过重发次数直接跳转到(12)结束本次同步。
(6)前台同步 模块写第 一包数据 到内存数据库。
(7)前台数据同步模块请求下一包数据。
(8)后台同步模块提取下一包查询结果数据到后台同步缓冲区。
(9)向前台同步模块发送下一包加载数据并设置重发定时器,直到收到请求下一包的消息。
(10)重复(7)~(9)直到本次加载数据全部同步完毕。
(11)前台同步模块向后台同步模块发送本次加载完成的确认消息。
(12)本次数据同步结束。
2.2前台向后台数据同步
同样,由于前台内存数据库采用RAM存储数据,当系统执行业务逻辑改变了前台内存数据库内容后无法对数据进行“固化”,为保证内存数据库断电再次上电后恢复,故需要将前台数据同步到后台Oracle数据库。前台向后台同步设计采用增量同步的方式,即只同步更改后的数据。本设计中提出了变更数据索引表的概念,变更数据索引表不同于一般的变更数据表,它只存储数据变更的索引———并不实际存储变更数据,这样设计既能避免数据冗余、节省宝贵的内存存储空间,又能保证同步数据的实效性,即同步的数据总是最新的数据。前台内存数据库变更数据索引表的设计如表1所示。
当前台内存数据库增加、删除或修改业务数据时会同时写一条变更数据索引到变更数据索引表,并对于表名TABNAME和主键索引值IDXVALUE相同的变更记录进行融合处理,以防同一条记录短时间内反复被同步。变更数据索引表同步记录的融合处理原则如表2所示。
注:最后两种组合为异常情况,融合处理结果为异常处理。
前台数据同步模块定时扫描变更数据索引表,根据表名TABNAME、主键索引值IDXVALUE和同步标识FLAG查询到需要同步的数据表名和索引,然后到数据原始表中提取同步数据。前台数据向后台同步也采用自带数据字典的方式,每条同步消息可以携带多条同步记录。前台数据同步模块将数据打包后在变更索引表置“正在同步”标识,将其发送给后台同步模块,然后由后台同步模块提取每条同步数据并将其写入后台数据库,所有同步记录处理完毕后统一回响应消息。前台数据同步模块收到同步成功消息后删除变更数据索引表中数据同步索引记录。前 台向后台 同步的处 理流程如 图4所示。
前台向后台数据同步的处理流程如下:
(1)前台数据同步模块定时扫描前台变更数据索引表,提取同步数据后打包,并将前台数据变更索引表中的记录置为“正在同步”。
(2)前台数据同步模块向后台数据同步模块发送同步数据请求。
(3)后台数据同步模块处理同步请求,并进行拆包处理,将数据同步请求中的每条同步记录都解析出来写入后台Oracle数据库。
(4)全部同步记录都处理完毕后,向前台数据同步模块回复响应消息。
(5)前台数据同步模块根据响应消息删除前台变更数据索引表中同步成功的索引记录,未同步成功的记录置回“未同步”,待下次扫描周期来临时再次同步。
2.3后台向前台数据同步
后台向前台同步与前台向后台同步实现机制类似,也是增量同步,同样也采用变更数据索引表的方式同步。后台向前台同步的数据主要有前台其中一台内存数据库服务器向后台同步的数据和系统网管的配置数据。前台同步来的数据需要向其他前台同步,而系统网管的配置数据则需要同时向所有前台内存数据库同步。后台Oracle数据库变更数据索引表的设计如表3所示。
后台向前台数据同步的处理流程与前台向后台同步基本相同。后台变更数据索引表比前台多一个同步目的地字段,用以标识向哪台内存数据库服务器同步,并且由数据变更表的名称、变更记录的索引值组合、同步目的地和同步标识共同作为后台数据变更索引表的主键。后台变更数据索引表的同步索引记录也根据表2中的原则进行融合处理。后台向前台同步也采用定时从变更数据索引表提取同步记录的索引,然后根据索引从数据原始表提取同步数据打包发给指定的前台内存数据库。前台内存数据库同步模块处理后向后台返回同步结果,同步成功后删除后台变更数据索引表的同步索引记录。特别指出,当向多个前台内存数据库服务器数据同步时,当只收到一个前台的数据同步成功响应时不做删除后台变更数据索引表同步索引记录的处理,只更新该记录的同步目的地DEST字段,在DEST中删除已同步成功的服务器标识号,当最后一个前台返回数据同步成功后再删除后台变更数据索引表的索引记录。
3结束语
RFID读写器内存数据结构 篇8
在小型的RFID应用中, 进入RFID读写器读写范围内的标签被RFID读写器读取, 读写器将读取到的标签数据直接发往后台的应用程序或中间件进行处理。由于小规模应用时使用的读写器数量以及卡的数量不多, 大量的重复数据不会造成严重的问题。在大规模RFID应用中, 读写器每一次读取的标签数量可能很大, 并且一个中间件服务器可能连接有众多的读写器, 因此读写器如果直接将每次读取的标签数据发往中间件, 不但中间件服务器负担沉重, 而且网络数据的传输量将非常庞大。一般的做法是将数据处理环节推前, 即把RFID读写器读到的标签数据在读写器内进行过滤、分组等处理, 只向后台中间件发送经过处理的数据。这样可以大大减少网络数据传输流量及中间件服务器的处理数据量。为了提高读写器数据处理效率, 保证数据处理的实时性, 需要一种高效的标签数据过滤算法及相应的内存数据结构。
1 RFID读写器的读周期、事件及标签状态
在一个RFID读周期内, RFID读写器对读写范围内的所有标签进行读操作。由于RFID读写的射频物理特性, 在一个RFID读周期内, 并不能保证每一个在读写器识读范围内的标签都能被读到, 个别标签可能会在某个读周期内丢失, 当标签处于读写器识读范围边缘时这种丢失现象会更加明显。如下图所示。
由图1可见, 判断一个标签是否已进入读写器识读范围需要知道这一标签处于被读取状态的时间, 当一个标签在连续几个读周期 (超过一个阈值) 内被读写器读取, 则可以认为该标签进入读写器识读范围。同样地, 判断一个标签是否已离开读写器识读范围, 需要知道该标签处于丢失状态是否已超过某一个阈值。一般的来说, 一个标签从进入读写器识读范围到离开, 标签会在RFID读写器内经过五种状态:未知状态、第一次被发现、已进入、丢失、已离开。标签在读写器内所处的状态及转变机制如图2所示。当标签还未进入读写器识读范围时, 处于未知状态 (状态0) 。当标签进入读写器的识读范围边缘时, 第一次被读写器读取。这时的标签处于状态1, 即第一次被发现状态。由于在读写器读写范围的边缘因此读写器对该标签的读取不太稳定, 标签在下一个读周期内可能会丢失。如果在以后的时间里, 读写器在大于一个阈值 (Tenter_threshold) 的读周期内连续读到该标签, 则该标签被确认为进入读写器读写范围, 即处于状态2。处于状态2的标签如果在某个读周期内不能被读到, 则被认为是丢失了 (状态3) 。当丢失的时间超过一个阈值 (Tlost_threshold) 后, 该标签被认定为离开 (状态4) 。当处于离开状态时间大于一个阈值 (Tleave_threshold) 后, 标签回到状态0[1,2]。每个读周期结束后, 读写器向后台中间件或应用程序发送本次读周期内处于各状态的标签集合 (事件数据集) 。对于后台应用来说, 关心的事件数据集有:当前读周期新发现的标签集, 当前读周期刚离开的标签集, 当前读周期处于读写器识读范围内的标签集。
2RFID读写器生成的主要数据
由上一节读写器对标签的读取特点可以知道, 在RFID应用中读写器的数据处理是以读周期为单位进行的。在每个读周期结束后, 读写器需要将当前读周期读取的标签与当前读周期以前的各状态标签进行比对, 并将标签按照在当前读周期后处于新发现状态、已进入状态、新离开状态等几个状态进行分组, 形成各事件的标签集合。以下的公式表示了各事件标签集合的产生关系。
当前读周期的标签集合表示为
Sn={T|Tn} (1)
上式中Sn表示第n个周期读写器读到的所有标签集合, Tn表示第n周期读到的标签。当前读周期结束后, 处于发现状态的标签集合表示为
SnF={T|T∈Sn∩T∉S (n-1) E∩T∉S (n-1) F} (2)
上式中SnF表示第n个读周期后处于新发现状态的标签集合, S (n-1) E表示为上一周期结束后处于进入状态的所有标签集合, S (n-1) F表示为上一周期结束后处于发现状态的所有标签集合。当前读周期结束后, 处于进入状态的标签集合表示为
SnE={T|T∈Sn∩T∈S (n-1) F, tlast>tTenter}∪{T|T∈
S (n-1) E, tleave<tTleave} (3)
上式中SnE表示第n读周期结束后处于进入状态的标签集合, S (n-1) F表示为上一周期结束后处于发现状态的所有标签集合, tlast表示该标签处于发现状态的时间, tTenter表示标签由发现转入进入状态的时间阈值。S (n-1) E表示第n-1读周期结束后处于进入状态的标签集合, tleave 表示标签处于丢失状态的时间, tTleave表示标签由处于丢失状态转为离开状态的时间阈值。
当前读周期结束后, 处于离开状态的标签集合表示为:
SnL={T|T∈S (n-1) E, tleave>tTleave} (4)
上式中SnL表示第n个读周期后处于离开状态的标签集合, S (n-1) E表示第n-1读周期结束后处于进入状态的标签集合, tleave表示标签处于丢失状态的时间, tTleave表示标签由处于丢失状态转为离开状态的时间阈值。Sn、SnF、SnE、SnL 是读写器操作的最主要的四个集合, 其它的所有事件数据都可以从这四个集合得到。
3内存数据结构及操作
由以上的公式可以看出, RFID读写器的数据处理主要是集合数据的比较与查询, 具体的操作分为以下三步。
3.1数据的比对插入
每一个标签被读取后, 都需要与已经存在的标签进行比对, 以确定标签是否存在及处于什么状态。将新发现的标签插入新发现的标签集合, 对于已有的标签进行数据更新。
3.2状态查询
当前读周期结束后, 以标签状态为查询条件, 形成各事件报告。
3.3删除过期数据
对于过期的标签数据进行查询并删除。
由于在每一个读写周期内RFID读写器数据操作存在一个规律, 先做比较、插入操作, 所有标签比对完成后, 再对所有标签做各状态查询生成事件数据, 然后再将部分过期数据进行删除, 所以对于算法及数据结构的选择可以通过分别考察各算种算法及数据结构的比较、插入与范围查询的操作效率来实现。
对于比较与插入操作, 一些常用的对比查找算法特点及时间复杂度对比如表1所示。
顺序查找:主要应用于无序表的查找, 查找效率低。
折半查找与二叉树查找:具有相同的特征, 但是折半查找适合用于静态表的查找, 二叉树适合动态表的查找, 二叉树的查找效率很大程度上取决于建立二叉树时取得数据的顺序, 对于RFID应用来说数据是无序的, 因此二叉树难以保证具有O (lgn2) 的时间复杂度。平衡二叉树 (AVL) :是二叉树的一种改进, 它具有左右子树深度之差的绝对值不超过1的特性。能保证查找的时间复杂度为O (lnn) 。但由于在数据进行插入或删除的过程中会造成平衡被破坏, 所以需要进行平衡处理, 在插入删除操作比较多的情况下, 平衡操作会占去很多的时间。为了减少平衡操作的次数, 引入了T树的结构。在RFID读写器中, 读周期的标签数据查找插入阶段, 可以使用T树的结构, 使标签数据比较及插入过程达到O (lgn2) 的平均时间复杂度。但是在查询生成各事件标签数据集合时需要重新遍历整个T树, 因此降低了算法的效率。
哈希表:理论上利用哈希表查找法可以得到最优的查找效率, 最好的情况下只需一次查找就可以得到结果。哈希表查找法的时间复杂度主要取决于哈希函数及冲突处理算法的好坏。由于RFID标签取值范围很大, 很难做出限制, 所以找一个合适的哈希函数将标签的值均匀地映射到某一个范围内比较困难, 在RFID应用中难以得到很高的时间和空间效率。
对于范围查找操作, 需要将所有的处于某一状态的标签数据全部查找出来。对于以上的各种算法及结构, 都很难达到很高的效率。
4T链表树及数据操作
常用的数据结构及查询方法都不适合用于RFID数据处理。AVL树结构在对比插入操作中需要大量的平衡操作, 并且在状态查询时效率不高。为了减少AVL树的平衡操作, 可以使用T树结构。T树结构是AVL树的一种改进型, 它在AVL树的每个节点上增加数据量, 减少了平衡操作的次数, 提高了增加删除节点的效率, 目前T树结构在内存数据库 (MMDB) 中被大量的使用[3]。T树结构可以大大提高在对比、插入操作阶段的数据处理效率, 但是在状态查询上, 效率不高。如果能在T树的基础上将所有处于同一状态的节点用双向链表结构连接起来, 在做状态查询的时候只需要遍历某一状态的链表就可以将处于某一状态的所有标签遍历出来。因此可以考虑在T树结构上增加双向链表结构, 用于范围查询, 可以显著地提高范围查询的效率[4,5]。这种结构可以称为T链表树结构。这种结构可以综合两种数据结构的优点, 在RFID数据处理的两个阶段都达到较高的效率。一个T链表树的节点结构如图3所示。
每个T节点的各数据单元由五个域组成, 两个指针节点用于建立双向链表, 一个标签记录域用于记录标签号, 一个计数器域用于计数标签处于某一状态的时间, 一个状态域用于标记所处的状态。在T链表树结构中, 处于相同状态的标签形成一个链表, Front Ptr用于指向前一个处于同一状态节点, Successor Ptr用于指向下一个处于同一状态节点。整个T链表树的数据结构如图4所示。
T链表树有两个根指针, 一个Root指针指向T链表的树根节点, 另一个HPtr根指针指向连表的头指针链表。由RFID数据处理的特点可知, 在任何一个时刻标签只能处于四个Sn、SnF、SnE、SnL集合中的一个, 所以T链表树中共有四个链表头节点, 每个节点所链接的节点, 都是处于该集合中的标签。这四个集合分别代表了:上一次读标签后处于发现状态的标签节点链表指针、上一次读标签后处于已存在状态的标签节点链表指针、当前一次读标签后处于发现状态的标签节点链表指针及当前一次读标签后处于已存在状态的标签节点链表指针。
在每一个读周期中, 数据操作方法如下。
4.1查询、插入操作
对于每一个读周期, 新的标签进入时根据T树的查询规则从根节点开始作查询、插入操作。如果标签已存在则读取标签所处的状态值, 如果标签原先处于发现状态则判断该标签处于发现状态时间加上本次读取时间是否已经超过发现状态的门槛值, 如果已超过则更改标签的链表指针, 将节点链接入本次操作后已存在链表, 更改标签的状态, 时间设为0, 并形成本次进入标签的报告。如果未超过门槛值则链入本次操作后发现链表。
4.2删除操作
所有本次读入的标签都已查询完成后, 判断上一次处于发现状态的链表是否为空, 如不为空则根据链表指针遍历所有链表节点并执行节点删除操作。
4.3清除链表
判断上一次处于存在状态的链表是否为空, 如不为空则遍历所有节点, 如果节点的计数值加上本次计数值超出门槛值则表示该标签已经消失, 加入本次的消失标签报告, 从树中删除该节点。如果未超出门槛值则将计数加上本次值后链接入本次读后已存在标签链表。
由以上的操作可以得到, 任何一次读周期完成后, 所有的节点都处于当前周期的两个链表中, 而上一次读周期的两个链表必为空。因此四个链表指针可以循环使用。
5性能分析
本算法与采用多链表、T树结构的性能分析及对比情况如表2所示。
由上表可知, 多链表结构在读周期的新增标签部分效率比较低, 主要是因为需要通过遍历所有已知的节点进行对比。但是在对本次未读到的标签处理上, 只需遍历一次链表就能将所有标签找到, 效率比较高[6]。而对于T树结构, 在对比查找阶段, 由于AVL树的特点, 效率较高, 但是对于本次未读到的标签处理上, 需要重新遍历整个树才能得到所有的标签, 效率低[7,8]。T链表树是一个综合, 在对比查找阶段, 具有T树的特点, 在未读到标签处理上具有链表的特点。T链表树通过增加两个指针节点的空间, 和维护链表结构及T树结构的操作, 来换取查找及删除阶段的高效率。
6结论
根据RFID读写器的读写、输出及数据特点, 提出了T链表树的结构, 及与之相应的数据处理算法。利用T链表树结构及算法在每一个读周期内, 读写器只需对所有标签数据进行一次遍历就完成所有标签状态的维护、各标签报告的生成, 具有很高的效率, 可以极大的提高读写器的实时处理能力。
摘要:在大型RFID应用中, 需要将标签数据处理环节前移至读写器。由于读写器的硬件条件限制, 要提高读写器的实时数据处理能力, 就必须有适合RFID应用的高效的数据处理算法及存储结构。分析了RFID读写器数据处理的特点, 提出了一种特殊的T链表树结构。在T树的结构基础上增加了双向链表结构, 使得读写器在读周期的各个数据处理阶段都能保持很高的效率。在T链表树结构基础上, 还设计了一套数据处理算法, 结合特殊的数据结构, 可以极大地提高读写器的实时数据处理能力。
关键词:RFID,读写器,T树,T链表树,数据结构
参考文献
[1]EPC global.The EPCglobal architecture framework EPCglobal final version.July1, 2005
[2]EPC global.The application level events (ALE) specification version1.0.September15, 2005
[3]Lu Hongjun, Yeung Yuet, Tian Zengping.T-tree orB-tree:main memory database index structure revisited.Database Conference, 2000.ADC2000.Proceedings, 11th Australasian31Jan—3Feb2000
[4]Choi Kongrim, Kim Kyungchang.T*-tree:a main memory database index structure for real time applications.Real-Time Computing Sys-tems and Applications, 1996;Proceedings, Third International Work-shop30Oct—1Nov1996
[5]卢炎生, 邓立峰, 朱英武.支持实时数据库的L树.研究计算机工程与应用, 1997; (4) :5—7
[6]严蔚敏, 吴伟民.数据结构 (第二版) .北京:清华大学出版社, 1992
[7]The application level events (ALE) specification V1.1;EPCglobal Inc, www.epcglobalinc.org, 27—February, 2008
内存数据库系统故障恢复技术研究 篇9
关键词:内存数据库,故障,恢复技术
内存数据库运行在内存环境中,更易受到软件错误、系统崩溃、系统掉电等因素影响,致使系统出现故障而不能继续运行。在内存数据库出现故障后,如何及时有效的恢复,使故障对数据库性能的影响降低到最小限度,显得至关重要。内存数据库的故障类型包括事务、系统和介质等三种,文章重点对系统故障进行探讨,给出相关内容及解决处理方法。
1系统故障的概念
系统故障是指在运行的过程中,由于某种事件迫使系统停止运转并经重新启动才能正常运转,掉电和软件错误就属于两类典型的系统故障。内存数据库主版本存储在内存中,掉电后内存中的内容全部消失,而常见的软件错误可能覆盖主存的一部分,它们都能使系统出现故障停止运行。系统故障发生后,有些已提交事务对数据库的更新还没有写入到外存数据库。 这时,作为恢复处理中最重要的一环,重装数据库以及重装过程中的恢复能将数据库有效地“还原”到某一种一致性状态。 完全可以来说,系统故障一旦发生,只需将外存数据库载入到内存,而后对undo起始点后的日志进行undo操作就可以将数据库恢复到离故障点最近的一致性状态。总的来说,系统故障恢复的关键点是重载外存数据库到内存中及利用日志工具恢复,那么如何有效的重载入外存数据库和快速高效的日志恢复便成为解决问题的重点。
2重载恢复
重载指系统出现故障之后,重新启动,在此过程中,恢复管理器根据日志和外存数据库的信息先将未超截止期的活动事务所需的数据装入内存,若没有超过重装阈值,则将等待事务所需的数据装入,直到重装阈值。内存数据库的故障恢复时, 在不(或尽量少)影响实时事务的定时限制满足的情况下,优先载入优先级最高的事务和下一个要访问的数据,紧接着将需要紧迫执行的事务启动,此过程中选择数据逐步载入到内存时要按照某种策略进行。内存数据库载入策略的好坏直接影响主动实时数据库系统的性能,一旦采取的策略不当,最先载入的数据将闲置一段时间,而紧迫要运行的事务的数据却未被载入内存中,这样一来这些无用和有用数据将频繁循环交换。这对时间有严格要求的实时事务来说,将是一种灾难。
2.1重载算法概述
并发重载算法较为典型的有频率装载(FR)、智能装载(SR)和顺序优先级装载(ORP ),其共同点是通过预测需要立即使用的页面,并依此降低重载时间。这三者的区别在于磁盘备份的结构、是否利用数据访问频率、重装优先级、重装粒度。所谓重载粒度就是数据重载的最小单元,在这个单元的数据载入过程中,不会发生抢占,除此之外高优先级装入可以抢占低优先级装入。这些算法区分等待事务和执行事务。等待事务就是那些在系统崩溃时还未提交的激活事务,而执行事务则是在系统重新开始工作后到达的事务。
2.2改进的重载算法
该算法充分考虑了上述各重载算法的优点,同时参考重载事务的预分析、数据载入的影响因素和数据交换在数据库运行时的策略,具体的实现算法如下。
第一步:建立恢复缓冲区和脏页表,给出等待事务的标号。
第二步:将系统信息重载到MMDB系统区。
第三步:标识故障时处于活动和等待状态的事务及其存储所需的数据库片,并将这些数据库片组合在一起。组合的原则是按照柱面的不同确定,同时充分参照磁盘数据库目录提供的信息。
第四步:将外存数据重载到MMDB主数据区,当数据量达到重装阀值(RT)停止重载。重载的优先级策略如下:
首先以存取频率由高到低的顺序作为基础,将“等待”事务按照其优先级由高到低的顺序载入其数据;
其次根据日志对离发生故障最近一次的检查点之后被修改的脏数据页进行数据恢复;
最后将其余数据载入,载入时依照存取频率的高低顺序进行。
第五步:复制己提交事务的“后映像”,将这些都复制到其私有的缓冲区。
第六步:重载到达阀值,接着启动系统运行并开始处理事务。
第七步:重载其他的外存数据到MMDB主数据区,重载的优先级策略如下:
首先按请求载入新到达的执行事务所需求的相应数据库片;
其次载入“等待”事务所需的其他数据库片,仍然以柱面为基础;
最后载入其他柱面数据,载入时依据磁盘数据库的存储顺序进行。
2.3改进算法的实验与结论
本实验重写Hsqldb的恢复模块,将上面提出的重载算法编程实现,并进行实验对比。对比时,按照分别插入不同数目的记录,分别是100、1000、10000、100000。在数据库运行过程中强制执行关闭操作,得到其相应的日志文件。Hsqldb的顺序重载和按优先级重载的结果如表1和图1所示:
从图1可以看出:刚开始数据优先级重载的优越性并不明显,当插入记录的条数达到1000条后,按优先级重载的良好性能才能体现出来。那么在高并发的适应应用环境下,按优先级的重载性能优于顺序重载。
结果表明:1)数据优先级算法时间开销少于顺序重载算法;2) 一个有效的重载算法对于内存数据库系统来说是非常重要的;3) 事务优先级和数据的各种特性在设计实时内存数据库重载算法时显得尤为关键。
2.4重载后的恢复策略
系统故障恢复由两个步骤组成,分别是重载和重载后的恢复。重载后的恢复是指根据日志和检查点执行的相应操作,恢复数据库到离系统崩溃时最近一次的一致性状态。在系统重启过程中一旦发现脏页,将根据磁盘上的日志和数据库进行重载恢复,具体步骤如下:
第一步:发现到最后一个检查点。
第二步:从检查点中读入以下内容到内存:1完整的数据库镜像;2稳定全局日志尾指针;3活动事务表,包括所有活动事务的TID和状态信息;4所有活动事务的undo日志;5系统最后分配的事务提交顺序号csn。
第三步:在稳定日志中,将当前稳定日志尾指针作为开头, 按照自后向前的顺序进行搜索,直至寻找到第一个提交/失败记录,并移动稳定日志尾指针到该点。
第四步:将读入的检查点中记录的稳定日志尾指针作为起点,按照由前向后的顺序遍历日志直至日志尾,并执行以下操作:
第五步:对于在检查点处于活动状态的事务,如果redo日志中没有提交记录<commit Ti,csn(Ti)>且其状态也未被标记为“提交中”,那么从检查点中找到相应的undo日志并执行相应操作。
3小结
内存数据库在高速缓存方面的应用 篇10
自改革开放以来, 我国计算机网络技术进入了飞速发展阶段, 随着高速缓存技术的发展, 互联网接入网速度得到了显著的提升, 同时由于主干带宽不断扩容, 用户规模不断扩大, 有关宽带用户认证计费管理方面的问题也随之显现出来。内存数据库进入高速缓存系统, 虽然能够提高计算机网路应用的综合性能, 但其装置成本也会大大提高[1]。目前, 我国拥有的网络用户数量庞大, 所以互联网运营商为了维护企业的切实利益, 逐渐加大了宽带用户认证计费力度, 其目的在于让高速缓存技术在突破网络服务器承载力局限性的同时, 扩大网络运营宽带用户认证计费系统的影响力, 以维护计算机网络工程和互联网运营企业的均衡发展。
在互联网工程中引入高速缓存技术, 将传统的互联网服务器扩展为互联网内存数据库, 这种技术维护, 有效的解决了磁盘数据库中CPU和磁盘之间的矛盾。目前我国应用的高速缓存技术的内存数据库设计简单, 且性能高效, 在减少互联网服务器负载的同时, 提高了网络服务器传输信息的响应速度, 对互联网综合性能的发展具有重要意义[2]。
2 内存数据库在高速缓存方面的应用
Cache即高速缓冲存储器, 其应用性能是提高网络服务器CPU和内存之间的缓存速度。在互联网运行过程中, 由于网络信息交流量巨大, 其主服务器CPU经常会出现信息输出延迟现象, 这种延迟等待是为了给网络内存数据库分析信息的时间, 当网络信息浏览量超过极限值时, 系统会因CPU数据交流信息过大而崩溃。应用高速缓存储存器的网络系统, 其信息数据缓存速度很快, 作为一种缓存介质, Cache很好的完成了系统设定的任务。
Cache主要分为本地缓存和远端缓存两大类, 其应用性能, 主要表现在以下几个方面: (1) 本地缓存, 是安装在互联网前端的前置机, 网络用户发出信息检索指令之后, 这个前置机会代替网络服务器接受用户请求, 并自动处理请求信息, 使网络信息数据内存与网络服务器保持自动同步更新状态; (2) 远端缓存, 这种缓存装置是安装在网络应用程序中的, 是一个计算机应用缓存组件。将内存数据信息与网络服务器应用紧密耦合。到目前为止, 仍有很多Cache内存数据模型不能完全设定主存, 会受到物理内存的限制, 这是所有内存数据库共同的限制。但还是可以将大量数据尤其是热点数据置于主存, 仍然可以充分发挥内存数据库的优势[3]。
3 基于内存数据库的应用探讨宽带用户认证计费相关内容
引进高速缓存技术后的互联网, 必须有一个完善的宽带用户认证机制作做支撑, 传统的网络用户认证模式和计费系统存在很多问题, 网络运营商无法实时掌握网络用户的计费收费情况, 所以建立一个集中式的宽带用户认证系统对网络运营企业至关重要, 其系统结构如图1所示。
通常情况下, 互联网采用以SHCP技术为核心的宽带用户认证系统, 因为DHCP技术的应用性能很好, 能够保证系统在复杂网络环境下安全、稳定的运行。从目前互联网环境下来看, 宽带用户认证系统不仅能够为网络运营商提供坚实的资金基础, 还能通过网络计费的方式将网络IP地址分配给各省市地区, 做到互联网系统的集中控制、分级管理。
计费中心能对所有互联网宽带用户进行统一管理、集中维护, 通过对互联网各系统业务的统一分析, 可以让网络运营商实时掌控宽带用户资费信息。与此同时, 宽带用户认证系统还可以支持分权分级, 各省市的网络用户开户、维护、收费等操作, 都需要宽带用户认证系统来完成。用户上网认证和授权由计费中心进行统一处理, 其资费信息会记入系统历史账单, 每月计费中心会通过核查这些历史账单, 检验其宽带用户认证系统是否完善, 是否存在漏洞。由此可见, 要想实现网络内存数据库的应用价值, 必须在创建高速缓存系统的同时, 维护宽带用户认证系统, 两者协调发展, 才是推动网络高速发展的主要动力[4]。
结论:本文通过研究Cache高速缓存技术和SHCP用户认证系统可知, 虽然Cache能够满足高响应速度的缓存需求, 但是随着缓存技术的不断发展, 内存数据库的应用形式会发生很大的改变, 要想使其不影响正常的网络运营, 保证网络运营的经济效益, 就必须建立一个完善、稳定的宽带用户认证系统。
摘要:近年来, 随着计算机网络技术的不断发展, 互联网内存数据库的缓存承载能力有了显著的提高, 扩展网络服务器的访问距离, 是提高网络运营稳定性的重要解决方案。Cache内存数据库是目前被广泛应用的内存数据库缓存技术, 其综合应用性能非常好。基于此, 本文对内存数据库在高速缓存方面的应用进行深入分析。
关键词:内存数据库,高速缓存,应用与研究
参考文献
[1]杨艳, 李炜, 王纯.内存数据库在高速缓存方面的应用[J].现代电信科技, 2011, 11 (11) :111-116.
[2]王心妍.Mencacahed和Redis在高速缓存方面的应用[J].无线互联科技, 2012, 11 (09) :134-145.
[3]牛晓晴.海量数据实时分析技术的研究与应用[D].北京邮电大学, 2013 (3) :145-156.