一种存储系统的数据写入方法及系统的制作方法

文档序号:9546874阅读:415来源:国知局
一种存储系统的数据写入方法及系统的制作方法
【技术领域】
[0001]本发明涉及云存储技术领域,特别是涉及一种存储系统的数据写入方法及系统。
【背景技术】
[0002]在存储系统中,事务通常指一系列相互关联的写操作的序列,这些操作构成一个整体的原子操作,即要么都成功执行,要么都没有执行,以保证系统状态的一致性和数据的完整性。举一个简单的例子,创建并写入一个新文件可以组成一个事务,它包括目录数据的更新、文件元数据的更新、文件数据的更新、系统统计数据的更新等多个相互关联的操作。在存储系统中,用户提交的一次写入请求通常都会组织成一个事务进行。
[0003]日志机制是实现事务的常用机制。在使用日志机制的云存储系统中,存在一个被称为日志的追踪文件。在日志机制中,一个事务所包含的所有操作及相关数据,都会先整合成一条日志,并记录到该追踪文件。只有在记录了该条日志之后,才会执行其中的操作。这样,一旦系统因故障而意外中止,在重启系统后,就可以通过读取日志,完整地恢复事务的执行。这个过程通常被称为日志的“回放”。
[0004]但是,日志机制在实现事务的同时,由于所有待写入数据既要先记录到日志,又要在执行事务时再写入到目标文件,实际上总共被写入了两次,使得存储系统的写入带宽只能达到磁盘物理带宽的一半,特别是在待写入数据的数据量较大的情况下,明显降低了存储系统的性能。

【发明内容】

[0005]有鉴于此,本发明提供了一种存储系统的数据写入方法及系统,以解决现有技术中两次写入待写入数据使得存储系统的写入带宽只能达到磁盘物理带宽的一半,明显降低了存储系统的性能的问题。
[0006]为解决上述技术问题,本发明提供存储系统的数据写入方法,包括:
[0007]获取针对目标文件的追加写入请求,并记录所述目标文件的初始数据长度;其中,所述追加写入请求携带待写入数据;
[0008]更改针对所述追加写入请求的事务中的执行内容为删除记录的所述初始数据长度;
[0009]将所述待写入数据写入所述目标文件;
[0010]记录更改后的所述事务至日志,并执行所述执行内容以删除所述记录的所述初始数据长度。
[0011]上述方法中,优选的,所述将所述待写入数据写入所述目标文件包括:
[0012]将所述待写入数据追加至所述目标文件的尾部。
[0013]上述方法中,优选的,所述将所述待写入数据追加至所述目标文件的尾部的过程中出现异常之后,还包括:
[0014]判断所述更改后的所述事务是否成功记录至所述日志;
[0015]当判定所述更改后的所述事务没有成功记录至所述日志时,利用所述记录的所述初始数据长度,回滚追加后的所述目标文件至初始状态。
[0016]本发明还提供了一种存储系统的数据写入系统,包括:
[0017]记录单元,用于获取针对目标文件的追加写入请求,并记录所述目标文件的初始数据长度;其中,所述追加写入请求携带待写入数据;
[0018]更改单元,用于更改针对所述追加写入请求的事务中的执行内容为删除记录的所述初始数据长度;
[0019]写入单元,用于将所述待写入数据写入所述目标文件;
[0020]执行单元,用于记录更改后的所述事务至日志,并执行所述执行内容以删除所述记录的所述初始数据长度。
[0021]上述系统中,优选的,所述写入单元具体用于将所述待写入数据追加至所述目标文件的尾部。
[0022]上述系统中,优选的,还包括:
[0023]回滚单元,用于所述将所述待写入数据追加至所述目标文件的尾部的过程中出现异常之后,判断所述更改后的所述事务是否成功记录至所述日志;当判定所述更改后的所述事务没有成功记录至所述日志时,利用所述记录的所述初始数据长度,回滚追加后的所述目标文件至初始状态。
[0024]以上本发明提供的一种存储系统的数据写入方法及系统中,获取针对待目标文件的追加写入请求,并记录所述目标文件的初始数据长度;更改针对所述追加写入请求的事务中的执行内容为删除记录的所述初始数据长度;将所述待写入数据写入所述目标文件;记录更改后的所述事务至日志,并执行所述执行内容以删除所述记录的所述初始数据长度。在更改后的事务中包含的执行内容为删除最开始记录的目标文件的初始数据长度,其不再包含待写入数据,通常情况下,上述执行内容(删除最开始记录的目标文件的初始数据长度)的数据量小于或远远小于待写入数据的数据量,以此,相较现有技术中要将数据量较大的待写入数据写入日志中,本发明中将上述执行内容写入日志中能够显著减少日志写入的数据量,以此有效解决了现有技术中两次写入待写入数据使得存储系统的写入带宽只能达到磁盘物理带宽的一半,明显降低了存储系统的性能的问题。
【附图说明】
[0025]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0026]图1为本发明实施例提供的一种存储系统的数据写入方法的流程图;
[0027]图2为本发明实施例提供的一种存储系统的数据写入系统的结构框图示意图。
【具体实施方式】
[0028]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029]本发明的核心是提供一种存储系统的数据写入方法及系统,以解决现有技术中两次写入待写入数据使得存储系统的写入带宽只能达到磁盘物理带宽的一半,明显降低了存储系统的性能的问题。
[0030]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。
[0031]参考图1,图1示出了本发明实施例提供的一种存储系统的数据写入方法的流程图,该方法具体可以包括如下步骤:
[0032]步骤S100、获取针对目标文件的追加写入请求,并记录目标文件的初始数据长度;具体地,上述追加写入请求中携带待写入数据。上述将待写入数据写入目标文件具体为将待写入数据追加至目标文件的尾部,并保证这个待写入数据落盘。
[0033]需要说明的是,本发明提供的数据写入方法主要针对追加写入的写入方式,对于其他写入方式,比如会修改目标文件原有内容的写入方式,由于写入时可能会覆盖文件的原内容,在意外中断时,无法用较为简单的方式回滚文件,所以不能使用本发明所提供的数据写入方法。对于这类写入,可以沿用原有的日志机制。
[0034]其中,追加写入是一种常见的写入方式。它的特点是只会在文件的尾部追加新的数据,而不会覆盖文件的原有数据。在上传、拷贝、连续写入一个大文件时,应用程序往往会将该文件分为多次写入,这时的大部分写入都是追加写入。追加写入的一个特点是:一旦写入过程因意外而终止,可以简单地通过截断文件到原来的长度来恢复该文
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1