一种配额归还实现方法、装置、设备及计算机存储介质与流程

文档序号:13804836阅读:180来源:国知局
一种配额归还实现方法、装置、设备及计算机存储介质与流程

本发明实施例涉及分布式文件系统技术领域,特别是涉及一种配额归还实现方法、装置、设备及计算机可读存储介质。



背景技术:

客户端在用户写入数据时需要向元数据服务器进行配额预申请,当成功申请到配额值后,客户端写入数据,若当客户端写入数据完毕时,所申请到的配额值有剩余,则会将剩余的配额值保留,以用于下一次的数据写入。但是,当多个客户端在用户写入数据完毕时都有剩余配额值,并且元数据服务器没有足够的配额值供其他的客户端申请时,会造成其他客户端在用户写入数据时申请配额值失败,并且具有配额剩余值的客户端所占用的配额无法被其他的客户端利用,从而降低了配额空间的利用率,使系统性能受到一定的影响。

因此,如何提供一种解决上述技术问题的配额归还实现方法、装置、设备及计算机可读存储介质成为本领域的技术人员目前需要解决的问题。



技术实现要素:

本发明实施例的目的是提供一种配额归还实现方法、装置、设备及计算机可读存储介质,在使用过程中提高了配额空间的利用率,在一定程度上提升了系统性能。

为解决上述技术问题,本发明实施例提供了一种配额归还实现方法,包括:

依据用户发送的写操作请求向元数据服务端发送权限申请信息及配额值申请信息,所述配额值申请信息中包括预申请配额值;

获取所述元数据服务器返回的授权信息及分配配额值;

接收所述用户写入的数据,并记录用户本次写入数据的时间戳,并依据所述本次写入数据的数据量更新所述分配配额值,得到当前的配额剩余值;

判断所述本次写入数据的时间戳与当前时间戳的差值是否大于预设值,如果是,则判断所述当前的配额剩余值是否大于0,如果是,则将所述当前的配额剩余值归还至元数据服务器,以便所述元数据服务器依据所述当前的配额剩余值更新总配额剩余值。

可选的,在所述接收所述元数据服务器返回的授权信息及分配配额值之后还包括:

判断所述分配配额值是否达到本次所需配额值,如果是,则进入下一步;否则,向所述用户返回超额提示信息;所述本次所需配额值依据所述写操作请求进行确定。

可选的,在所述将所述当前的配额剩余值归还至元数据服务器之后还包括:

接收所述元数据服务器返回的总配额剩余值更新成功的消息后,将当前的配额剩余值更新为0。

可选的,所述方法还包括:

将与所述本次写入数据的时间戳相关的记录进行清除。

本发明实施例相应的提供了一种配额归还实现装置,包括:

发送模块,用于依据用户发送的写操作请求向元数据服务端发送权限申请信息及配额值申请信息,所述配额值申请信息中包括预申请配额值;

接收模块,用于获取所述元数据服务器返回的授权信息及分配配额值;用于接收所述用户写入的数据;

记录模块,用于记录用户本次写入数据的时间戳;

第一更新模块,用于依据所述本次写入数据的数据量更新所述分配配额值,得到当前的配额剩余值;

第一判断模块,用于判断所述本次写入数据的时间戳与当前时间戳的差值是否大于预设值,如果是,则触发第二判断模块;

所述第二判断模块,用于判断所述当前的配额剩余值是否大于0,如果是,则触发归还模块;

所述归还模块,用于将所述当前的配额剩余值归还至元数据服务器,以便所述元数据服务器依据所述当前的配额剩余值更新总配额剩余值。

可选的,所述装置还包括第三判断模块和返回模块;

所述第三判断模块,用于判断所述分配配额值是否达到本次所需配额值,如果是,则触发所述记录模块;否则,触发返回模块;所述本次所需配额值依据所述写操作请求进行确定;

所述返回模块,用于向所述用户返回超额提示信息。

可选的,所述装置还包括:

第二更新模块,用于接收所述元数据服务器返回的总配额剩余值更新成功的消息后,将当前的配额剩余值更新为0。

本发明实施例提供了一种配额归还实现设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述所述配额归还实现方法的步骤。

本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述配额归还实现方法的步骤。

本发明实施例提供了一种配额归还实现方法、装置、设备及计算机可读存储介质,包括依据用户发送的写操作请求向元数据服务端发送权限申请信息及配额值申请信息,配额值申请信息中包括预申请配额值;获取元数据服务器返回的授权信息及分配配额值;接收用户写入的数据,并记录用户本次写入数据的时间戳,并依据本次写入数据的数据量更新分配配额值,得到当前的配额剩余值;判断本次写入数据的时间戳与当前时间戳的差值是否大于预设值,如果是,则判断当前的配额剩余值是否大于0,如果是,则将当前的配额剩余值归还至元数据服务器,以便元数据服务器依据当前的配额剩余值更新总配额剩余值。

