基于数据缓冲的数据迁移方法技术

技术编号:11408306 阅读:53 留言:0更新日期:2015-05-06 07:33
本发明专利技术提出了基于数据缓冲的数据迁移方法。所述方法包括:(A1)数据迁移目标设备执行数据迁移初始化操作;(A2)创建数据读入线程和数据写入线程;(A3)所述数据读入线程执行数据读入操作以从外部移动存储设备读取待迁移的数据,并将读取出的待迁移的数据写入共享数据缓冲区中;(A4)所述数据写入线程执行数据写入操作以从所述共享数据缓冲区中读取出所述待迁移的数据,并将读取出的所述待迁移的数据写入所述数据迁移目标设备中的存储装置中。本发明专利技术所公开的基于数据缓冲的数据迁移方法能够实现数据的快速迁移并且具有广泛的适用性。

【技术实现步骤摘要】
基于数据缓冲的数据迁移方法
本专利技术涉及数据迁移方法,更具体地,涉及基于数据缓冲的数据迁移方法。
技术介绍
目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,将移动存储设备中的数据迁移到计算机中以进行存储和后续处理(例如将照相机、手机、U盘中的数据拷贝到计算机中)变得越来越重要。在现有的技术方案中,通常使用操作系统(例如Windows操作系统)自有的资源浏览器中的文件复制功能来实现数据的迁移。然而,现有的技术方案存在如下问题:(1)难以满足对数据迁移的时间有严格限制的应用;(2)由于使用特定的操作系统中的特定的资源浏览器,故只能针对以特定文件系统格式(例如FAT文件格式)存储的文件资源进行迁移操作,从而限制了数据迁移功能的适用性(例如无法针对未采用操作系统所支持的文件格式的文件资源进行迁移操作)。因此,存在如下需求:提供能够实现数据的快速迁移并且具有广泛的适用性的基于数据缓冲的数据迁移方法。
技术实现思路
为了解决上述现有技术方案所存在的问题,本专利技术提出了能够实现数据的快速迁移并且具有广泛的适用性的基于数据缓冲的数据迁移方法。本专利技术的目的是通过以下技术方案实现的:一种基于数据缓冲的数据迁移方法,所述基于数据缓冲的数据迁移方法包括下列步骤:(A1)数据迁移目标设备执行数据迁移初始化操作;(A2)创建数据读入线程和数据写入线程;(A3)所述数据读入线程执行数据读入操作以从外部移动存储设备读取待迁移的数据,并将读取出的待迁移的数据写入共享数据缓冲区中;(A4)所述数据写入线程执行数据写入操作以从所述共享数据缓冲区中读取出所述待迁移的数据,并将读取出的所述待迁移的数据写入所述数据迁移目标设备中的存储装置中。在上面所公开的方案中,优选地,所述步骤(A1)进一步包括:设置所述共享数据缓冲区中的缓冲块的数目以及每个缓冲块的大小,并将每个缓冲块的标志位的值设置为“Invalid”。在上面所公开的方案中,优选地,所述步骤(A1)进一步包括:如果所述外部移动存储设备不支持FAT形式的文件系统格式,则所述数据迁移目标设备通过相关的接口获取所述外部移动存储设备的文件目录内容并在内存中建立文件索引。在上面所公开的方案中,优选地,所述步骤(A3)进一步包括:(B1)所述数据读入线程在所述共享数据缓冲区中分配一个其标志位的值为“Invalid”的缓冲块作为当前使用缓冲块并基于所述外部移动存储设备的文件目录或所述在内存中建立的文件索引选择待迁移文件中的一个作为当前待迁移文件,以及随后从所述外部移动存储设备读入所述当前待迁移文件的预定大小的数据并将读入的数据写入到所述当前使用缓冲块中,随之将所述当前使用缓冲块的标志位的值设置为“Validhead”;(B2)所述数据读入线程继续在所述共享数据缓冲区中分配一个其标志位的值为“Invalid”的新的缓冲块作为新的当前使用缓冲块,并随后从所述外部移动存储设备读入所述当前待迁移文件的预定大小的后续数据并将读入的数据写入到所述新的当前使用缓冲块中,随之将所述新的当前使用缓冲块的标志位的值设置为“Valid”,其中,如果所述当前待迁移文件的后续数据不足所述预定大小,则读入所述当前待迁移文件的实际大小的后续数据;(B3)重复步骤(B2),直至所述当前待迁移文件的数据均已读取完毕或者已没有其标志位的值为“Invalid”的缓冲块,其中,如果当前所读入的数据是当前待迁移文件的最后剩余的数据,则将当前使用缓冲块的标志位的值设置为“Validend”,以及如果已没有其标志位的值为“Invalid”的缓冲块,则转到步骤(C1);(B4)重复步骤(B1)以继续处理下一个待迁移文件,并且如果所有待迁移文件均已处理完毕,则所述数据读入线程终止。在上面所公开的方案中,优选地,所述方法进一步包括:(C1)侦听所述共享数据缓冲区中的各个缓冲块的I/O完成状态,并且将已完成I/O操作的缓冲块的标志位的值设置为“Invalid”,并且随后转到步骤(B2)。在上面所公开的方案中,优选地,所述步骤(A4)进一步包括:(D1)所述数据写入线程按照次序依次检查所述共享数据缓冲区中的每个缓冲块的标志位的值,并且如果当前检查的缓冲块的标志位的值为“Valid”或“Validend”,则转到步骤(D3),以及如果当前检查的缓冲块的标志位的值为“Validhead”,则转到步骤(D2);(D2)所述数据迁移目标设备调用系统函数在其存储装置中创建新文件,并将当前检查的其标志位的值为“Validhead”的缓冲块中的数据写入所创建的新文件中,并将该缓冲块的标志位的值设置为“Waiting”;(D3)将当前检查的其标志位的值为“Valid”或“Validend”的缓冲块中的数据写入所述数据迁移目标设备的存储装置中的相应的文件中,并将该缓冲块的标志位的值设置为“Waiting”,并且如果当前检查的缓冲块的标志位的值为“Validend”,则在将该缓冲块中的数据全部写入所述数据迁移目标设备的存储装置中的相应的文件中之后关闭所述相应的文件;(D4)所述数据写入线程重复步骤(D1),直至所述共享数据缓冲区中的每个缓冲块的标志位的值均为“Invalid”或“Waiting”,或者所有文件迁移结束。在上面所公开的方案中,优选地,使用异步I/O模式将缓冲块中的数据写入所述数据迁移目标设备的存储装置中的相应的文件中。本专利技术所公开的基于数据缓冲的数据迁移方法具有以下优点:(1)由于数据迁移目标设备能够通过相关的接口获取外部移动存储设备的文件目录内容并在内存中建立文件索引,故能够针对未采用操作系统所支持的文件格式的文件资源进行迁移操作,从而具有广泛的适用性;(2)由于在数据的读出和写入过程中使用了共享数据缓冲区并且采用异步I/O模式将缓冲块中的数据写入数据迁移目标设备的存储装置中的相应的文件中,故减少了数据迁移过程中的数据拷贝的开销,从而能够实现数据的更快速的迁移。附图说明结合附图,本专利技术的技术特征以及优点将会被本领域技术人员更好地理解,其中:图1是根据本专利技术的实施例的基于数据缓冲的数据迁移方法的流程图。具体实施方式图1是根据本专利技术的实施例的基于数据缓冲的数据迁移方法的流程图。如图1所示,本专利技术所公开的基于数据缓冲的数据迁移方法包括下列步骤:(A1)数据迁移目标设备(例如计算机)执行数据迁移初始化操作;(A2)创建数据读入线程和数据写入线程;(A3)所述数据读入线程执行数据读入操作以从外部移动存储设备读取待迁移的数据,并将读取出的待迁移的数据写入共享数据缓冲区中;(A4)所述数据写入线程执行数据写入操作以从所述共享数据缓冲区中读取出所述待迁移的数据,并将读取出的所述待迁移的数据写入所述数据迁移目标设备中的存储装置(例如磁盘)中。优选地,在本专利技术所公开的基于数据缓冲的数据迁移方法中,所述步骤(A1)进一步包括:设置所述共享数据缓冲区中的缓冲块的数目(例如128)以及每个缓冲块的大小(例如128KB),并将每个缓冲块的标志位的值设置为“Invalid”。优选地,在本专利技术所公开的基于数据缓冲的数据迁移方法中,所述步骤(A1)进一步包括:如果所述外部移动存储设备不支持FAT形式的文件系统格式,则所述数据迁移目标设备通过相关的接口获取所述外部移动存本文档来自技高网...
基于数据缓冲的数据迁移方法

