一种数据处理方法和电子设备技术

技术编号:20329127 阅读:22 留言:0更新日期:2019-02-13 05:44
本发明专利技术提供了一种数据处理方法,包括:接收第一指令,该第一指令用于指示修改文件系统中第一数据,该第一数据对应至少一个第一数据块;获取至少一个第一数据块的地址,并存储到预设链表中;根据文件系统中为第一数据分配的至少一个第二数据块,将修改数据写入至少一个第二数据块中,以实现修改第一数据,该第二数据块与第一数据块对应。采用该方法,通过将待修改的第一数据对应的多个数据块的地址存储到预设链表中,而为该第一数据分配新的数据块,并将修改数据写入该新分配的数据块中。这样,直接将修改数据写入新分配的数据块,不需要对原来的数据块进行覆盖,也不需要对修改的数据进行读取以及写到新创建的文件中,提高了修改写的性能。

【技术实现步骤摘要】
一种数据处理方法和电子设备
本专利技术涉及电子设备领域,更具体的说,是涉及一种数据处理方法和电子设备。
技术介绍
文件系统用来保存用户数据,当文件系统所在的设备发生故障时,比如突然掉电\磁盘故障等,文件系统中会存在某一块数据只有一部分写到了磁盘上,其他部分还没有来的及下盘。这样当系统故障恢复的时候,无法确定目前系统中在磁盘上写入的这块数据是什么样子的,哪部分已经被写入,哪部分可以被读出来,即真正在磁盘上落盘的数据跟要写入的数据不一致。文件系统在解决数据不一致的问题时,引入文件系统日志,即文件系统的每一个修改操作都会在操作之前记一条日志,当该操作的修改动作完成后,就会把相应的日志删除。这样当系统由于某种原因无法完成文件系统的既定操作时,文件系统会读取日志,回滚未完成的日志所对应的操作(例如,未完成的追加写操作删除写入的内容,删除设置的新的属性等)并删除相关的日志,即每一种需要记录日志的操作都有不同的回滚动作。如图1所示的现有技术中文件系统修改写流程,应用系统101要修改文件系统102中的某块数据,为了保证在修改数据出错时被修改过的这块数据能回滚到之前的数据,需要执行以下步骤:1、修改(modify),确定要修改的数据,从原文件(originalfile)中确定一个数据块(blocks);2、复制(copy),将该数据块复制到备份文件(backupfile);3、写入日志(writelog),将该写操作写入日志文件(logfile)中的日志(log);4、写(write),将新数据写入文件中,得到新文件(newfile);5、删除(remove),从备份文件中删除该数据块。该过程中,该将要修改的原数据拷贝出来,存放到其他的位置(如新建的文件中),这样在新数据写失败的时候,可以把刚备份的旧的数据拷贝回来,覆盖写出错的新数据,保证文件的数据回退到覆盖写之前的一致状态。为了能让文件系统恢复到数据一致状态,需要在修改写的时候拷贝原来的数据块,增加了一次数据读写的操作,文件系统需要把要修改的数据块内容先读出来,创建一个新文件,然后把内容写到新文件中,当新数据下盘后,需要删除之前备份的数据文件。所以,修改写操作的性能会显著下降。
技术实现思路
有鉴于此,本专利技术提供了一种数据处理方法,解决了现有技术中修改写操作的性能较低的问题。为实现上述目的,本专利技术提供如下技术方案:一种数据处理方法,包括:接收第一指令,所述第一指令用于指示修改文件系统中第一数据,所述第一数据对应至少一个第一数据块;获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中;根据文件系统中为所述第一数据分配的至少一个第二数据块,将修改数据写入所述至少一个第二数据块中,以实现修改所述第一数据,所述第二数据块与所述第一数据块对应。上述的方法,优选的,所述将修改数据写入所述至少一个第二数据块中之后,还包括:基于所述将修改数据写入所述至少一个第二数据块中完成,删除所述预设链表中所述至少一个第一数据块的地址;基于所述将修改数据写入所述至少一个第二数据块中未完成,根据所述预设链表中的地址,替换第一数据对应的所述至少一个第二数据块的地址。上述的方法,优选的,所述基于所述将修改数据写入所述至少一个第二数据块中未完成,还包括:删除所述至少一个第二数据中存储的数据;删除所述预设链表中所述至少一个第一数据块的地址。上述的方法,优选的,所述获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中,具体包括:判断所述文件系统的元数据中是否有预设的位置指针,所述位置指针指向预设链表;基于所述文件系统的元数据中有预设的位置指针,在所述预设链表后添加与所述至少一个第一数据块对应的表项,任一所述表项中对应记录一个第一数据块的地址;基于所述文件系统的元数据中没有预设的位置指针,创建链表,将链表的表头地址添加到文件系统的元数据中,实现建立位置指针,在所述预设链表后添加与所述至少一个第一数据块对应的表项,任一所述表项中对应记录一个第一数据块的地址。上述的方法,优选的,基于所述将修改数据写入所述至少一个第二数据块中完成,还包括:根据所述预设链表中所述至少一个第一数据块的地址,查找到相应的第一数据块;删除所述第一数据块中存储的数据。一种电子设备,包括:本体;处理器,用于接收第一指令,所述第一指令用于指示修改文件系统中第一数据,所述第一数据对应至少一个第一数据块;获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中;根据文件系统中为所述第一数据分配的至少一个第二数据块,将修改数据写入所述至少一个第二数据块中,以实现修改所述第一数据,所述第二数据块与所述第一数据块对应。上述的电子设备,优选的,所述处理器,还用于基于所述将修改数据写入所述至少一个第二数据块中完成,删除所述预设链表中所述至少一个第一数据块的地址;基于所述将修改数据写入所述至少一个第二数据块中未完成,根据所述预设链表中的地址,替换第一数据对应的所述至少一个第二数据块的地址。上述的电子设备,优选的,基于所述将修改数据写入所述至少一个第二数据块中未完成,所述处理器,还用于:删除所述至少一个第二数据中存储的数据;删除所述预设链表中所述至少一个第一数据块的地址;基于所述将修改数据写入所述至少一个第二数据块中完成,所述处理器,还用于:根据所述预设链表中所述至少一个第一数据块的地址,查找到相应的第一数据块;删除所述第一数据块中存储的数据。上述的电子设备,优选的,所述处理器,具体用于:判断所述文件系统的元数据中是否有预设的位置指针,所述位置指针指向预设链表;基于所述文件系统的元数据中有预设的位置指针,在所述预设链表后添加与所述至少一个第一数据块对应的表项,任一所述表项中对应记录一个第一数据块的地址;基于所述文件系统的元数据中没有预设的位置指针,创建链表,将链表的表头地址添加到文件系统的元数据中,实现建立位置指针,在所述预设链表后添加与所述至少一个第一数据块对应的表项,任一所述表项中对应记录一个第一数据块的地址。一种电子设备,包括:接收单元,用于接收第一指令,所述第一指令用于指示修改文件系统中第一数据,所述第一数据对应至少一个第一数据块;获取单元,用于获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中;修改单元,用于根据文件系统中为所述第一数据分配的至少一个第二数据块,将修改数据写入所述至少一个第二数据块中,以实现修改所述第一数据,所述第二数据块与所述第一数据块对应。经由上述的技术方案可知,与现有技术相比,本专利技术提供了一种数据处理方法,包括:接收第一指令,所述第一指令用于指示修改文件系统中第一数据,所述第一数据对应至少一个第一数据块;获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中;根据文件系统中为所述第一数据分配的至少一个第二数据块,将修改数据写入所述至少一个第二数据块中,以实现修改所述第一数据,所述第二数据块与所述第一数据块对应。采用该方法,通过将待修改的第一数据对应的多个数据块的地址存储到预设链表中,而为该第一数据分配新的数据块,并将修改数据写入该新分配的数据块中。这样,直接将修改数据写入新分配的数据块,不需要对原来的数据块进行覆盖,也不需要对修改的数据进行读取以及写到新创建的文件中,提高了修改写本文档来自技高网
...

