一种客户端与服务器之间的目录信息同步方法及系统与流程

文档序号:13763488阅读:386来源:国知局
一种客户端与服务器之间的目录信息同步方法及系统与流程

本发明涉及目录同步技术领域,特别涉及一种客户端与服务器之间的目录信息同步方法及系统。



背景技术:

当前,分布式文件系统通过为共享目录设置目录配额容量,能够很好地限制单个用户所能使用的存储容量,这在存储管理方面具有非常重要的意义。

然而,现有分布式文件系统的各个客户端之间很容易出现目录容量信息更新不及时的问题,由此很容易导致多客户端写入操作出现配额限制失效的情况。

综上所述可以看出,如何提升分布式文件系统中目录容量信息更新的时效性是目前有待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种客户端与服务器之间的目录信息同步方法及系统,提升了分布式文件系统中目录容量信息更新的时效性。其具体方案如下:

一种客户端与服务器之间的目录信息同步方法,应用于分布式文件系统,包括:

预先在服务器中创建用于记录所有客户端的目录容量信息的map图,并将该map图同步至每个客户端的本地缓存中;

若任一客户端中的目录数据发生变化,则将相应的目录数据变化量上报至所述服务器,以利用该目录数据变化量对所述服务器中的map图进行相应地更新;

将所述服务器中更新后的map图广播至所有客户端,以对每个客户端中的本地缓存数据进行相应地更新。

优选的,所述服务器的map图中,与任一客户端对应的目录容量信息均包括第一参数i、第二参数used和第三参数tmp;

其中,所述第一参数i表示客户端所对应的目录节点的标识符,所述第二参数used表示客户端的目录已用数据容量,所述第三参数tmp表示客户端的当前目录数据变化量。

优选的,所述若任一客户端中的目录数据发生变化,则将相应的目录数据变化量上报至所述服务器的过程,包括:

若任一客户端中的目录数据发生变化,则将相应的目录数据变化量保存至该客户端中的本地临时变化量tmp,然后将所述本地临时变化量tmp封装到一个变化量上报请求中,并将所述本地临时变化量tmp中保存的目录数据变化量转存至该客户端的本地历史临时变化量tmp_old中,然后对所述本地临时变化量tmp进行清空处理;

控制该客户端将所述变化量上报请求发送至所述服务器;

若所述服务器对所述变化量上报请求进行响应,则从所述变化量上报请求中提取出相应的目录数据变化量,并利用该目录数据变化量,对所述服务器的map图中相应的第三参数tmp进行赋值;

将经过赋值的第三参数tmp与所述服务器的map图中相应的第二参数used进行相加处理,以对该第二参数used进行更新,然后对所述经过赋值的第三参数tmp进行清空处理。

优选的,在所述服务器对所述变化量上报请求进行响应之后,还包括:对所述本地历史临时变化量tmp_old进行清空处理。

优选的,在所述控制该客户端将所述变化量上报请求发送至所述服务器的过程之后,还包括:

若所述服务器拒绝对该客户端发送的所述变化量上报请求进行响应,则继续保留所述本地历史临时变化量tmp_old中已存的数据,并且,在该客户端进行下一次的目录数据变化量上报过程的时候,将所述下一次的目录数据变化量上报过程所对应的目录数据变化量与所述本地历史临时变化量tmp_old中保存的数据进行相加处理,并将相加后得到的数值作为本次需要进行上报的目录数据变化量。

优选的,所述目录信息同步方法,还包括:

当一个新客户端挂载至所述服务器时,则为该客户端设置相应的目录配额,并将与该设置完目录配额的客户端所对应的当前目录容量信息发送至所述服务器中,以对所述服务器中的map图进行相应地更新,然后将所述服务器中更新后的map图广播至所有客户端。

优选的,在所述将相应的目录数据变化量上报至所述服务器的过程之前,还包括:

按照预设的上报周期,定期监测所有客户端的目录数据使用情况;

若在任一上报周期内监测到一个或一个以上的客户端的目录数据发生变化,则将该上报周期内目录数据发生变化的客户端所对应的目录数据变化量上报至所述服务器。

优选的,在所述将相应的目录数据变化量上报至所述服务器的过程之前,还包括:

当所述分布式文件系统中的客户端的目录数据发生变化,则对所有客户端的目录数据使用情况进行依次检查,以从所有客户端中挑选出目录数据变化量超过预设变化量阈值的客户端,然后将挑选出的客户端所对应的目录数据变化量上报至所述服务器。

本发明还公开了一种客户端与服务器之间的目录信息同步系统,应用于分布式文件系统,包括:

预处理模块,用于预先在服务器中创建用于记录所有客户端的目录容量信息的map图,并将该map图同步至每个客户端的本地缓存中;

