CN106599106A - 基于分布式文件***的数据同步方法及装置 - Google Patents
基于分布式文件***的数据同步方法及装置 Download PDFInfo
- Publication number
- CN106599106A CN106599106A CN201611072519.6A CN201611072519A CN106599106A CN 106599106 A CN106599106 A CN 106599106A CN 201611072519 A CN201611072519 A CN 201611072519A CN 106599106 A CN106599106 A CN 106599106A
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- synchronization
- alternative document
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种基于分布式文件***的数据同步方法及装置,其中,所述数据同步方法包括:检测文件元数据是否发生变化;当检测到所述文件元数据发生变化时,获取发生变化的目标文件元数据;判断所述目标文件元数据的文件大小是否大于预设阈值;当判定所述文件大小大于所述预设阈值时,将所述目标文件元数据存储到缓存队列中;对所述缓存队列中的所述目标文件元数据执行预设同步操作,以将所述目标文件元数据同步到所述分布式文件***的其他文件***中。通过本发明的技术方案,可以实现分布式文件***中各文件***之间数据同步的高效、安全和稳定,从而实现分布式文件***的互联互通。
Description
技术领域
本发明涉及数据同步技术领域,具体而言,涉及一种基于分布式文件***的数据同步方法和一种基于分布式文件***的数据同步装置。
背景技术
在互联网应用中,为了改善用户浏览***的速度,需要多地部署应用,但是文件只保存在各个机房中,不能共享,给用户带来很大不便,比如:
(1)用户在某地机房上传文件以后,只能在本地DNS(Domain Name System,域名***)中使用,其他地域的用户不能共享这个文件,若想使用,需要重新编写同步程序,费时费力;
(2)如果数据中心发生灾难性的事情,比如发生地震等事件,文件也将变得不可恢复。
(3)如果跨互联网部署分布式文件***集群,由于网络等资源受限,文件***会很不稳定,很容易导致文件丢失或无法正常访问。
以上问题一直未得到很好的解决,一直困扰着我们。
因此,如何实现分布式文件***中各文件***之间数据同步的高效、安全和稳定,从而实现分布式文件***的互联互通,成为目前亟待解决的问题。
发明内容
本发明正是基于上述问题,提出了一种新的技术方案,通过实时监控分布式文件***的各个文件***中的文件元数据的变化情况,以在任一文件***中的元数据发生变化时,可以高效、安全以及稳定地将变化的文件数据同步到其他文件***中,从而将各个文件***同步成一致状态,实现分布式文件***的互联互通。
有鉴于此,根据本发明的第一方面,提出了一种基于分布式文件***的数据同步方法,包括:检测文件元数据是否发生变化;当检测到所述文件元数据发生变化时,获取发生变化的目标文件元数据;判断所述目标文件元数据的文件大小是否大于预设阈值;当判定所述文件大小大于所述预设阈值时,将所述目标文件元数据存储到缓存队列中;对所述缓存队列中的所述目标文件元数据执行预设同步操作,以将所述目标文件元数据同步到所述分布式文件***的其他文件***中。
在该技术方案中,通过实时监控分布式文件***中的每个文件***中的文件元数据的变化情况,并在检测到任一文件***中的文件元数据发生变化时,获取发生变化的那部分文件元数据,即目标文件元数据,而在获取到发生变化的目标文件元数据后不是采用直接将其同步到分布式文件***中的其他文件***中,而是需要判断目标文件元数据的文件大小是否大于预设阈值,以及在判定大于时,对目标文件元数据执行存储到缓存队列中的缓存操作,进而按照设定的同步步骤将缓存队列中的目标文件元数据同步到其他文件***中,以避免直接同步数据的费时费力以及同步过程中的不稳定造成数据丢失等问题,从而高效、安全以及稳定地将变化的文件数据同步到其他文件***中,以将各个文件***同步成一致状态,实现分布式文件***的互联互通。
其中,可以通过检测是否有新建的文件数据或对原有文件数据是否有修改等检测文件元数据是否发生变化,并可以在检测到元文件数据发生变化时记录发生变化的文件数据,以便于提高数据同步的效率。
在上述技术方案中,优选地,所述对所述缓存队列中的所述目标文件元数据执行预设同步操作的步骤,具体包括:生成所述目标文件元数据的分割元数据散列信息;根据所述分割元数据散列信息将所述目标文件元数据分割为多个数据块;将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中,其中,所述分割元数据散列信息用于供所述其他文件***合并所述所多个数据块。
在该技术方案中,当将需要同步到其他文件***中的目标文件元数据存储到缓存队列后,首先通过散列算法计算生成目标文件元数据的分割元数据散列信息,继而根据分割元数据散列信息将该目标文件元数据打散分割为多个数据块,以数据块的形式逐个同步到其他文件***中,并同时将分割元数据散列信息传输到其他文件***中,以供其他文件***依据该分割元数据散列信息将接收到的多个数据块进行合并,得到完整的发生变化的目标文件元数据,从而确保发生变化的元数据在分布式文件***中的各个文件***之间的准确同步。
在上述任一技术方案中,优选地,在执行将所述目标文件元数据存储到所述缓存队列中的步骤时,还包括:获取所述文件元数据的文件属性信息,并将所述文件属性信息缓存到所述缓存队列中;以及在执行将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中的步骤时,还包括:将所述文件属性信息同步到所述其他文件***中,其中,所述文件属性信息用于供所述其他文件***装载合并后的所述多个数据块。
在该技术方案中,还可以将文件元数据的文件属性信息与发生变化的目标文件元数据的分割元数据散列信息和分割得到的多个数据块一起同步到其他文件***中,以使其他文件***根据文件元数据的文件属性信息准确地定位到相同部分的文件元数据,进而将对多个数据块合并后的文件数据装载到本地文件***中,实现分布式文件***中的不同文件***之间的高效地、准确地、安全地以及稳定地数据同步。
其中,分割元数据散列信息是指对目标文件元数据进行分割后得到的文件元数据的文件属性信息,而文件属性信息一般包括:指示文件存储位置、文件大小、资源查找等的信息。
在上述任一技术方案中,优选地,按周期检测所述文件元数据是否发生变化。
在该技术方案中,进一步地,可以按周期定时地将发生变化的文件元数据进行文件***之间的同步处理,而数据同步的定时周期可以根据用户的需求进行设置,比如半个小时、1个小时等,但最好间隔不要太长,以尽量确保分布式文件***中的所有文件***中的数据的实时同步。
在上述任一技术方案中,优选地,还包括:当判定所述文件大小小于或等于所述预设阈值时,将所述目标文件元数据同步到所述分布式文件***的其他文件***中;以及所述预设阈值的取值范围为大于1000KB。
在该技术方案中,可以在判定发生变化的目标文件元数据的文件大小小于或等于预设阈值时,直接将目标文件元数据同步到分布式文件***的其他文件***中,以在实现快速高效的数据同步的同时,可以有效地简化数据同步的流程步骤。
进一步地,具体可以发生变化的目标文件元数据的文件大小超过1000KB时,执行缓存分割同步的操作,从而避免由于数据过大导致同步失败或数据丢失等,进一步地,取值范围可以选为1000KB~1000MB,当然也可以根据实际情况适当地调整预设阈值的取值。
在上述任一技术方案中,优选地,将所述目标文件元数据通过多线程同步到所述分布式文件***的其他文件***中。
在该技术方案中,分布式文件***的各文件***之间的数据同步过程是多线程的,可以有效地提高同步效率和安全性、以及实现海量文件的高效同步,且该过程可以为一个多对多的过程,即任一文件***可以与其他所有文件***之间进行数据同步,实现多个文件***之间的数据互相备份,多地DNS均可访问所有文件,多地互联互通。
根据本发明的第二方面,提出了一种基于分布式文件***的数据同步装置,包括:检测模块,用于检测文件元数据是否发生变化;获取模块,用于当所述检测模块检测到所述文件元数据发生变化时,获取发生变化的目标文件元数据;判断模块,用于判断所述获取模块获取到的所述目标文件元数据的文件大小是否大于预设阈值;缓存模块,用于当所述判断模块判定所述文件大小大于所述预设阈值时,将所述目标文件元数据存储到缓存队列中;同步模块,用于对所述缓存队列中的所述目标文件元数据执行预设同步操作,以将所述目标文件元数据同步到所述分布式文件***的其他文件***中。
在该技术方案中,通过实时监控分布式文件***中的每个文件***中的文件元数据的变化情况,并在检测到任一文件***中的文件元数据发生变化时,获取发生变化的那部分文件元数据,即目标文件元数据,而在获取到发生变化的目标文件元数据后不是采用直接将其同步到分布式文件***中的其他文件***中,而是需要判断目标文件元数据的文件大小是否大于预设阈值,以及在判定大于时,对目标文件元数据执行存储到缓存队列中的缓存操作,进而按照设定的同步步骤将缓存队列中的目标文件元数据同步到其他文件***中,以避免直接同步数据的费时费力以及同步过程中的不稳定造成数据丢失等问题,从而高效、安全以及稳定地将变化的文件数据同步到其他文件***中,以将各个文件***同步成一致状态,实现分布式文件***的互联互通。
其中,可以通过检测是否有新建的文件数据或对原有文件数据是否有修改等检测文件元数据是否发生变化,并可以在检测到元文件数据发生变化时记录发生变化的文件数据,以便于提高数据同步的效率。
在上述技术方案中,优选地,所述同步模块具体包括:计算子模块,用于生成所述目标文件元数据的分割元数据散列信息;分割子模块,用于根据所述计算子模块生成的所述分割元数据散列信息将所述目标文件元数据分割为多个数据块;传输子模块,用于将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中,其中,所述分割元数据散列信息用于供所述其他文件***合并所述所多个数据块。
在该技术方案中,当将需要同步到其他文件***中的目标文件元数据存储到缓存队列后,首先通过散列算法计算生成目标文件元数据的分割元数据散列信息,继而根据分割元数据散列信息将该目标文件元数据打散分割为多个数据块,以数据块的形式逐个同步到其他文件***中,并同时将分割元数据散列信息传输到其他文件***中,以供其他文件***依据该分割元数据散列信息将接收到的多个数据块进行合并,得到完整的发生变化的目标文件元数据,从而确保发生变化的元数据在分布式文件***中的各个文件***之间的准确同步。
在上述任一技术方案中,优选地,所述获取模块还用于:在将所述目标文件元数据存储到所述缓存队列中时,获取所述文件元数据的文件属性信息,并将所述文件属性信息缓存到所述缓存队列中;以及所述传输子模块还用于:在将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中时,将所述文件属性信息同步到所述其他文件***中,其中,所述文件属性信息用于供所述其他文件***装载合并后的所述多个数据块。
在该技术方案中,还可以将文件元数据的文件属性信息与发生变化的目标文件元数据的分割元数据散列信息和分割得到的多个数据块一起同步到其他文件***中,以使其他文件***根据文件元数据的文件属性信息准确地定位到相同部分的文件元数据,进而将对多个数据块合并后的文件数据装载到本地文件***中,实现分布式文件***中的不同文件***之间的高效地、准确地、安全地以及稳定地数据同步。
其中,分割元数据散列信息是指对目标文件元数据进行分割后得到的文件元数据的文件属性信息,而文件属性信息一般包括:指示文件存储位置、文件大小、资源查找等的信息。
在上述任一技术方案中,优选地,所述检测模块具体用于:按周期检测所述文件元数据是否发生变化。
在该技术方案中,进一步地,可以按周期定时地将发生变化的文件元数据进行文件***之间的同步处理,而数据同步的定时周期可以根据用户的需求进行设置,比如半个小时、1个小时等,但最好间隔不要太长,以尽量确保分布式文件***中的所有文件***中的数据的实时同步。
在上述任一技术方案中,优选地,所述同步模块还用于:当所述判断模块判定所述文件大小小于或等于所述预设阈值时,将所述目标文件元数据同步到所述分布式文件***的其他文件***中;以及所述预设阈值的取值范围为大于1000KB。
在该技术方案中,可以在判定发生变化的目标文件元数据的文件大小小于或等于预设阈值时,直接将目标文件元数据同步到分布式文件***的其他文件***中,以在实现快速高效的数据同步的同时,可以有效地简化数据同步的流程步骤。
进一步地,具体可以发生变化的目标文件元数据的文件大小超过1000KB时,执行缓存分割同步的操作,从而避免由于数据过大导致同步失败或数据丢失等,进一步地,取值范围可以选为1000KB~1000MB,当然也可以根据实际情况适当地调整预设阈值的取值。
在上述任一技术方案中,优选地,所述同步模块具体用于:将所述目标文件元数据通过多线程同步到所述分布式文件***的其他文件***中。
在该技术方案中,分布式文件***的各文件***之间的数据同步过程是多线程的,可以有效地提高同步效率和安全性、以及实现海量文件的高效同步,且该过程可以为一个多对多的过程,即任一文件***可以与其他所有文件***之间进行数据同步,实现多个文件***之间的数据互相备份,多地DNS均可访问所有文件,多地互联互通。
根据本发明的第三方面,提出了一种文件***服务器,包括:如上第二方面实施例中任一项所述的基于分布式文件***的数据同步装置,因此,该文件***服务器具有如上第二方面的实施例中任一项所述的数据同步装置的所有有益效果,在此不再赘述。
本发明的技术方案,通过实时监控分布式文件***的各个文件***中的文件元数据的变化情况,以在任一文件***中的元数据发生变化时,可以高效、安全以及稳定地将变化的文件数据同步到其他文件***中,从而将各个文件***同步成一致状态,实现分布式文件***的互联互通。
附图说明
图1示出了本发明的实施例的基于分布式文件***的数据同步方法的流程示意图;
图2示出了本发明的实施例的对发生变化的文件元数据执行预设同步操作的方法流程示意图;
图3示出了本发明的实施例的基于分布式文件***的数据同步装置的示意框图;
图4示出了图3所示的同步模块的示意框图;
图5示出了根据本发明的实施例的分布式文件***数据同步的架构图;
图6示出了根据本发明的实施例的获取发生变化的文件元数据进行同步处理的架构图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本发明的实施例的基于分布式文件***的数据同步方法的流程示意图。
如图1所示,根据本发明的实施例的基于分布式文件***的数据同步方法,具体包括以下流程步骤:
步骤102,检测文件元数据是否发生变化。
步骤104,当检测到所述文件元数据发生变化时,获取发生变化的目标文件元数据。
步骤106,判断所述目标文件元数据的文件大小是否大于预设阈值。
步骤108,当判定所述文件大小大于所述预设阈值时,将所述目标文件元数据存储到缓存队列中。
步骤110,对所述缓存队列中的所述目标文件元数据执行预设同步操作,以将所述目标文件元数据同步到所述分布式文件***的其他文件***中。
在该实施例中,通过实时监控分布式文件***中的每个文件***中的文件元数据的变化情况,并在检测到任一文件***中的文件元数据发生变化时,获取发生变化的那部分文件元数据,即目标文件元数据,而在获取到发生变化的目标文件元数据后不是采用直接将其同步到分布式文件***中的其他文件***中,而是需要判断目标文件元数据的文件大小是否大于预设阈值,以及在判定大于时,对目标文件元数据执行存储到缓存队列中的缓存操作,进而按照设定的同步步骤将缓存队列中的目标文件元数据同步到其他文件***中,以避免直接同步数据的费时费力以及同步过程中的不稳定造成数据丢失等问题,从而高效、安全以及稳定地将变化的文件数据同步到其他文件***中,以将各个文件***同步成一致状态,实现分布式文件***的互联互通。
其中,可以通过检测是否有新建的文件数据或对原有文件数据是否有修改等检测文件元数据是否发生变化,并可以在检测到元文件数据发生变化时记录发生变化的文件数据,以便于提高数据同步的效率。
进一步地,可以在判定发生变化的目标文件元数据的文件大小小于或等于预设阈值时,直接将目标文件元数据同步到分布式文件***的其他文件***中,以在实现快速高效的数据同步的同时,可以有效地简化数据同步的流程步骤。
进一步地,在上述实施例中,可以按周期定时地将发生变化的文件元数据进行文件***之间的同步处理,而数据同步的定时周期可以根据用户的需求进行设置,比如半个小时、1个小时等,但最好间隔不要太长,以尽量确保分布式文件***中的所有文件***中的数据的实时同步。
进一步地,在上述任一实施例中,所述预设阈值的取值范围为大于1000KB,即可以发生变化的目标文件元数据的文件大小超过1000KB时,执行缓存分割同步的操作,从而避免由于数据过大导致同步失败或数据丢失等,进一步地,取值范围可以选为1000KB~1000MB,当然也可以根据实际情况适当地调整预设阈值的取值。
进一步地,可以通过如图2所示的具体实施例实现上述步骤110,包括以下流程步骤:
步骤S20,生成所述目标文件元数据的分割元数据散列信息。
步骤S22,根据所述分割元数据散列信息将所述目标文件元数据分割为多个数据块。
步骤S24,将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中,其中,所述分割元数据散列信息用于供所述其他文件***合并所述所多个数据块。
在该实施例中,当将需要同步到其他文件***中的目标文件元数据存储到缓存队列后,首先通过散列算法计算生成目标文件元数据的分割元数据散列信息,继而根据分割元数据散列信息将该目标文件元数据打散分割为多个数据块,以数据块的形式逐个同步到其他文件***中,并同时将分割元数据散列信息传输到其他文件***中,以供其他文件***依据该分割元数据散列信息将接收到的多个数据块进行合并,得到完整的发生变化的目标文件元数据,从而确保发生变化的元数据在分布式文件***中的各个文件***之间的准确同步。
进一步地,在上述任一实施例所述的步骤108中,还包括:获取所述文件元数据的文件属性信息,并将所述文件属性信息缓存到所述缓存队列中;以及上述任一实施例所述的步骤S24中,还包括:将所述文件属性信息同步到所述其他文件***中,其中,所述文件属性信息用于供所述其他文件***装载合并后的所述多个数据块。
在该实施例中,还可以将文件元数据的文件属性信息与发生变化的目标文件元数据的分割元数据散列信息和分割得到的多个数据块一起同步到其他文件***中,以使其他文件***根据文件元数据的文件属性信息准确地定位到相同部分的文件元数据,进而将对多个数据块合并后的文件数据装载到本地文件***中,实现分布式文件***中的不同文件***之间的高效地、准确地、安全地以及稳定地数据同步。
其中,分割元数据散列信息是指对目标文件元数据进行分割后得到的文件元数据的文件属性信息,而文件属性信息一般包括:指示文件存储位置、文件大小、资源查找等的信息。
进一步地,在上述任一实施例中,将所述目标文件元数据通过多线程同步到所述分布式文件***的其他文件***中。
在该实施例中,分布式文件***的各文件***之间的数据同步过程是多线程的,可以有效地提高同步效率和安全性、以及实现海量文件的高效同步,且为一个多对多的过程,即任一文件***可以与其他所有文件***之间进行数据同步,实现多个文件***之间的数据互相备份,多地DNS均可访问所有文件,多地互联互通。
图3示出了本发明的实施例的基于分布式文件***的数据同步装置的示意框图。
如图3所示,根据本发明的实施例的基于分布式文件***的数据同步装置300,包括:检测模块302、获取模块304、判断模块306、缓存模块308和同步模块310。
其中,所述检测模块302用于检测文件元数据是否发生变化;所述获取模块304用于当所述检测模块302检测到所述文件元数据发生变化时,获取发生变化的目标文件元数据;所述判断模块306用于判断所述获取模块304获取到的所述目标文件元数据的文件大小是否大于预设阈值;所述缓存模块308用于当所述判断模块306判定所述文件大小大于所述预设阈值时,将所述目标文件元数据存储到缓存队列中;所述同步模块310用于对所述缓存队列中的所述目标文件元数据执行预设同步操作,以将所述目标文件元数据同步到所述分布式文件***的其他文件***中。
在该实施例中,通过实时监控分布式文件***中的每个文件***中的文件元数据的变化情况,并在检测到任一文件***中的文件元数据发生变化时,获取发生变化的那部分文件元数据,即目标文件元数据,而在获取到发生变化的目标文件元数据后不是采用直接将其同步到分布式文件***中的其他文件***中,而是需要判断目标文件元数据的文件大小是否大于预设阈值,以及在判定大于时,对目标文件元数据执行存储到缓存队列中的缓存操作,进而按照设定的同步步骤将缓存队列中的目标文件元数据同步到其他文件***中,以避免直接同步数据的费时费力以及同步过程中的不稳定造成数据丢失等问题,从而高效、安全以及稳定地将变化的文件数据同步到其他文件***中,以将各个文件***同步成一致状态,实现分布式文件***的互联互通。
其中,可以通过检测是否有新建的文件数据或对原有文件数据是否有修改等检测文件元数据是否发生变化,并可以在检测到元文件数据发生变化时记录发生变化的文件数据,以便于提高数据同步的效率。
进一步地,可以在判定发生变化的目标文件元数据的文件大小小于或等于预设阈值时,直接将目标文件元数据同步到分布式文件***的其他文件***中,以在实现快速高效的数据同步的同时,可以有效地简化数据同步的流程步骤。
进一步地,在上述任一实施例中,所述检测模块302具体用于:按周期检测所述文件元数据是否发生变化。
在该实施例中,进一步地,可以按周期定时地将发生变化的文件元数据进行文件***之间的同步处理,而数据同步的定时周期可以根据用户的需求进行设置,比如半个小时、1个小时等,但最好间隔不要太长,以尽量确保分布式文件***中的所有文件***中的数据的实时同步。
进一步地,在上述任一实施例中,所述预设阈值的取值范围为大于1000KB。
在该实施例中,可以发生变化的目标文件元数据的文件大小超过1000KB时,执行缓存分割同步的操作,从而避免由于数据过大导致同步失败或数据丢失等,进一步地,取值范围可以选为1000KB~1000MB,当然也可以根据实际情况适当地调整预设阈值的取值。
进一步地,在上述任一实施例中,如图4所示,所述同步模块310具体包括:计算子模块3102、分割子模块3104和传输子模块3106。
其中,所述计算子模块3102用于生成所述目标文件元数据的分割元数据散列信息;所述分割子模块3104用于根据所述计算子模块3102生成的所述分割元数据散列信息将所述目标文件元数据分割为多个数据块;所述传输子模块3106用于将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中,其中,所述分割元数据散列信息用于供所述其他文件***合并所述所多个数据块。
在该实施例中,当将需要同步到其他文件***中的目标文件元数据存储到缓存队列后,首先通过散列算法计算生成目标文件元数据的分割元数据散列信息,继而根据分割元数据散列信息将该目标文件元数据打散分割为多个数据块,以数据块的形式逐个同步到其他文件***中,并同时将分割元数据散列信息传输到其他文件***中,以供其他文件***依据该分割元数据散列信息将接收到的多个数据块进行合并,得到完整的发生变化的目标文件元数据,从而确保发生变化的元数据在分布式文件***中的各个文件***之间的准确同步。
进一步地,在上述任一实施例中,所述获取模块304还用于:在将所述目标文件元数据存储到所述缓存队列中时,获取所述文件元数据的文件属性信息,并将所述文件属性信息缓存到所述缓存队列中;以及所述传输子模块3106还用于:在将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中时,将所述文件属性信息同步到所述其他文件***中,其中,所述文件属性信息用于供所述其他文件***装载合并后的所述多个数据块。
在该实施例中,还可以将文件元数据的文件属性信息与发生变化的目标文件元数据的分割元数据散列信息和分割得到的多个数据块一起同步到其他文件***中,以使其他文件***根据文件元数据的文件属性信息准确地定位到相同部分的文件元数据,进而将对多个数据块合并后的文件数据装载到本地文件***中,实现分布式文件***中的不同文件***之间的高效地、准确地、安全地以及稳定地数据同步。
其中,分割元数据散列信息是指对目标文件元数据进行分割后得到的文件元数据的文件属性信息,而文件属性信息一般包括:指示文件存储位置、文件大小、资源查找等的信息。
进一步地,在上述任一实施例中,所述同步模块310具体用于:将所述目标文件元数据通过多线程同步到所述分布式文件***的其他文件***中。
在该实施例中,分布式文件***的各文件***之间的数据同步过程是多线程的,可以有效地提高同步效率和安全性、以及实现海量文件的高效同步,且为一个多对多的过程,即任一文件***可以与其他所有文件***之间进行数据同步,实现多个文件***之间的数据互相备份,多地DNS均可访问所有文件,多地互联互通。
作为本发明的一个实施例,可以将上述实施例中任一项所述的基于分布式文件***的数据同步装置300应用于分布式文件***的任一文件***服务器中。
下面结合图5和图6对本发明的具体实施例进行说明。
如图5所示,分布式文件***的不同文件***之间通过同步模块监控各个文件***的meta(元)信息,通过GCSTML(Gain获取、Calculate计算、Slicing切割、Transform转换、Merge合并、Loading装载)过程将各个文件***同步成一致状态,同步过程高效、安全、稳定,实现了多机房分布式文件***的互联互通。
进一步地,本发明的实施例的分布式文件***数据同步的方法,包括:
检测文件元数据是否发生变化,如检测到文件元数据发生变化,则将发生变化的文件元数据同步到其他分布式文件***,如图6所示。
进一步地,当检测到的发生变化的文件元数据的文件大小如果大于设定的值,则进入GCSTL过程,具体地:
G过程:将发生变化的文件元数据(即目标文件元数据)读取到同步模块的缓存中,放入缓存队列中,同时将发生变化的文件属性信息读取到本地同步模块的缓存队列中;
C过程:从缓存队列取文件元数据,计算文件散列元数据信息(即散列值),将文件散列元数据信息保存到同步模块的散列表中;
S切割:根据文件散列元数据信息切割文件为多个小的数据块;
T转换:将文件散列元数据信息和文件元数据信息(描述原始文件元数据的属性信息,用来支持如指示存储位置、文件大小、历史数据、资源查找、文件记载等功能)生成文件分割执行计划(即根据文件大小对满足规定的文件元数据进行切割拆分)广播给其他文件***的同步模块,同时将切割得到的多个数据块广播给其他文件***的同步模块;
M合并:接收模块根据文件散列元数据信息合并文件;
L装载:接收方(即其他文件***)根据文件元数据信息,将合并后文件装载到本地文件***中。
进一步地,为了提高同步效率和安全性,GCSTML过程都是多线程的,可以有效解决海量文件高效同步,即本发明的实施例的同步过程是多对多的过程:任一文件***的同步模块可以和其他所有文件***实时同步文件,实现多文件***之间的互相备份、多地DNS都可访问所有文件以及多地互联互通。
进一步地,如果发生变化的文件元数据的文件大小小于设定的值,则直接将文件元数据信息和发生变化的文件元数据广播给其他文件***。
进一步地,在本发明的实施例中,切割文件依赖切割因子具有多样性:文件元数据、文件属性、网络环境(包括当前网络的带宽、稳定性),使用散列算法进行切割,不是简单的把大文件变小,而是依赖多个切割因子,进行动态切割,将大文件颗粒化,这种动态切割可以提高文件网络传输成功率,可以做到差网络高成功率的效果。
综上,通过本发明的实施例,可以多局点相互同步,通过配置,可以将一个文件向多个局点同步,并通过将复杂同步过程,拆解为多个阶段,操作方便、高效且准确。
以上结合附图详细说明了本发明的技术方案,通过实时监控分布式文件***的各个文件***中的文件元数据的变化情况,以在任一文件***中的元数据发生变化时,可以高效、安全以及稳定地将变化的文件数据同步到其他文件***中,从而将各个文件***同步成一致状态,实现分布式文件***的互联互通。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种基于分布式文件***的数据同步方法,其特征在于,包括:
检测文件元数据是否发生变化;
当检测到所述文件元数据发生变化时,获取发生变化的目标文件元数据;
判断所述目标文件元数据的文件大小是否大于预设阈值;
当判定所述文件大小大于所述预设阈值时,将所述目标文件元数据存储到缓存队列中;
对所述缓存队列中的所述目标文件元数据执行预设同步操作,以将所述目标文件元数据同步到所述分布式文件***的其他文件***中。
2.根据权利要求1所述的数据同步方法,其特征在于,所述对所述缓存队列中的所述目标文件元数据执行预设同步操作的步骤,具体包括:
生成所述目标文件元数据的分割元数据散列信息;
根据所述分割元数据散列信息将所述目标文件元数据分割为多个数据块;
将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中,其中,所述分割元数据散列信息用于供所述其他文件***合并所述所多个数据块。
3.根据权利要求2所述的数据同步方法,其特征在于,
在执行将所述目标文件元数据存储到所述缓存队列中的步骤时,还包括:获取所述文件元数据的文件属性信息,并将所述文件属性信息缓存到所述缓存队列中;以及
在执行将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中的步骤时,还包括:将所述文件属性信息同步到所述其他文件***中,其中,所述文件属性信息用于供所述其他文件***装载合并后的所述多个数据块。
4.根据权利要求1所述的数据同步方法,其特征在于,
按周期检测所述文件元数据是否发生变化。
5.根据权利要求1至4中任一项所述的数据同步方法,其特征在于,还包括:
当判定所述文件大小小于或等于所述预设阈值时,将所述目标文件元数据同步到所述分布式文件***的其他文件***中;以及
所述预设阈值的取值范围为大于1000KB。
6.根据权利要求1至4中任一项所述的数据同步方法,其特征在于,
将所述目标文件元数据通过多线程同步到所述分布式文件***的其他文件***中。
7.一种基于分布式文件***的数据同步装置,其特征在于,包括:
检测模块,用于检测文件元数据是否发生变化;
获取模块,用于当所述检测模块检测到所述文件元数据发生变化时,获取发生变化的目标文件元数据;
判断模块,用于判断所述获取模块获取到的所述目标文件元数据的文件大小是否大于预设阈值;
缓存模块,用于当所述判断模块判定所述文件大小大于所述预设阈值时,将所述目标文件元数据存储到缓存队列中;
同步模块,用于对所述缓存队列中的所述目标文件元数据执行预设同步操作,以将所述目标文件元数据同步到所述分布式文件***的其他文件***中。
8.根据权利要求7所述的数据同步装置,其特征在于,所述同步模块具体包括:
计算子模块,用于生成所述目标文件元数据的分割元数据散列信息;
分割子模块,用于根据所述计算子模块生成的所述分割元数据散列信息将所述目标文件元数据分割为多个数据块;
传输子模块,用于将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中,其中,所述分割元数据散列信息用于供所述其他文件***合并所述所多个数据块。
9.根据权利要求8所述的数据同步装置,其特征在于,
所述获取模块还用于:在将所述目标文件元数据存储到所述缓存队列中时,获取所述文件元数据的文件属性信息,并将所述文件属性信息缓存到所述缓存队列中;以及
所述传输子模块还用于:在将所述分割元数据散列信息和所述多个数据块同步到所述其他文件***中时,将所述文件属性信息同步到所述其他文件***中,其中,所述文件属性信息用于供所述其他文件***装载合并后的所述多个数据块。
10.根据权利要求7所述的数据同步装置,其特征在于,所述检测模块具体用于:按周期检测所述文件元数据是否发生变化。
11.根据权利要求7至10中任一项所述的数据同步装置,其特征在于,
所述同步模块还用于:当所述判断模块判定所述文件大小小于或等于所述预设阈值时,将所述目标文件元数据同步到所述分布式文件***的其他文件***中;以及
所述预设阈值的取值范围为大于1000KB。
12.根据权利要求7至10中任一项所述的数据同步装置,其特征在于,所述同步模块具体用于:
将所述目标文件元数据通过多线程同步到所述分布式文件***的其他文件***中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611072519.6A CN106599106A (zh) | 2016-11-28 | 2016-11-28 | 基于分布式文件***的数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611072519.6A CN106599106A (zh) | 2016-11-28 | 2016-11-28 | 基于分布式文件***的数据同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106599106A true CN106599106A (zh) | 2017-04-26 |
Family
ID=58593558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611072519.6A Pending CN106599106A (zh) | 2016-11-28 | 2016-11-28 | 基于分布式文件***的数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599106A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231254A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种对基于ocfs文件***的配置文件同步的方法及*** |
CN109462640A (zh) * | 2018-10-29 | 2019-03-12 | 上海掌门科技有限公司 | 一种元数据同步方法、数据端、交互***及介质 |
CN110019267A (zh) * | 2017-11-21 | 2019-07-16 | ***通信有限公司研究院 | 一种元数据更新方法、装置、***、电子设备及存储介质 |
CN111078593A (zh) * | 2019-12-29 | 2020-04-28 | 浪潮电子信息产业股份有限公司 | 一种对象元数据的访问方法、***及相关装置 |
CN111241203A (zh) * | 2020-02-10 | 2020-06-05 | 江苏满运软件科技有限公司 | Hive数据仓库同步方法、***、设备及存储介质 |
CN115150411A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 数据同步的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915338A (zh) * | 2012-09-18 | 2013-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件***数据同步的方法及文件*** |
US20150205815A1 (en) * | 2010-12-14 | 2015-07-23 | Commvault Systems, Inc. | Distributed deduplicated storage system |
CN105320775A (zh) * | 2015-11-11 | 2016-02-10 | 中科曙光信息技术无锡有限公司 | 数据的存取方法和装置 |
CN105530284A (zh) * | 2014-10-21 | 2016-04-27 | 三星Sds株式会社 | 文件同步方法 |
CN106156289A (zh) * | 2016-06-28 | 2016-11-23 | 北京百迈客云科技有限公司 | 一种读写对象存储***中的数据的方法以及装置 |
-
2016
- 2016-11-28 CN CN201611072519.6A patent/CN106599106A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150205815A1 (en) * | 2010-12-14 | 2015-07-23 | Commvault Systems, Inc. | Distributed deduplicated storage system |
CN102915338A (zh) * | 2012-09-18 | 2013-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件***数据同步的方法及文件*** |
CN105530284A (zh) * | 2014-10-21 | 2016-04-27 | 三星Sds株式会社 | 文件同步方法 |
CN105320775A (zh) * | 2015-11-11 | 2016-02-10 | 中科曙光信息技术无锡有限公司 | 数据的存取方法和装置 |
CN106156289A (zh) * | 2016-06-28 | 2016-11-23 | 北京百迈客云科技有限公司 | 一种读写对象存储***中的数据的方法以及装置 |
Non-Patent Citations (1)
Title |
---|
左大康: "地图学、遥感与地理信息***", 《现代地理学辞典》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231254A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种对基于ocfs文件***的配置文件同步的方法及*** |
CN110019267A (zh) * | 2017-11-21 | 2019-07-16 | ***通信有限公司研究院 | 一种元数据更新方法、装置、***、电子设备及存储介质 |
CN109462640A (zh) * | 2018-10-29 | 2019-03-12 | 上海掌门科技有限公司 | 一种元数据同步方法、数据端、交互***及介质 |
CN109462640B (zh) * | 2018-10-29 | 2021-07-20 | 上海掌门科技有限公司 | 一种元数据同步方法、数据端、交互***及介质 |
CN111078593A (zh) * | 2019-12-29 | 2020-04-28 | 浪潮电子信息产业股份有限公司 | 一种对象元数据的访问方法、***及相关装置 |
CN111078593B (zh) * | 2019-12-29 | 2022-08-19 | 浪潮电子信息产业股份有限公司 | 一种对象元数据的访问方法、***及相关装置 |
CN111241203A (zh) * | 2020-02-10 | 2020-06-05 | 江苏满运软件科技有限公司 | Hive数据仓库同步方法、***、设备及存储介质 |
CN115150411A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 数据同步的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599106A (zh) | 基于分布式文件***的数据同步方法及装置 | |
CN109218348B (zh) | 一种区块链中区块的确定方法及节点设备 | |
CN107465767B (zh) | 一种数据同步的方法和*** | |
EP3063925B1 (en) | Synchronizing event history for multiple clients | |
CN101826073B (zh) | 分布式数据库同步方法、设备及*** | |
EP3599558A1 (en) | Data synchronization in a distributed data storage system | |
US9867011B2 (en) | Identifying proximity history of computer devices | |
CN106528574A (zh) | 一种数据同步方法及设备 | |
EP2919130A1 (en) | Method and system for synchronizing distributed database | |
CN106354865B (zh) | 一种同步主从数据库的方法、装置和*** | |
CN104348859B (zh) | 文件同步方法、装置、服务器、终端及*** | |
CN110099114A (zh) | 区块链和ipfs协议的文件存储方法、***、终端及存储介质 | |
CN102523290B (zh) | 数据的处理方法、设备和*** | |
CN109739810A (zh) | 文件同步方法、服务器、客户端及具有存储功能的装置 | |
CN102571788B (zh) | 一种样本收集方法及*** | |
CN107656988A (zh) | 文档编辑方法及*** | |
CN105117382B (zh) | 一种文档协同方法及装置 | |
CN103248645A (zh) | Bt离线数据下载***及方法 | |
CN103780675B (zh) | 一种云盘文件同步方法和装置 | |
CN107018185A (zh) | 云存储***的同步方法和装置 | |
CN111198662B (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
CN105610947A (zh) | 一种高可用分布式队列服务实现方法、装置和*** | |
Li et al. | Optimal methods for coordinated enroute web caching for tree networks | |
CN108737255B (zh) | 负载均衡方法、负载均衡装置及服务器 | |
CN101741635A (zh) | 一种同步告警信息的方法、***及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170426 |