文件修复方法及装置的制造方法

文档序号:9865599阅读:333来源:国知局
文件修复方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及数据处理领域,尤其涉及一种文件修复方法及装置。
【背景技术】
[0002]文件系统最初设计时,仅仅是为局域网内的本地文件服务的。而分布式文件系统将服务范围扩展到了整个网络。不仅改变了文件的存储和管理方式,也拥有了本地文件系统所无法具备的数据备份、数据安全等优点。分布式文件系统一般包含客户端,元数据服务器和数据服务器,客户端负责文件的访问接口制定,元数据服务器负责处理文件的布局及属性,数据服务器负责存储文件的数据内容。
[0003]对于分布式文件系统,在保证数据可靠性的基础上,“高吞吐,低延迟”是重要的性能要求。为了实现高并发的锁机制事务,需要使用读写锁对分布式文件系统进行并发控制,读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者又有写者。读者称之为对资源加读锁,写者称之为对资源加写锁。
[0004]为了保证数据的一致性,分布式系统中的文件修复流程需要在锁保护下进行,而正常的文件访问流程也需要在锁保护下进行。现有技术中,如果正常文件访问流程持有的锁被文件修复流程抢占,则需要再次加锁;如果正常文件访问流程需要加的锁被文件修复流程所持有,则需要等待文件修复流程释放锁之后,才能正常进行。这两种情况都会使正常文件访问流程的响应时间延长,影响正常业务的性能。

【发明内容】

[0005]本发明实施例提出了解决分布式文件系统中故障文件修复流程的执行会导致正常业务流程响应时间延长的问题的技术方案。
[0006]在一个方面,本发明实施例提供了一种文件修复方法,包括:
[0007]所述分布式文件系统中的文件修复操作被触发时,若目标修复文件被锁保护,则文件修复失败;
[0008]若所述目标修复文件未被锁保护,对所述目标修复文件执行加锁操作,设置锁属性为可抢占,对所述目标修复文件进行修复。
[0009]在另一个方面,本发明实施例提供了一种文件修复装置,包括:
[0010]触发模块,用于触发分布式文件系统中的文件修复操作;
[0011 ]判断模块,用于在所述文件修复操作被触发时,判断目标修复文件是否被锁保护,若所述目标修复文件被锁保护,则向所述触发模块返回所述文件修复操作触发失败;
[0012]修复控制模块,用于在所述目标修复文件未被锁保护时,对所述目标修复文件执行加锁操作,设置锁属性为可抢占,对所述目标修复文件进行修复。
[0013]当前分布式文件系统中存在着故障文件修复流程的执行会导致正常文件访问流程响应时间延长的问题,本发明实施例对修复流程的加锁进行限制,当修复流程试图对文件加锁时,如果该锁存在使用者,则不排队抢占锁,而是直接失败,等待下一轮修复时再进行尝试;当修复流程加锁成功后,设置锁属性为可抢占,从而避免了正常业务持有的锁被修复流程抢占,以及正常业务等待修复释放锁的情况,解决了故障文件修复流程的执行会导致正常业务流程响应时间延长的问题,降低了数据修复对正常业务的影响。
【附图说明】
[0014]下面将参照附图描述本发明的具体实施例,其中:
[0015]图1示出了本发明实施例中文件修复方法的流程示意图;
[0016]图2示出了本发明实施例中文件修复装置的结构示意图。
【具体实施方式】
[0017]为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
[0018]发明人在发明过程中注意到:为了保证数据的一致性,分布式系统中的文件修复流程需要在锁保护下进行,而正常的文件访问流程也需要在锁保护下进行。如果正常文件访问流程持有的锁被文件修复流程抢占,则需要再次加锁;如果正常文件访问流程需要加的锁被文件修复流程所持有,则需要等待文件修复流程释放锁之后,才能正常进行。这两种情况都会使正常文件访问流程的响应时间延长,影响正常业务的性能。
[0019]针对上述不足/基于此,本发明实施例提出了一种文件修复方法,下面进行说明。
[0020]图1示出了本发明实施例中文件修复方法的流程示意图,如图所示,包括:
[0021 ]步骤101、对分布式系统中的目标修复文件创建修复任务,本发明实施例中提及的分布式系统可采用基于龙腾服务器的分布式文件系统;
[0022]步骤102、分布式文件系统中的文件修复操作被触发后,判断目标修复文件是否被锁保护,若是,执行步骤103,否则,执行步骤104;
[0023]步骤103、文件修复失败,等待下一轮文件修复被触发,返回步骤102。
[0024]步骤104、对目标修复文件执行加锁操作,设置锁属性为可抢占,对目标修复文件进行修复。
[0025]相对于传统的做法,本发明对修复流程的加锁进行限制,当修复流程试图对文件加锁时,如果该锁存在使用者,则不排队抢占锁,而是直接失败,等待下一轮修复时再进行尝试;当修复流程加锁成功后,设置锁属性为可抢占,从而避免了正常业务持有的锁被修复流程抢占,以及正常业务等待修复释放锁的情况,降低了数据修复对正常业务的影响。
[0026]进一步地,当修复流程加锁成功,锁属性被设置为可抢占之后,当正常业务需要对目标修复文件进行修改时,若目标修复文件正在被修复,则将文件修复的锁置为无效,同时对目标修复文件执行加写锁操作,以此达到抢占锁的效果。
[0027]进一步地,为了保证文件修复任务的顺利完成,在目标修复文件修复过程中和/或修复完成后,检查文件修复的锁是否被抢占,如果文件修复的锁被抢占,则重新对目标修复文件执行加锁操作,并在加锁成功后,重新对目标修复文件执行修复操作;在目标修复文件修复过程中和/或修复完成后,文件修复的锁未被抢占,则在文件修复完成后,对该文件进行标注,下一轮文件修复时不再修复该文件。
[0028]基于同一发明构思,本发明实施例中还提供了一种文件修复装置,由于这些设备解决问题的原理与一种文件修复方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
[0029]图2示出了本发明实施例中文件修复装置的结构示意图;如图所示,装置可以包括:
[0030]触发模块,用于触发分布式文件系统中的文件修复操作;
[0031 ]判断模块,用于在文件修复操作被触发时,判断目
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1