【技术保护点】
一种基于数据缓冲的数据迁移方法,所述基于数据缓冲的数据迁移方法包括下列步骤:(A1)数据迁移目标设备执行数据迁移初始化操作;(A2)创建数据读入线程和数据写入线程;(A3)所述数据读入线程执行数据读入操作以从外部移动存储设备读取待迁移的数据,并将读取出的待迁移的数据写入共享数据缓冲区中;(A4)所述数据写入线程执行数据写入操作以从所述共享数据缓冲区中读取出所述待迁移的数据,并将读取出的所述待迁移的数据写入所述数据迁移目标设备中的存储装置中。

【技术特征摘要】
1.一种基于数据缓冲的数据迁移方法,所述基于数据缓冲的数据迁移方法包括下列步骤:(A1)数据迁移目标设备执行数据迁移初始化操作;(A2)创建数据读入线程和数据写入线程;(A3)所述数据读入线程执行数据读入操作以从外部移动存储设备读取待迁移的数据,并将读取出的待迁移的数据写入共享数据缓冲区中;(A4)所述数据写入线程执行数据写入操作以从所述共享数据缓冲区中读取出所述待迁移的数据,并将读取出的所述待迁移的数据写入所述数据迁移目标设备中的存储装置中,所述步骤(A1)进一步包括:如果所述外部移动存储设备不支持FAT形式的文件系统格式,则所述数据迁移目标设备通过相关的接口获取所述外部移动存储设备的文件目录内容并在内存中建立文件索引。2.根据权利要求1所述的基于数据缓冲的数据迁移方法,其特征在于,所述步骤(A1)进一步包括:设置所述共享数据缓冲区中的缓冲块的数目以及每个缓冲块的大小,并将每个缓冲块的标志位的值设置为“Invalid”。3.根据权利要求1所述的基于数据缓冲的数据迁移方法,其特征在于,所述步骤(A3)进一步包括:(B1)所述数据读入线程在所述共享数据缓冲区中分配一个其标志位的值为“Invalid”的缓冲块作为当前使用缓冲块并基于所述外部移动存储设备的文件目录或所述在内存中建立的文件索引选择待迁移文件中的一个作为当前待迁移文件,以及随后从所述外部移动存储设备读入所述当前待迁移文件的预定大小的数据并将读入的数据写入到所述当前使用缓冲块中,随之将所述当前使用缓冲块的标志位的值设置为“Validhead”;(B2)所述数据读入线程继续在所述共享数据缓冲区中分配一个其标志位的值为“Invalid”的新的缓冲块作为新的当前使用缓冲块,并随后从所述外部移动存储设备读入所述当前待迁移文件的预定大小的后续数据并将读入的数据写入到所述新的当前使用缓冲块中,随之将所述新的当前使用缓冲块的标志位的值设置为“Valid”,其中,如果所述当前待迁移文件的后续数据不足所述预定大小,则读入所述当前待迁移文件的实际大小的后续数据;(B3)重复步骤(B2),直...

【专利技术属性】
技术研发人员:刘磊才华何东杰
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

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

1