一种基于分布式文件系统的批量文件操作方法及系统技术方案

技术编号:9519167 阅读:81 留言:0更新日期:2014-01-01 16:50
本发明专利技术涉及一种基于分布式文件系统的批量文件操作方法,具体包括以下步骤:步骤1:初始化;步骤2:打开分布式文件系统中的一个或多个文件;步骤3:判断是否有需要连续写入的数据内容,如果有,进行步骤4;否则,进行步骤5;步骤4:将多个字符串拼接成长字符;步骤5:对文件进行写操作;步骤6:判断是否到达预设的批次时间,如果到达,进行步骤7,否则,转向步骤3;步骤7:将缓存的数据刷到磁盘上,判断数据是否写完,如果写完,进行步骤8;否则,跳转至步骤3;步骤8:关闭该文件。本发明专利技术提高了应用程序在分布式文件系统上的写性能和文件操作的性能;同时保证数据的正确性和准确性。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种基于分布式文件系统的批量文件操作方法,具体包括以下步骤:步骤1:初始化;步骤2:打开分布式文件系统中的一个或多个文件;步骤3:判断是否有需要连续写入的数据内容,如果有,进行步骤4;否则,进行步骤5;步骤4:将多个字符串拼接成长字符;步骤5:对文件进行写操作;步骤6:判断是否到达预设的批次时间,如果到达,进行步骤7,否则,转向步骤3;步骤7:将缓存的数据刷到磁盘上,判断数据是否写完,如果写完,进行步骤8;否则,跳转至步骤3;步骤8:关闭该文件。本专利技术提高了应用程序在分布式文件系统上的写性能和文件操作的性能;同时保证数据的正确性和准确性。【专利说明】一种基于分布式文件系统的批量文件操作方法及系统
本专利技术涉及一种基于分布式文件系统的批量文件操作方法及系统,属于分布式文件系统的应用领域,云存储领域。
技术介绍
目前全球企业数据的总容量大约是每三年就要翻两番。因此,如何保证企业拥有足够的存储空间可靠地存储数据,并能满足企业对低成本和高可用的数据需求,已经成为绝大多数企业面对的越来越严峻的挑战。现有技术中,采用分布式文件系统,进行存储和检索,可以减少投资的成本,而采用文件系统方式又存在对于频繁变动数据的存储检索的效率低下的问题。采用分布式文件系统存储数据,实现云存储;云底层应用采用分布式文件系统作存储,在分布式文件系统上操作会跨网络,性能与网络带宽和I/o的限制,应用程序直接在分布式文件系统上写很慢,无法满足实际生产系统的需求。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术的不足,提供一种提高应用程序在分布式文件系统上的写性能和文件操作性能的,并且在实际生产系统中可应用的基于分布式文件系统的批量文件操作方法。本专利技术解决上述技术问题的技术方案如下:一种基于分布式文件系统的批量文件操作方法,具体包括以下步骤:步骤1:初始化,读入程序的配置信息,记录第一个批次开始的时间;步骤2:打开分布式文件系统中的一个或多个文件,对于频繁读写的文件,将文件句柄和对应的文件名称保存在内存中;步骤3:判断是否有需要连续写入的数据内容,如果有,进行步骤4 ;否则,进行步骤5 ;步骤4:将准备连续写入的多个字符串拼接成一个长字符串,以便将长字符串一次性写入分布式文件系统的文件;步骤5:对文件进行写操作,根据步骤2在内存中记录的内容,按照文件名称找到对应的文件句柄,直接进行写入操作,把数据写入分布式文件系统文件中;步骤6:获取当前时间,判断是否到达预设的批次时间,如果到达预设的批次时间,进行步骤7,否则,转向步骤3,进行下一个循环的数据写入;步骤7:对于频繁写的文件,需要调用分布式文件系统的刷数据接口(如flush接口),将写入分布式文件系统缓存的数据刷到磁盘上,判断对应文件的数据是否写完,如果写完,进行步骤8 ;否则,将当前时间置为下一个批次的开始时间;跳转至步骤3,进行下一个循环的数据写入;步骤8:对应文件的数据写完,关闭该文件。本专利技术的有益效果是:本专利技术所述的批量文件操作方法,大大提高应用程序在分布式文件系统上的写性能和文件操作的性能;同时保证数据的正确性和准确性,以及容错性和异常恢复的能力;使分布式文件系统在实际生产系统可用。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述步骤7中将写入分布式文件系统缓存的数据刷到磁盘上时,同时将文件名称和偏移量记录到断点文件中,保证断点与实际数据文件的一致性。进一步,如果在程序运行的过程中,发生异常退出,程序重启恢复的方法如下:初始化,读入程序的配置信息,获取断点文件内容,打开分布式文件系统上的数据文件,根据断点文件记录的各个数据文件的名称的和对应的偏移量(调用feek方法)调整每个数据文件的偏移量,对断点批次处理的数据内容进行重新写入。采用上述进一步方案的有益效果是,详单存储应用程序减少写断点次数,每刷一次数据到物理磁盘记录一次断点,记录每个详单存储文件的偏移量,这样既可以减少写断点文件次数,也可以保证每次的断点都是有效的;异常恢复时从断点处重新处理覆盖详单存储文件。进一步,所述配置信息,包括数据文件目录、批次时间段大小、断点文件目录等。进一步,所述步骤2中将文件句柄和对应的文件名称保存在内存中,可以定义一个数据结构:包括文件名称、文件句柄、偏移量、断点文件名称等信息,以数组、hash表等形式存在内存中。因为在分布式文件系统上打开关闭文件操作属于跨主机跨网络操作,比较浪费时间;减少打开关闭文件操作可以大大减少处理时间。字符串拼接属于内存操作,速度很快,对处理时间的影响可以忽略;减少写文件的次数可以减少分布式文件系统的开关,而每次对分布式文件系统的写操作都是跨网络的,是慢的,减少写操作的次数可以有效提高处理性能。本专利技术所要解决的另一个技术问题是,针对现有技术的不足,提供一种提高应用程序在分布式文件系统上的写性能和文件操作性能的,并且在实际生产系统中可应用的基于分布式文件系统的批量文件操作系统。本专利技术解决上述技术问题的技术方案如下:一种基于分布式文件系统的批量文件操作系统,包括初始化模块、保存模块、判断写入模块、写操作模块、判断批次模块和所述判断完成t旲块;所述初始化模块进行初始化,读入程序的配置信息,记录第一个批次开始的时间;所述保存模块打开分布式文件系统中的一个或多个文件,对于频繁读写的文件,将文件句柄和对应的文件名称保存在内存中;所述判断写入模块判断是否有需要连续写入的数据内容,如果有,将准备连续写入的多个字符串拼接成一个长字符串,将长字符串一次性写入分布式文件系统的文件;否贝U,直接将数据写入分布式文件系统的文件;所述写操作模块对文件进行写操作,根据保存模块在内存中记录的内容,按照文件名称找到对应的文件句柄,直接进行写入操作,把数据写入分布式文件系统文件中;所述判断批次模块采集获取当前时间,判断是否到达预设的批次时间,如果到达预设的批次时间,调用分布式文件系统的刷数据接口(如flush接口),将写入分布式文件系统缓存的数据刷到磁盘上,否则,进行下一个循环的数据写入;所述判断完成模块判断对应文件的数据是否写完,如果写完,关闭该文件;否则,将当前时间置为下一个批次的开始时间,进行下一个循环的数据写入。本专利技术的有益效果是:本专利技术所述的批量文件操作方法,大大提高应用程序在分布式文件系统上的写性能和文件操作的性能;同时保证数据的正确性和准确性,以及容错性和异常恢复的能力;使分布式文件系统在实际生产系统可用。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述判断完成模块将写入分布式文件系统缓存的数据刷到磁盘上时,同时将文件名称和偏移量记录到断点文件中,保证断点与实际数据文件的一致性。进一步,如果在程序运行的过程中,发生异常退出,程序重启恢复的方法如下:初始化,读入程序的配置信息,获取断点文件内容,打开分布式文件系统上的数据文件,根据断点文件记录的各个数据文件的名称的和对应的偏移量(调用feek方法)调整每个数据文件的偏移量,对断点批次处理的数据内容进行重新写入。进一步,所述配置信息,包括数据文件目录、批次时间段大小、断点文件目录等。进一步,所述保存模块将文件句柄和对应的文件名称保存在内存中,可以定义一个数据结构:包括文件名称、本文档来自技高网...