第一目录同步模块,用于当任一客户端中的目录数据发生变化,则将相应的目录数据变化量上报至所述服务器,以利用该目录数据变化量对所述服务器中的map图进行相应地更新;

第二目录同步模块,用于将所述服务器中更新后的map图广播至所有客户端,以对每个客户端中的本地缓存数据进行相应地更新。

本发明中,目录信息同步方法,应用于分布式文件系统,包括:预先在服务器中创建用于记录所有客户端的目录容量信息的map图,并将该map图同步至每个客户端的本地缓存中;若任一客户端中的目录数据发生变化,则将相应的目录数据变化量上报至服务器,以利用该目录数据变化量对服务器中的map图进行相应地更新;将服务器中更新后的map图广播至所有客户端,以对每个客户端中的本地缓存数据进行相应地更新。可见,本发明预先在服务器中创建了用于记录所有客户端的目录容量信息的map图,并且在每个客户端的本地缓存中分别对上述map图进行保存,当任一客户端中的目录数据发生变化后,则将相应的目录数据变化量上报至上述服务器,以利用该目录数据变化量对服务器中的map图进行相应地更新,然后利用服务器中更新后的map图对所有客户端的本地缓存中的map图进行相应地更新。由此可见,本发明基于预先创建的map图,可以将任何客户端发生变化的目录容量信息快速地同步至分布式文件系统的所有客户端中,从而提升了分布式文件系统中目录容量信息更新的时效性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种客户端与服务器之间的目录信息同步方法流程图;

图2为本发明实施例公开的一种客户端与服务器之间的目录信息同步系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种客户端与服务器之间的目录信息同步方法,应用于分布式文件系统,参见图1所示,上述方法包括:

步骤S11:预先在服务器中创建用于记录所有客户端的目录容量信息的map图,并将该map图同步至每个客户端的本地缓存中。

可以理解的是,上述map图中至少记录了每个客户端所对应的目录节点的标识符以及每个客户端当前所对应的目录容量数据。并且,在服务器中创建完上述map图后,需要将该map图下发至每个客户端的自身缓存中进行保存。

步骤S12:若任一客户端中的目录数据发生变化,则将相应的目录数据变化量上报至服务器,以利用该目录数据变化量对服务器中的map图进行相应地更新。

也即,当任一客户端中的目录数据发生变化后,则可控制该客户端将相应的目录数据变化量上传至上述服务器,服务器接收到目录数据变化量后,将利用该目录数据变化量对服务器的map图中相应客户端的目录容量信息进行更新。

步骤S13:将服务器中更新后的map图广播至所有客户端,以对每个客户端中的本地缓存数据进行相应地更新。

为了让其他客户端及时地获知上述客户端中的目录数据发生变化的情况,本发明实施例需要在上述步骤S12的基础上,将服务器中更新后的map图同步至分布式文件系统的所有客户端中,以此使得每个客户端的本地缓存中的map图与服务器中的map图保持一致。

本发明实施例中,预先在服务器中创建了用于记录所有客户端的目录容量信息的map图,并且在每个客户端的本地缓存中分别对上述map图进行保存,当任一客户端中的目录数据发生变化后,则将相应的目录数据变化量上报至上述服务器,以利用该目录数据变化量对服务器中的map图进行相应地更新,然后利用服务器中更新后的map图对所有客户端的本地缓存中的map图进行相应地更新。由此可见,本发明实施例基于预先创建的map图,可以将任何客户端发生变化的目录容量信息快速地同步至分布式文件系统的所有客户端中,从而提升了分布式文件系统中目录容量信息更新的时效性。

本发明实施例公开了一种具体的客户端与服务器之间的目录信息同步方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:

上一实施例步骤S11中,需要预先在服务器中创建map图。具体的,在服务器的map图中,与任一客户端对应的目录容量信息均包括第一参数i、第二参数used和第三参数tmp;

其中,第一参数i表示客户端所对应的目录节点的标识符,第二参数used表示客户端的目录已用数据容量,第三参数tmp表示客户端的当前目录数据变化量。

进一步的,上一实施例步骤S12中,若任一客户端中的目录数据发生变化,则将相应的目录数据变化量上报至服务器的过程,具体包括下面步骤S121至S124;其中,

步骤S121:若任一客户端中的目录数据发生变化,则将相应的目录数据变化量保存至该客户端中的本地临时变化量tmp,然后将本地临时变化量tmp封装到一个变化量上报请求中,并将本地临时变化量tmp中保存的目录数据变化量转存至该客户端的本地历史临时变化量tmp_old中,然后对本地临时变化量tmp进行清空处理。

步骤S122:控制该客户端将上述变化量上报请求发送至服务器。

需要说明的是,当上述步骤S121中的变化量上报请求封装好后,便可以立刻进行上述步骤S122,而无需在对本地临时变化量tmp中的目录数据变换量进行转存以及清空处理后方进行步骤S122。

