具有事务能力的文件存储技术

上传人:jiups****uk12 文档编号:40633357 上传时间:2018-05-26 格式:PDF 页数:7 大小:92.57KB
返回 下载 相关 举报
具有事务能力的文件存储技术_第1页
第1页 / 共7页
具有事务能力的文件存储技术_第2页
第2页 / 共7页
具有事务能力的文件存储技术_第3页
第3页 / 共7页
具有事务能力的文件存储技术_第4页
第4页 / 共7页
具有事务能力的文件存储技术_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《具有事务能力的文件存储技术》由会员分享,可在线阅读,更多相关《具有事务能力的文件存储技术(7页珍藏版)》请在金锄头文库上搜索。

1、88具有事务能力的文件存储技术宫海林1 郭长国1, 2 苑宏亮1 王怀民1(1国防科学技术大学计算机学院 长沙 410073)( 2中国电子设备系统工程公司 北京 100039)摘摘 要要文件系统的存储效率较高,访问接口简单,因此很多应用系统的非结构化数据存 储直接建立在文件系统上。随着应用系统管理的数据量不断增大和对数据操作的复杂化, 文件系统提供的数据存储功能已经不能满足当前不断增长的存储需求。提出了一种将非结 构化数据集中存储,同时支持事务的存储方案,并依据此方案实现了一个高效、易用的数 据存储系统 GSL。GSL 的数据存储接口与文件系统的接口风格一致,并支持事务处理。将 GSL 与文

2、件系统以及 Oracle 数据库的 BLOB 存储效率进行了测试和比较,结果表明 GSL 的存储效率与文件系统的存储效率相当,优于 BLOB。 关键词关键词非结构化数据 文件存储 事务 中图法分类号中图法分类号 TP 311File Storing Technology With TransactionGong Hailin1 Guo Changguo1, 2 Yuan Hongliang1 Wang Huaimin1(1School of Computer Science, National University of Defense Technology, Changsha 410073)

3、( 2 China Electric Equipment and Systems Engineering Ltd., Beijing 100039)Abstract The unstructured data storage of many application systems directly bases on the file systems, for high efficiency and simple access interface. With the increase of the amount of data to be operated and operation compl

4、exity, the data storage demand could not fulfill perfectly any more. We present the centralized storage as well as transactionsupported methodology for unstructured data. Based on this method, we provide the implementation of a handy data storage system with high proficiency: GSL. The data access in

5、terface in GSL is consistent with that in file systems; what is more, the transaction management interface is included. Finally, we make a comparison of the storage proficiency between GSL, file systems and BLOB in Oracle database. The result is that GSL has more or less the same file storage profic

6、iency as file systems, which is much better than BLOB. Key Words: unstructured data, file storing, transaction1 引言引言随着网络技术的不断发展,音频、视频等多媒体数据交换量越来越大,这些数据包括 结构化数据和非结构化数据,其中非结构化数据一般单独进行存储和管理1。由于文件系 统的存储效率较高,访问接口简单,因此很多应用系统将非结构化数据存储直接存储于文 件系统中。文件大小和数量在不断增长,对文件的访问频率和复杂度也越来越高,而文件 系统直接提供的数据存储能力已经不能满足需要。 问题

7、1:当一个文件系统长时间使用后,由于反复写操作和删除操作,磁盘产生很多 碎块,同一个文件在磁盘上往往并不是连续存储,使访问效率明显降低2。问题 2:一次业基金项目:973 课题,编号 2005CB321804。作者简介:宫海林,男,1982 年 1 月,辽宁沈阳人,硕士研究生,研究方向为分布计算、信息安全。 E-Mail: .89务逻辑中往往需要进行多次文件操作,这些数据操作要么全部成功,要么全部失败,不允 许出现某些操作成功而另一些操作失败而产生数据不一致的中间状态。即必须保证一次业 务逻辑中多次文件操作的原子性。现有的文件系统无法提供这种类似于数据库管理系统的 事务处理能力。 问题 1 需

8、要改进数据在存储系统中的组织形式,参考文献3对邮件服务系统中两种不 同存储组织形式对性能的影响进行了详细测试和比较;问题 2 必须依靠事务处理中的原子 性操作解决。 实现支持事务的非结构化数据聚合存储最简单的方案是直接将数据以二进制流的方式 存储到大型关系数据库中(比如以 BLOB 方式存储在 Oracle 数据库中) ,进行集中存储, 利用数据库管理系统提供的事务能力保证多次数据操作的原子性。参考文献4提出了一种 将数据库封装成文件系统接口的方案。但这种存储方案存在三个缺点: 第一,因为数据库本身并不是针对管理大量BLOB数据而设计的,所以这样会导致效 率低下,存取速度会明显比直接使用文件系

9、统慢5。本文的测试也表明将二进制流直接存 储到Oracle数据库BLOB字段的存储速度比直接将数据存储到文件中的速度大约要慢一个数 量级。 第二,无法对存储到数据库中的二进制流数据进行随机访问。对于文件系统,可以通 过移动读写指针来读写文件的任意位置,但是将二进制流写入数据库后,只能整块的读取。 第三,系统使用大型关系数据库后将使其复杂性增加,性价比降低,系统的部署和维 护难度也会加大。 事务处理并不意味着需要付出很高的性能代价6。参考文献2和7对几种支持事务的 文件系统进行了研究。本文提出了一种将非结构化数据集中存储并支持事务的存储方案, 并依据此方案实现了一个高效、易用的数据存储系统 GS