【技术保护点】
一种基于分布式文件系统的批量文件操作方法,其特征在于,具体包括以下步骤:步骤1:初始化,读入程序的配置信息,记录第一个批次开始的时间;步骤2:打开分布式文件系统中的一个或多个文件,对于频繁读写的文件,将文件句柄和对应的文件名称保存在内存中;步骤3:判断是否有需要连续写入的数据内容,如果有,进行步骤4;否则,进行步骤5;步骤4:将准备连续写入的多个字符串拼接成一个长字符串,以便将长字符串一次性写入分布式文件系统的文件;步骤5:对文件进行写操作,根据步骤2在内存中记录的内容,按照文件名称找到对应的文件句柄,直接进行写入操作,把数据写入分布式文件系统文件中;步骤6:获取当前时间,判断是否到达预设的批次时间,如果到达预设的批次时间,进行步骤7,否则,转向步骤3,进行下一个循环的数据写入;步骤7:对于频繁写的文件,需要调用分布式文件系统的刷数据接口,将写入分布式文件系统缓存的数据刷到磁盘上,判断对应文件的数据是否写完,如果写完,进行步骤8;否则,将当前时间置为下一个批次的开始时间;跳转至步骤3,进行下一个循环的数据写入;步骤8:对应文件的数据写完,关闭该文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:李晓静
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1