利索能及
我要发布
收藏
专利号: 2019110886011
申请人: 杭州海康威视系统技术有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-08-05
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种锁定云存储中对象的方法,其特征在于,应用于云存储系统的管理服务器,所述方法包括:接收客户端发送的对象锁定请求,并确定所述对象锁定请求对应的各个待锁定对象的对象标识;

为所述对象锁定请求添加分布式锁,并遍历所述各个待锁定对象的对象标识,在遍历到每一对象标识时,判断当前的已占锁定容量、当前的第一预占锁定容量、当前的第二预占锁定容量,以及具有该对象标识的待锁定对象的空间占用量的总容量,是否小于或者等于预定的锁定容量上限;如果是,遍历该对象标识成功,并更新当前的第二预占锁定容量;其中,所述第一预占锁定容量为:未执行和正在执行的锁定任务所对应待锁定对象的空间占用量总和;所述第二预占锁定容量为所述对象锁定请求中,对象标识遍历成功且未建立锁定任务的待锁定对象的空间占用量总和;

在成功遍历完毕所述各个待锁定对象的对象标识后,分别为所述各个待锁定对象建立锁定任务,更新当前的第一预占锁定容量和当前的第二预占锁定容量,并释放所述分布式锁;

按照预定的执行顺序,执行当前存在的每个锁定任务;当任一锁定任务被成功执行时,更新当前的第一预占锁定容量和当前的已占锁定容量。

2.根据权利要求1所述的方法,其特征在于,针对当前存在的每个锁定任务,在执行该锁定任务之前,还包括:判断该锁定任务是否过期,如果未过期,继续执行该锁定任务;否则,删除该锁定任务,并更新当前的第一预占锁定容量。

3.根据权利要求2所述的方法,其特征在于,所述对象锁定请求中还携带有各个待锁定对象的请求锁定时长;

所述分别为所述各个待锁定对象建立锁定任务,包括:

针对每个待锁定对象,新建一锁定任务,并将该待锁定对象的对象标识和该待锁定对象的请求锁定时长,添加至新建的锁定任务的任务信息中;

所述判断该锁定任务是否过期,包括:

判断当前系统时间点与该锁定任务的建立时间点之差,是否大于该锁定任务的任务信息包含的锁定时长,如果大于,判定该锁定任务过期,如果不大于,判定该锁定任务未过期。

4.根据权利要求1所述的方法,其特征在于,对每个锁定任务的执行过程包括:向存有该锁定任务所对应待锁定对象的目标存储节点,请求锁定该锁定对象;

接收所述目标存储节点的反馈信息;当所述反馈信息为锁定成功时,该锁定任务被成功执行。

5.根据权利要求1所述的方法,其特征在于,在遍历到每一对象标识时,还包括:在判断当前的已占锁定容量、当前的第一预占锁定容量、当前的第二预占锁定容量,以及具有该对象标识的待锁定对象的空间占用量的总容量,是否小于或者等于预定的锁定容量上限之前,判断当前存在的锁定任务中,是否存在具有该对象标识的待锁定对象对应的锁定任务;

如果不存在,执行所述判断当前的已占锁定容量、当前的第一预占锁定容量、当前的第二预占锁定容量,以及具有该对象标识的待锁定对象的空间占用量的总容量,是否小于或者等于预定的锁定容量上限的步骤;

如果存在,继续遍历该对象标识的下一对象标识。

6.一种锁定云存储中对象的装置,其特征在于,应用于云存储系统的管理服务器,包括:接收模块,用于接收客户端发送的对象锁定请求,并确定所述对象锁定请求对应的各个待锁定对象的对象标识;

遍历模块,用于为所述对象锁定请求添加分布式锁,并遍历所述各个待锁定对象的对象标识;在遍历到每一对象标识时,判断当前的已占锁定容量、当前的第一预占锁定容量、当前的第二预占锁定容量,以及具有该对象标识的待锁定对象的空间占用量的总容量,是否小于或者等于预定的锁定容量上限;如果是,遍历该对象标识成功,更新当前的第二预占锁定容量;其中,所述第一预占锁定容量为:未执行和正在执行的锁定任务所对应待锁定对象的空间占用量总和;所述第二预占锁定容量为所述对象锁定请求中,对象标识遍历成功且未建立锁定任务的待锁定对象的空间占用量总和;

建立模块,用于在所述遍历模块成功遍历完毕所述各个待锁定对象的对象标识后,分别为所述各个待锁定对象建立锁定任务,更新当前的第一预占锁定容量和当前的第二预占锁定容量,并释放所述分布式锁;

执行模块,用于按照预定的执行顺序,执行当前存在的每个锁定任务;当任一锁定任务被成功执行时,更新当前的第一预占锁定容量和当前的已占锁定容量。

7.根据权利要求6所述的装置,其特征在于,所述执行模块,还用于针对当前存在的每个锁定任务,在执行该锁定任务之前,判断该锁定任务是否过期,如果未过期,继续执行该锁定任务;否则,删除该锁定任务,并更新当前的第一预占锁定容量。

8.根据权利要求7所述的装置,其特征在于,所述对象锁定请求中还携带有各个待锁定对象的请求锁定时长;

所述建立模块分别为所述各个待锁定对象建立锁定任务,具体为:

针对每个待锁定对象,新建一锁定任务,并将该待锁定对象的对象标识和该待锁定对象的请求锁定时长,添加至新建的锁定任务的任务信息中;

所述执行模块判断该锁定任务是否过期,具体为:

判断当前系统时间点与该锁定任务的建立时间点之差,是否大于该锁定任务的任务信息包含的锁定时长,如果大于,判定该锁定任务过期,如果不大于,判定该锁定任务未过期。

9.根据权利要求6所述的装置,其特征在于,所述执行模块对每个锁定任务的执行过程包括:向存有该锁定任务所对应待锁定对象的目标存储节点,请求锁定该锁定对象;

接收所述目标存储节点的反馈信息;当所述反馈信息为锁定成功时,该任务被成功执行。

10.根据权利要求6所述的装置,其特征在于,所述遍历模块,还用于在遍历到每一对象标识时,在判断当前的已占锁定容量、当前的第一预占锁定容量、当前的第二预占锁定容量,以及具有该对象标识的待锁定对象的空间占用量的总容量,是否小于或者等于预定的锁定容量上限之前,判断当前存在的锁定任务中,是否存在具有该对象标识的待锁定对象对应的锁定任务;

如果不存在,执行所述判断当前的已占锁定容量、当前的第一预占锁定容量、当前的第二预占锁定容量,以及具有该对象标识的待锁定对象的空间占用量的总容量,是否小于或者等于预定的锁定容量上限的步骤;

如果存在,继续遍历该对象标识的下一对象标识。

11.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

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

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑5任一所述的方法步骤。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑5任一所述的方法步骤。