在本发明实施例中,接收到用户发送的写操作请求后,需要向元数据服务器申请权限和配额值,并且依据用户写入的数据量对所申请到的分配配额值进行更新,并通过本次写入数据的时间戳和当前时间戳的差值是否大于预设值来判断是否写入数据完成,当本次写入数据的时间戳和当前时间戳的差值大于预设值时说明没有新增数据,此时当前的配额剩余值大于零,则说明所申请到的配额值还有剩余,则将当前的配额剩余值归还至元数据服务器,元数据服务器接收到客户端所归还的配额剩余值后对元数据服务器的总配额剩余值进行更新,从而便于其他客户端在申请配额值时申请成功,提高了配额空间的利用率,在一定程度上提升了系统性能。

附图说明

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

图1为本发明实施例提供的一种配额归还实现方法的流程示意图;

图2为本发明实施例提供的一种配额归还实现装置的结构示意图。

具体实施方式

本发明实施例提供了一种配额归还实现方法、装置、设备及计算机可读存储介质,在使用过程中提高了配额空间的利用率,在一定程度上提升了系统性能。

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

请参照图1,图1为本发明实施例提供的一种配额归还实现方法的流程示意图。

该方法包括:

s11:依据用户发送的写操作请求向元数据服务端发送权限申请信息及配额值申请信息,配额值申请信息中包括预申请配额值;

具体的,用户写入数据时需要调用客户端的写接口,在接收到用户发送的写操作请求后,客户端需要进行权限申请和配额值申请,其中,权限申请信息可以包括写权限、写缓存权限cap的申请信息及用户id,配额值申请信息包括预申请配额值,该预申请配额值可以根据本次所需配额值进行确定,本次所需配额值可以根据用户发送的写操作请求进行确定,具体的该写操作请求中可以包括目标文件的大小、开始写入的位置及本次写入数据的大小等信息,依据目标文件的大小、开始写入的位置及本次写入数据的大小可以计算出本次所需配额值。例如,本次所需配额值为3m,则预申请配额值可以大于等于3m。

s12:获取元数据服务器返回的授权信息及分配配额值;

需要说明的是,在元数据服务器接收到客户端发送的权限申请信息及配额值申请信息后,根据权限申请信息确定授权信息,根据预申请配额值确定分配配额值。具体的,可以根据预申请配额值和元数据服务器中的总的剩余配额值确定分配配额值,当元数据服务器中的总的剩余配额值大于预申请配额值时,所确定的分配配额值即可为预申请配额值,当元数据服务器中的总的剩余配额值小于预申请配额值时,可以将所有的剩余配额值确定为分配配额值。

客户端将所确定的授权信息及分配配额值发送至客户端,客户端在接收到元数据元数据服务器返回的授权信息和分配份额信息后,还可以对所接收到的消息进行解析,得到相应的分配配额值pre_value,并且还可以对所申请到的分配配额值进行判断,当分配配额值小于本次所需配额值时,则不允许用户写入数据,并向用户返回超额的提示信息,以提示用户本次写入的数据量过大;当分配配额值达到本次所需配额值时,则可以直接接收用户写入的数据。

s13:接收用户写入的数据,并记录用户本次写入数据的时间戳,并依据本次写入数据的数据量更新分配配额值,得到当前的配额剩余值;

具体的,在接收到用户本次写入的数据后,记录用户本次写入数据的时间戳,并且依据本次写入数据的数据量对客户端所申请到的分配配额值进行更新,也即利用分配配额值减去本次写入数据的数据量得到当前的配额剩余值。

需要说明的是,每次用户写入数据时均执行s13的操作,记录各次用户写入时的时间戳。

s14:判断本次写入数据的时间戳与当前时间戳的差值是否大于预设值,如果是,则进入s15;

对于每次用户写入完成后,都实时判断本次写入数据的时间戳与当前时间戳的差值是否大于预设值,如果当前时间戳与本次写入数据的时间戳的差值小于预设值,则说明用户还没有写入完毕,若当前时间戳与本次写入数据的时间戳的差值大于预设值,则可以判断出用户已写入完毕。需要指出的是,用于与当前时间戳进行差值计算的本次写入数据的时间戳为最后一次用户写入数据时所记录的时间戳,也即将与当前时间戳最接近的那一次写入对应的时间戳作为计算差值用的本次写入数据的时间戳。

s15:判断当前的配额剩余值是否大于0,如果是,则进入s16;

需要说明的是,当用户写入完毕时,客户端侧当前的配额剩余值不为零,说明此时客户端中还剩余有一定的配额,此时可以将客户端中的当前配额剩余值归还至元数据服务器中。