步骤S123:若服务器对变化量上报请求进行响应,则从变化量上报请求中提取出相应的目录数据变化量,并利用该目录数据变化量,对服务器的map图中相应的第三参数tmp进行赋值。

步骤S124:将经过赋值的第三参数tmp与服务器的map图中相应的第二参数used进行相加处理,以对该第二参数used进行更新,然后对经过赋值的第三参数tmp进行清空处理。也即,将经过赋值的第三参数tmp添加到服务器的map图中相应客户端的第二参数used,从而实现对该客户端对应的第二参数used的更新处理。

进一步的,在服务器对上述变化量上报请求进行响应之后,还包括:对本地历史临时变化量tmp_old进行清空处理。

另外,在上述步骤S122之后,也即,在控制该客户端将变化量上报请求发送至服务器的过程之后,本发明实施例还可以进一步包括:

若服务器拒绝对该客户端发送的变化量上报请求进行响应,则继续保留本地历史临时变化量tmp_old中已存的数据,并且,在该客户端进行下一次的目录数据变化量上报过程的时候,将下一次的目录数据变化量上报过程所对应的目录数据变化量与本地历史临时变化量tmp_old中保存的数据进行相加处理,并将相加后得到的数值作为本次需要进行上报的目录数据变化量,然后按照上述步骤S121至S124相类似的过程展开后续的目录数据变化量上报处理。

另外,本实施例中的目录信息同步方法,还可以进一步包括:

当一个新客户端挂载至服务器时,则为该客户端设置相应的目录配额,并将与该设置完目录配额的客户端所对应的当前目录容量信息发送至服务器中,以对服务器中的map图进行相应地更新,然后将服务器中更新后的map图广播至所有客户端。

另外,在上述步骤S12中的在将相应的目录数据变化量上报至服务器的过程之前,还可以包括:

按照预设的上报周期,定期监测所有客户端的目录数据使用情况,若在任一上报周期内监测到一个或一个以上的客户端的目录数据发生变化,则将该上报周期内目录数据发生变化的客户端所对应的目录数据变化量上报至服务器。

也即,本发明实施例可以预先设定与目录数据变化量相关的上报周期,然后将每个上报周期内目录数据发生变化的所有客户端所对应的目录数据变化量上报给服务器。

当然,本发明实施例也可以采用如下方式来确定需要上报目录数据变化量的客户端:当分布式文件系统中的客户端的目录数据发生变化,则对所有客户端的目录数据使用情况进行依次检查,以从所有客户端中挑选出目录数据变化量超过预设变化量阈值的客户端,然后将挑选出的客户端所对应的目录数据变化量上报至服务器。

也即,一旦发现分布式文件系统中存在客户端发生了目录数据变化的情况,则对分布式文件系统中的所有客户端的目录数据使用情况进行依次检查,例如按照客户端所对应的目录节点的标识符的大小顺序对所有客户端进行依次检查,以从挑选出目录数据变化量超过预设变化量阈值的所有客户端,然后将挑选出的所有客户端所对应的目录数据变化令上报至服务器。

进一步的,本发明实施例还可以为上述服务器设置map图查询接口,以便用户能够通过该map图查询接口对当前服务器中的map图进行查询处理。

相应的,本发明实施例还公开了一种客户端与服务器之间的目录信息同步系统,应用于分布式文件系统,参见图2所示,上述目录信息同步系统包括:

预处理模块21,用于预先在服务器中创建用于记录所有客户端的目录容量信息的map图,并将该map图同步至每个客户端的本地缓存中;

第一目录同步模块22,用于当任一客户端中的目录数据发生变化,则将相应的目录数据变化量上报至服务器,以利用该目录数据变化量对服务器中的map图进行相应地更新;

第二目录同步模块23,用于将服务器中更新后的map图广播至所有客户端,以对每个客户端中的本地缓存数据进行相应地更新。

关于上述目录信息同步系统更加详尽的工作过程可参考前述实施例中公开的相关内容,在此不再进行赘述。

本发明实施例中,预先在服务器中创建了用于记录所有客户端的目录容量信息的map图,并且在每个客户端的本地缓存中分别对上述map图进行保存,当任一客户端中的目录数据发生变化后,则将相应的目录数据变化量上报至上述服务器,以利用该目录数据变化量对服务器中的map图进行相应地更新,然后利用服务器中更新后的map图对所有客户端的本地缓存中的map图进行相应地更新。由此可见,本发明实施例基于预先创建的map图,可以将任何客户端发生变化的目录容量信息快速地同步至分布式文件系统的所有客户端中,从而提升了分布式文件系统中目录容量信息更新的时效性。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种客户端与服务器之间的目录信息同步方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1