10、L(General Storage Library) 。 GSL 提供文件访问接口,不会增加应用的使用复杂性,并且它把多个小文件集中存储 成一个大文件,解决了文件分散存储的问题。同时,GSL 支持事务,使用 GSL,可以使应 用对多个文件的操作保持原子性。GSL 以程序库的形式存在,可以很方便的将这种能力嵌 入到应用系统中。GSL 底层使用 Berkeley DB 的存储设施,具有较好的性能。与文件系统 和 Oracle 数据库的测试表明,GSL 的存储效率与文件系统相当,并优于 Oracle 数据库存储 BLOB 数据的效率。2 GSL 体系结构体系结构GSL 的基本设计思想是分层,如图 1

11、所示。GSL 由块数据存储层H、文件管理层F、访问接口层A组成,即,GSLH F A=。iK是数据块iB的名称,iV是数据块块数据存储层 H文件管理层 F访问接口层 A基于 GSL 的应用90iB的内容。通常,数据块的名称和内容都由上层(在 GSL 中是文件管理层)指定。不同的数据块可以具有相同的名称,块的大小可任意,块数据存储层提供对任意块的并发读、 写以及删除能力,同时支持对数据块操作的事务处理。文件管理层使用F是逻辑文件L的集合,即:|1,2,3.iFL i=,一个逻辑文件由文件名称和文件内容组成,即:,iiiLND=,iN表示逻辑文件的名称,iD是逻辑文件的内容。一个逻辑文件L由多个数

12、据块B组成,若逻辑文件iL由数据块,.xyzBBB组 成 , 则 记 为 :.ixyzLBBB=, 其 中 ,.xyziKKKN=,.ixyzDVVV=+。xyVV+表 示 将yV的 内 容 附 着 在xV之 后 , 因 此 有 :xyyxVVVV+。即iL的名称和组成它的所有块的名称相同,iL的内容是这些块的内容的有序组合。访问接口层A是一系列文件访问接口的集合。 基于 GSL 的应用使用文件访问接口层进行逻辑文件操作,并且可以获得对文件操作的 事务处理功能。2.1 块数据存储层块数据存储层块数据存储层提供对不定长数据块的高性能管理,并支持对数据块读写的事务处理。 该层的所有数据块以集中的方

13、式存储为一个或几个操作系统的大文件,这些大文件中的数 据块以某种算法(如 B 树)进行高效的组织和管理。 实现上,本层使用了 Berkeley DB 作为数据块存储设施。Berkeley DB 并不是一个传统 意义下的关系数据库系统8,它实质上是一个高性能的数据块存储管理系统。Berkeley DB 的数据逻辑组织单位是若干个独立或有一定关系的数据库,每个数据库是一个操作系统的 文件,每个数据库由若干记录组成,记录被表示成(key,value)的形式。其中 key 和 value 为任意长度的二进制流。 对于任意一个 key 值, 可以有一到多个 value 值与之对应。 Berkeley D

14、B 还提供了游标机制,用于并发操作记录,同时提供对记录访问的事务处理能力。 Berkeley DB 的这种能力和本文定义的块数据存储层的模型是吻合的。 Berkeley DB 以程序库的形式存在,为应用提供可伸缩的、高性能的、有事务保护功能 的数据管理服务。由于它作为一个函数库被调用,因此它比其他的关系数据库系统具有明 显的安装部署以及性能优势。这种性能优势主要来源于下述两个原因: 1、因为应用系统同 Berkeley DB 在相同的地址空间运行,所以数据操作不需要进程间 通讯。在一台机器的不同进程间或在网络中不同机器间进行进程通讯所花费的开销要远大 于同一进程内函数调用的开销; 2、因为 B

15、erkeley DB 的访问都通过一组 Berkeley DB 底层函数接口完成,不必对某种 查询语言进行解析,也不用生成关系数据库的执行计划,所以可以提高数据管理的效率。2.2 文件管理层文件管理层文件管理层位于块数据存储层之上,文件管理层把一个或者多个同名的数据块组织成 一个逻辑文件,并通过数据块的事务能力实现对逻辑文件的事务处理。 从实现上来讲,一个逻辑文件对应于 Berkeley DB 中的一个或者多个记录。一个逻辑91文件的文件名对应于一个记录的 key,文件中的数据对应于记录中的 data。如果逻辑文件 由多个记录组成,则这多个记录的 key 和文件名相同。文件的内容是这多个记录的

16、值的有 序组合。Berkeley DB 能够维护多个记录的顺序关系。 GSL 在实现时,记录值的大小设置为固定值。例如,有一个逻辑文件需要进行存储, 如图 2所示,文件名为 a1.txt,文件数据长度为 350KB;管理员设定的最大的 data 长度为 100KB;逻辑文件将被分解成 4 块进行存储,大小分别为 100KB、100KB、100KB、50KB, 这四块数据将会被存储到 4 个 (key, data) 结构中。 每一个结构的 key 中都存储文件名 a1.txt, data 中分别存储 4 块数据。图 2逻辑文件与记录对应关系 当用户随机读文件时, 比如用户从 120KB 位置读取逻辑文件 a1.txt 的内容到一个 90KB 的缓冲区中,这时首先定位记录(第二条) ,然后整块读取该记录,再根据偏移量(20KB) 将数据填写到用户指定的缓冲区中,由于要读取的数据跨越了两条记录,所以还需要读下 一条记录(第三条) 。 当用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号