基于嵌入式数据库的海量存储技术解析.doc
《基于嵌入式数据库的海量存储技术解析.doc》由会员分享,可在线阅读,更多相关《基于嵌入式数据库的海量存储技术解析.doc(6页珍藏版)》请在三一文库上搜索。
1、基于嵌入式数据库的海量存储技术解析1嵌入式数据库通常, 我们采用数据库来实现对数据的存储、检索等功能。像MySQL这类基于C/S结构的关系型数据库系统, 虽然代表着目前数据库应用的主流, 却并不能满足所有应用场合的需要。很多的应用,仅仅利用到了这些数据库产品的基本特性而已。有时我们需要的可能只是一个简单的基于磁盘文件的数据库系统,这样就不必安装庞大的数据库服务器, 以简化数据库应用程序的设计。在某些特殊应用场合,比如在嵌入式系统中,由于系统的硬件软件资源都有限,这些数据库产品就明显有一些臃肿,甚至是不可实现的。在这些情况下,嵌入式数据库的优势就特别明显了。嵌入式数据库通常与操作系统和具体应用集
2、成在一起, 无须独立运行的数据库引擎,由程序直接调用相应的API去实现对数据的存取操作。更直白地讲, 嵌入式数据库是一种具备了基本数据库特性的数据文件。嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式,而后者是引擎响应式。嵌入式数据库的一个很重要的特点是它们的体积非常小,编译后的产品也不过几十KB, 在一些移动设备上极具竞争力。从目前嵌入式应用的发展趋势来看,嵌入式数据库的实现必须充分体现系统的可定制性,即系统选择的技术路线要面向具体的行业应用,因而研究源码开放的嵌入式数据库具有特殊意义。2 Berkeley DBBerkeley DB是由sleepycat software开发的轻量级
3、嵌入式数据库,它不仅适用于嵌入式系统,而且可以直接连接到应用程序内部,和应用程序运行在同一地址空间。传统的数据库一般作为独立服务器工作,而Berkeley DB是软件开发库,开发者将它嵌入到应用程序中,应用程序本身就是一个服务器,而只是利用嵌入式数据库开发来实现定制的数据库逻辑,避免了与应用服务器进程间通信的开销,因此Berkeley DB具有较高的运行效率,适用于资源受限的嵌入式系统。一般而言,Berkeley DB数据库系统可以大致分为五个子系统,如图1所示。图1 Berkeley DB 子系统图1、 存取管理子系统(Access Methods)该子系统为创建和访问数据库文件提供基本的支
4、持。在没有事务管理的情况下,该子系统中的模块可单独使用,为应用程序提供快速高效的数据存取服务。2、 内存池管理子系统(Memory Pool)该子系统就是Berkeley DB所使用的通用共享内存缓冲区,该子系统可以被应用程序单独使用。3、 事务子系统(TransacTIon)该子系统为Berkekey DB提供事务管理功能,保证操作的原则性、一致性和孤立性。事务子系统适用于对需要事务保证的数据进行修改的场合。4、 锁子系统(Locking)该子系统提供进程之间以及进程内部的并发管理机制,为系统提供多用户读取和单用户修改同一对象的共享控制。该子系统可以被应用程序单独使用。5、 日志子系统(Lo
5、gging)该子系统采用的是先写日志的策略,支持事务子系统进行数据恢复,保证数据一致性。3 基于嵌入式数据库的海量存储技术在网络性能管理系统中的应用3.1 嵌入式数据库Berkeley DB 处理海量数据存储传统的网络管理软件在海量数据存储方面大部分采取大型关系型数据库,由于网络管理软件要与数据库服务器进行通信,这种方式造成了系统性能的极大下降,另外随着所管网络规模的增大,信息采集的急剧增加,缓慢而频繁的数据库读写操作来不及处理实时采集到的海量数据,导致数据丢失,网络管理失真,甚至会导致系统的瘫痪。也有少数网络管理软件采取使用一种日志文件以ASCII 文本形式来记录采集到的流量数据,通常该种日
6、志文件具有常量大小的特征,能够支持长期的网络监测任务,如国内外最为流行的免费且开放源代码的流量监测软件MRTG 就是采用这种方式实现海量数据存储的。MRTG 定期对数据进行整合,根据记录数据的日期不同而以不同的粒度保存数据,随着时间的推移,相应数据的粒度逐渐变大,但这种方式存在两个缺点:(1)所存储的数据粒度受到限制,如不能从中得到一个月前的某天平均每半个小时的数据;(2)每次数据采集后,MRTG 都根据日志文件进行流量图生成,并以HTML 格式呈现,而在实际应用场合,一个端口的流量统计分析图形被用户调用查看的概率远远小于不被调用的概率,因此浪费了大量用于生成图形的系统开销,随着网络规模的扩大
7、,MTRG 在性能上明显不能满足要求。本文提出了一种如图2所示的流量数据采集及存储方案。网络性能管理软件实时地接收路由器发送过来的Netflow/sFlow 包(当然这里也包括用SNMP 协议定时采集到的流量数据),将其结果存储到嵌入式数据库Berkeley DB 当中,供长期历史保存。与MRTG 不同的是:(1)它采用了嵌入式数据库Berkeley DB, Berkeley DB可以直接连接到应用程序内部,和应用程序运行在同一地址空间,因此它不需要与另外的数据库应用程序进行通信,提高了应用程序的速度,减少磁盘操作的时间,防止了数据因磁盘操作缓慢而导致的数据丢失现象。(2)它并非每次采集都生成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 数据库 海量 存储 技术 解析
链接地址:https://www.31doc.com/p-3417476.html