【技术保护点】
1.一种数据处理方法,包括:接收第一指令,所述第一指令用于指示修改文件系统中第一数据,所述第一数据对应至少一个第一数据块;获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中;根据文件系统中为所述第一数据分配的至少一个第二数据块,将修改数据写入所述至少一个第二数据块中,以实现修改所述第一数据,所述第二数据块与所述第一数据块对应。

【技术特征摘要】
1.一种数据处理方法,包括:接收第一指令,所述第一指令用于指示修改文件系统中第一数据,所述第一数据对应至少一个第一数据块;获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中;根据文件系统中为所述第一数据分配的至少一个第二数据块,将修改数据写入所述至少一个第二数据块中,以实现修改所述第一数据,所述第二数据块与所述第一数据块对应。2.根据权利要求1中所述的方法,所述将修改数据写入所述至少一个第二数据块中之后,还包括:基于所述将修改数据写入所述至少一个第二数据块中完成,删除所述预设链表中所述至少一个第一数据块的地址;基于所述将修改数据写入所述至少一个第二数据块中未完成,根据所述预设链表中的地址,替换第一数据对应的所述至少一个第二数据块的地址。3.根据权利要求2所述的方法,所述基于所述将修改数据写入所述至少一个第二数据块中未完成,还包括:删除所述至少一个第二数据中存储的数据;删除所述预设链表中所述至少一个第一数据块的地址。4.根据权利要求1所述的方法,所述获取所述至少一个第一数据块的地址,并将所述地址存储到预设链表中,具体包括:判断所述文件系统的元数据中是否有预设的位置指针,所述位置指针指向预设链表;基于所述文件系统的元数据中有预设的位置指针,在所述预设链表后添加与所述至少一个第一数据块对应的表项,任一所述表项中对应记录一个第一数据块的地址;基于所述文件系统的元数据中没有预设的位置指针,创建链表,将链表的表头地址添加到文件系统的元数据中,实现建立位置指针,在所述预设链表后添加与所述至少一个第一数据块对应的表项,任一所述表项中对应记录一个第一数据块的地址。5.根据权利要求2所述的方法,基于所述将修改数据写入所述至少一个第二数据块中完成,还包括:根据所述预设链表中所述至少一个第一数据块的地址,查找到相应的第一数据块;删除所述第一数据块中存储的数据。6.一种电子设备,包括:本体;处理器,用于接收第一指令,所述第一指令用于指示修改文件系统中第一数据,所述第一数据对应至少一个第一数据块;获取所述至少一...

【专利技术属性】
技术研发人员:郝志敏孙宪武程金祥杨金楠
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京,11

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

1