s16:将当前的配额剩余值归还至元数据服务器,以便元数据服务器依据当前的配额剩余值更新总配额剩余值。

具体的,客户端在确定用户写入完成和当前的配额剩余值大于0时,将当前的配额剩余值归还至元数据服务器,具体可以利用ceph的消息将当前的配额剩余值归还至元数据服务器,元数据服务器在接收到客户端归还的配额剩余值后,对元数据服务器端的总配额剩余值进行更新,也即更新后的总配额剩余值为客户端归还的配额剩余值加上元数据服务器当前的总配额剩余值。当该客户端或其他的客户端再次申请配额值时,可以根据更新后的总配额剩余值为所申请的客户端分配配额值,从而提高客户端申请成功的概率,增加了配额空间的利用率。

进一步的,在s16将当前的配额剩余值归还至元数据服务器之后,该方法还可以包括:

接收元数据服务器返回的总配额剩余值更新成功的消息后,将当前的配额剩余值更新为0。

需要说明的是,在元数据服务器更新总配额剩余值后,还可以向客户端返回更新成功的消息,并且,客户端在接收到元数据服务器返回的更新成功的消息后,将本地当前的配额剩余值更新为0,也即,此时客户端侧没有剩余的配额值,所下次用户写入数据时,则需要依据用户写入数据的所需配额量向元数据服务器进行申请。

更进一步的,该方法还可以包括:

将与本次写入数据的时间戳相关的记录进行清除。

具体的,在用户写入完成后,可以将记录用户每次写入数据的时间戳的相关记录进行清除,待下一次用户再次需要写入数据时,再重新记录相应的时间戳,从而减少内存占用率。

在本发明实施例中,接收到用户发送的写操作请求后,需要向元数据服务器申请权限和配额值,并且依据用户写入的数据量对所申请到的分配配额值进行更新,并通过本次写入数据的时间戳和当前时间戳的差值是否大于预设值来判断是否写入数据完成,当本次写入数据的时间戳和当前时间戳的差值大于预设值时说明没有新增数据,此时当前的配额剩余值大于零,则说明所申请到的配额值还有剩余,则将当前的配额剩余值归还至元数据服务器,元数据服务器接收到客户端所归还的配额剩余值后对元数据服务器的总配额剩余值进行更新,从而便于其他客户端在申请配额值时申请成功,提高了配额空间的利用率,在一定程度上提升了系统性能。

相应的本发明实施例还公开了一种配额归还实现装置,具体请参照图2,图2为本发明实施例提供的一种配额归还实现装置的结构示意图。在上述实施例的基础上:

该装置包括:

发送模块1,用于依据用户发送的写操作请求向元数据服务端发送权限申请信息及配额值申请信息,配额值申请信息中包括预申请配额值;

接收模块2,用于获取元数据服务器返回的授权信息及分配配额值;用于接收用户写入的数据;

记录模块3,用于记录用户本次写入数据的时间戳;

第一更新模块4,用于依据本次写入数据的数据量更新分配配额值,得到当前的配额剩余值;

第一判断模块5,用于判断本次写入数据的时间戳与当前时间戳的差值是否大于预设值,如果是,则触发第二判断模块6;

第二判断模块6,用于判断当前的配额剩余值是否大于0,如果是,则触发归还模块7;

归还模块7,用于将当前的配额剩余值归还至元数据服务器,以便元数据服务器依据当前的配额剩余值更新总配额剩余值。

可选的,该装置还包括第三判断模块和返回模块;

第三判断模块,用于判断分配配额值是否达到本次所需配额值,如果是,则触发记录模块;否则,触发返回模块;本次所需配额值依据写操作请求进行确定;

返回模块,用于向用户返回超额提示信息。

可选的,该装置还包括:

第二更新模块,用于接收元数据服务器返回的总配额剩余值更新成功的消息后,将当前的配额剩余值更新为0。

需要说明的是,在本发明实施例中,接收到用户发送的写操作请求后,需要向元数据服务器申请权限和配额值,并且依据用户写入的数据量对所申请到的分配配额值进行更新,并通过本次写入数据的时间戳和当前时间戳的差值是否大于预设值来判断是否写入数据完成,当本次写入数据的时间戳和当前时间戳的差值大于预设值时说明没有新增数据,此时当前的配额剩余值大于零,则说明所申请到的配额值还有剩余,则将当前的配额剩余值归还至元数据服务器,元数据服务器接收到客户端所归还的配额剩余值后对元数据服务器的总配额剩余值进行更新,从而便于其他客户端在申请配额值时申请成功,提高了配额空间的利用率,在一定程度上提升了系统性能。

本发明实施例提供了一种配额归还实现设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述配额归还实现方法的步骤。

本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述配额归还实现方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

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

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其他形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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