发明内容
本申请实施例的目的在于提出了一种基于分布式多存储服务的循环存储方法和系统,解决多存储服务下,快速锁定查找需要循环的时间文件,并且能够让所有任务都可以达到循环到同一个时间等技术问题。
第一方面,本申请实施例提供了一种基于分布式多存储服务的循环存储方法,该方法包括:
S1:构建存储任务表、基准线时间表和存储服务表,其中,基准线时间表包括公共时间基准线和存储服务表中每个存储服务对应的独立时间基准线;
S2:响应于检测到待处理存储服务的存储空间小于预留空间阈值,获取基准线时间表中的公共时间基准线和待处理存储服务的独立时间基准线;
S3:通过比较公共时间基准线与待处理存储服务的独立时间基准线的大小,获得当前公共时间基准线,并将当前公共时间基准线更新至基准线时间表中的当前公共时间基准线;
S4:响应于当前公共时间基准线大于待处理存储服务的独立时间基准线,获得待处理存储服务的删除时间基准线,并删除删除时间基准线前的存储任务表中的待删除存储数据;以及
S5:将删除时间基准线作为最新的公共时间基准线,继续比较待处理存储服务的独立时间基准线与最新的公共时间基准线的大小,继续执行S3-S4步骤,直至待处理存储服务的空间大于预留空间阈值。在该方法中,针对循环存储无法高效的查找删除和多存储服务下所有任务的一致性问题,提出一种高效的,准确的,有效的数据存储循环机制,解决多存储服务下,快速锁定查找需要循环的时间文件,并且能够让所有任务都可以达到循环到同一个时间。
在一些实施例中,预留空间阈值通过计算存储任务表中的存储总任务数和单个预留空间阈值获得,其中,单个预留空间阈值=每个任务的预留时间阈值*空间存储均值,空间存储均值为0.5MB/s。预留空间阈值的设置,便于执行主体进行满空间判断,且及时触发删除数据步骤。
在一些实施例中,S3步骤中的当前公共时间基准线包括:
响应于公共时间基准线等于待处理存储服务的独立时间基准线,更新当前公共时间基准线,当前公共时间基准线=公共时间基准线+预留时间阈值;
或者,
响应于公共时间基准线大于待处理存储服务的独立时间基准线,将公共时间基准线作为待处理存储服务的独立时间基准线;
或者,
响应于公共时间基准线小于待处理存储服务的独立时间基准线,更新当前公共时间基准线,当前公共时间基准线=待处理存储服务的独立时间基准线+预留时间阈值。
在该方法中,当前公共时间基准线的设置,便于利用公共时间基准线和存储服务中独立时间基准线进行更新数据库中的公共时间基准线,获得统一的删除时间基准线,解决流媒体存储服务通过基准时间线快速一致的循环删除任务。
在一些实施例中,S4步骤还包括汇总存储服务表中正常运行的工作存储服务个数,并对工作存储服务进行删除储存任务分配,具体包括以下子步骤:
遍历存储服务表中的每个存储服务的心跳时间,汇总心跳时间的更新时间间隔小于等于设置阈值的工作存储服务;
获取待删除存储数据的总记录y和工作存储服务的总个数n,并对待删除存储数据的记录和工作存储服务进行从小到大的排序,则第x个存储服务被分配删除的待删除存储数据的记录编号分别为第x条、第x+n条、第x+2n条、…、第x+mn条,其中,x+mn≤y,y、n、x和m表示正整数。
在该方法中,利用心跳时间获得正常存储服务和异常储存服务,解决当有存储服务异常时,其所在的任务也能够被一致的循环删除的技术问题。
在一些实施例中,更新时间间隔通过当前时间减去最近更新的心跳时间获得,其中,心跳时间表示每个存储服务在固定时间内更新一次服务运行的最新时间。
第二方面,本申请实施例提供了一种基于分布式多存储服务的循环存储系统,该系统包括:
构建数据库模块,配置用于构建存储任务表、基准线时间表和存储服务表,其中,基准线时间表包括公共时间基准线和存储服务表中每个存储服务对应的独立时间基准线;
存储空间判断模块,配置用于响应于检测到待处理存储服务的存储空间小于预留空间阈值,获取基准线时间表中的公共时间基准线和待处理存储服务的独立时间基准线;
当前公共时间基准线模块,配置用于通过比较公共时间基准线与待处理存储服务的独立时间基准线的大小,获得当前公共时间基准线,并将当前公共时间基准线更新至基准线时间表中的当前公共时间基准线;
释放存储空间模块,配置用于响应于当前公共时间基准线大于待处理存储服务的独立时间基准线,获得待处理存储服务的删除时间基准线,并删除删除时间基准线前的存储任务表中的待删除存储数据;以及
预留空间判断模块,配置用于将删除时间基准线作为最新的公共时间基准线,继续比较待处理存储服务的独立时间基准线与最新的公共时间基准线的大小,继续执行删除时间基准线模块和释放存储空间模块,直至待处理存储服务的空间大于预留空间阈值。
在一些实施例中,当前公共时间基准线模块还包括:
响应于公共时间基准线等于待处理存储服务的独立时间基准线,更新当前公共时间基准线,当前公共时间基准线=公共时间基准线+预留时间阈值;
或者,
响应于公共时间基准线大于待处理存储服务的独立时间基准线,将公共时间基准线作为待处理存储服务的独立时间基准线;
或者,
响应于公共时间基准线小于待处理存储服务的独立时间基准线,更新当前公共时间基准线,当前公共时间基准线=待处理存储服务的独立时间基准线+预留时间阈值。
在一些实施例中,系统还包括删除储存任务分配模块,删除储存任务分配模块配置用于汇总存储服务表中正常运行的工作存储服务个数,并对工作存储服务进行删除储存任务分配,具体包括:
遍历存储服务表中的每个存储服务的心跳时间,汇总心跳时间的更新时间间隔小于等于设置阈值的工作存储服务;
获取待删除存储数据的总记录y和工作存储服务的总个数n,并对待删除存储数据的记录和工作存储服务进行从小到大的排序,则第x个存储服务被分配删除的待删除存储数据的记录编号分别为第x条、第x+n条、第x+2n条、…、第x+mn条,其中,x+mn≤y,y、n、x和m表示正整数。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的一种基于分布式多存储服务的循环存储方法和系统,针对以上的循环存储无法高效的查找删除和多存储服务下所有任务的一致性问题。提出一种高效的,准确的,有效的数据存储循环机制,解决多存储服务下,快速锁定查找需要循环的时间文件,并且能够让所有任务都可以达到循环到同一个时间。本申请从存储空间和存储时间双重条件触发空间释放操作,不仅解决流媒体存储服务通过基准时间线快速一致的循环删除任务,而且解决当有流媒体服务异常时,其所在的任务也能够被一致的循环删除。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
继续参考图1,其示出了根据本申请的一种基于分布式多存储服务的循环存储方法的一个实施例的流程图100。该方法包括以下步骤:
步骤101,构建存储任务表、基准线时间表和存储服务表,其中,基准线时间表包括公共时间基准线和存储服务表中每个存储服务对应的独立时间基准线。
在本实施例中,先构数据库,包括存储任务表、基准线时间表、存储服务表,其中,储存任务表包括摄像机的唯一id,存储服务的唯一id,并记录摄像头存储于哪个存储服务中。基准线时间表包括公共时间基准线和各个存储服务的独立时间基准线,其中,公共时间基准线只有一条记录,独立时间基准线为每个存储服务都有自己的一条独立时间基准线。存储服务表记录所有的存储服务和各个存储服务对应的心跳时间。
在一些具体的实施例中,存储服务初次启动时,在数据库(mongo)中创建公共的、本服务的两个时间基准线,创建本服务的心跳时间。时间到秒。基准线是存储服务开始存储的时间,也就是数据记录的最开始时间。心跳时间每分钟更新记录一次服务运行的最新时间。
步骤102,响应于检测到待处理存储服务的存储空间小于预留空间阈值,获取基准线时间表中的公共时间基准线和待处理存储服务的独立时间基准线。
在本实施例中,预留空间阈值通过计算存储任务表中的存储总任务数和单个预留空间阈值获得,其中,单个预留空间阈值=每个任务的预留时间阈值*空间存储均值,空间存储均值为0.5MB/s。录像空间满预留阈值,简称RTime,按单位小时计算,如RTime=1小时,正常1秒钟1080P的存储空间均值为500KB,也就是0.5MB。1个摄像头的预留时间阈值下的空间大小为0.5*60*60*RTime=1800RTime单位MB,当云存储剩余空间<任务表总数*1800RTime时触发删除存储服务的删除任务。
步骤103,通过比较公共时间基准线与待处理存储服务的独立时间基准线的大小,获得当前公共时间基准线,并将当前公共时间基准线更新至基准线时间表中的当前公共时间基准线。
在本实施例中,公共时间基准线与待处理存储服务的独立时间基准线的大小包括以下三种情况:
第一种情况,待处理存储服务从数据库获取公共时间基准线和待处理存储服务的独立时间基准线,如果公共时间基准线小于待处理存储服务的独立时间基准线,更新数据库中的公共时间基准线为当前公共时间基准线,当前公共时间基准线=待处理存储服务的独立时间基准线+RTime,此时,公共时间基准线已经大于待处理存储服务的独立时间基准线,响应于当前公共时间基准线大于待处理存储服务的独立时间基准线时,当前公共时间基准线为待处理存储服务的删除时间基准线,然后,待处理存储服务获取到删除时间基准线,通过删除时间基准线快速定位到所删除的任务时间文件,快速删除。
第二种情况,待处理存储服务从数据库获取公共时间基准线和待处理存储服务的独立时间基准线,如果公共时间基准线大于待处理存储服务的独立时间基准线,说明已经有存储服务已经开始删除。待处理存储服务的独立时间基准线=公共时间基准线,公共时间基准线=当前公共时间基准线,响应于当前公共时间基准线大于待处理存储服务的独立时间基准线时,当前公共时间基准线为待处理存储服务的删除时间基准线,然后,待处理存储服务获取到删除时间基准线,通过删除时间基准线快速定位到所删除的任务时间文件,快速删除。
第三种情况,待处理存储服务从数据库获取公共时间基准线和待处理存储服务的独立时间基准线,如果公共时间基准线等于待处理存储服务的独立时间基准线,说明已经删除但是空间还是不够,首先,更新公共时间基准线=公共时间基准线+RTime。然后下一次判断自动执行第二种情况。
步骤104,响应于当前公共时间基准线大于待处理存储服务的独立时间基准线,获得待处理存储服务的删除时间基准线,并删除删除时间基准线前的存储任务表中的待删除存储数据。
在本实施例中,删除时间基准线大于待处理存储服务的独立时间基准线,保证待处理存储服务都可以进行统一基准线的删除处理操作,每个存储任务要删除的时间,通过时间快速定位到所删除的任务时间文件,快速删除。保证了所有存储服务的存储时间的一致性,避免下次删除任务的对储存服务中的存储任务进行年月日的查找比对,不仅提高删除任务高效性的同时,而且保证了运行效率。
在一些具体的实施例中,步骤104还包括汇总存储服务表中正常运行的工作存储服务个数,并对工作存储服务进行删除储存任务分配,具体包括以下子步骤:
遍历存储服务表中的每个存储服务的心跳时间,汇总心跳时间的更新时间间隔小于等于设置阈值的工作存储服务;更新时间间隔通过当前时间减去最近更新的心跳时间获得,其中,心跳时间表示每个存储服务在固定时间内更新一次服务运行的最新时间。
获取待删除存储数据的总记录y和工作存储服务的总个数n,并对待删除存储数据的记录和工作存储服务进行从小到大的排序,则第x个存储服务被分配删除的待删除存储数据的记录编号分别为第x条、第x+n条、第x+2n条、…、第x+mn条,其中,x+mn≤y,y、n、x和m表示正整数。
为了防止任一服务异常导致这服务所在的存储任务删除失败,与其他服务的任务循环删除不一致。从数据库(mongo)获取任务总数y和所有服务信息。根据服务的状态信息判断服务是否异常,其中,心跳时间,每分钟更新一次,超过3分钟未更新认定异常,也就是当前时间-记录时间>3分钟。所有服务列表是一样的,所以每个服务都能计算出所有正常的储存服务有n个,本待处理存储服务排第x个。任务分配是x、x+n、x+2n、…、x+mn直到超过y,无任务分配。
步骤105,将删除时间基准线作为最新的公共时间基准线,继续比较待处理存储服务的独立时间基准线与最新的公共时间基准线的大小,继续执行S103-S104步骤,直至待处理存储服务的空间大于预留空间阈值。
本申请提出一种基于分布式多存储服务的循环存储方法,首先,通过待处理储存服务的预留空间阈值判断触发循环删除任务,响应于当前公共时间基准线大于待处理储存服务的独立时间基准线,待处理服务获取到删除时间基准线,并删除待处理储存服务内的删除基准线前的待删除储存数据,通过循环删除存储服务内的待删除存储数据,实现逐段释放云存储空间的操作。其次,当数据库中的基准线时间表的唯一公共时间基准线发生更新,储存服务表中的其他待处理存储服务,各自互不干扰地获取到更新后的当前公共时间基准线,并与其独立时间基准线进行大小比较,循环执行步骤104释放存储空间和步骤105判断预留空间的操作,直至每个待处理储存服务的空间大于预留空间阈值,以及存储服务列表中的每个存储服务的独立时间基准线等于数据库中最后更新的公共时间基准线,结束本轮的循环删除任务。通过对待处理存储服务的删除时间基准线的统一,反向实现了存储任务表中储存数据时间的一致性。
参考图2,其示出了根据本申请的一种基于分布式多存储服务的循环存储方法的另一个实施例的流程图,具体包括以下子步骤:
步骤201,判断是否存在基准线。若“是”,执行步骤202;若“否”,则写入MRS1服务的独立时间基准线,并将MRS1服务的独立时间基准线写入公共时间基准线,完善数据库信息。
步骤202,判断MRS1,MRS2,MRS3服务中的空间是否不足。若“是”,则从数据库中获取公共时间基准线和MRS1,MRS2,MRS3服务对应的独立时间基准线,并执行步骤203。
步骤203,公共和服务基准线判断。从数据库中获取公共时间基准线和MRS1,MRS2,MRS3服务对应的独立时间基准线,首先,将公共时间基准线和空间不足存储服务的独立时间基准线的判断:
A:若公共时间基准线小于独立时间基准线,则更新当前公共时间基准线,当前公共基准线=服务时间基准线+预留时间阈值,并将当前公共时间基准线更新到数据库的公共时间基准线,重新执行步骤202。
B:若公共时间基准线等于独立时间基准线,则更新当前公共时间基准线,当前公共基准线=公共时间基准线+预留时间阈值,并将当前公共时间基准线更新到数据库的公共时间基准线,执行步骤202。
C:若公共时间基准线大于独立时间基准线,则更新空间不足存储服务的独立时间基准线,空间不足存储服务的独立时间基准线=公共时间基准线,根据时间和服务获取摄像头任务,执行删除后继续执行步骤204。其中,执行完A步骤或B步骤后,通过循环执行步骤202的空间判断,都会执行C步骤。
步骤204,公共和服务基准线判断。响应于空间不足存储服务的独立时间大于数据库更新后的最新公共时间基准线,继续循环C步骤;否则,空间不足存储服务的独立时间小于等于数据库更新后的最新公共时间基准线,则结束。
继续参考图3,其示出了根据本申请的一种基于分布式多存储服务的循环存储方法的分配任务的示意图,空间不足存储服务从数据库获取所有服务状态和所有任务总数y,服务状态根据每分钟写入数据库的心跳时间判断,若心跳时间大于3min,则判断出异常储存服务和正常储存服务,直接剔除异常储存服务,并获得n个正常储存服务,并对正常储存服务进行从大到小的排序,如空间不足存储服务排在第x个,则通过算法得到分配到删除第x,第x+n,第x+n+n个…删除任务。
在一些具体的实际例中:
有三个MRS1、MRS2、MRS3存储服务,每个存储服务有自己的服务唯一Id,简称MRSId;
有九个C1,C2,C3,C4,C5,C6,C7,C8,C9的摄像头,1个任务对应1个摄像头,每个摄像头都有1个唯一的摄像机Id,简称Cid。
数据库包括摄像机任务表:CId和MRSId,记录摄像头在哪个存储服务存储;服务状态表:MRSId和心跳时间,记录存储服务;基准时间线表:MRSId/Public和基准时间,记录存储服务的基准线和公共基准线,公共基准线只有1条记录,标识公共基准线只有1个Id(Public);摄像头录像记录表:CId和开始时间,结束时间。记录摄像头存储的录像记录,代表摄像头在哪个时间段有存储。
判断条件,当云存储剩余空间<任务表总数y*1800RTime时触发满空间判断,其中,录像空间满预留阈值RTime,单位小时,如RTime=1小时,正常1秒钟1080P的存储空间均值为500KB,也就是0.5MB。1个摄像头的预留时间阈值下的空间大小为0.5*60*60*RTime=1800RTime单位MB;获取服务状态表所有数据,获取当前时间T1,T1-服务心跳时间>3分钟表示异常服务。
如MRS1获取表内所有服务状态表所有数据,判断3次。T1-MRS1的时间;T1-MRS2的时间;T1-MRS3的时间;获取到正常的服务MRS1,MRS2,MRS3:
1.MRS1 10101104141700
1.MRS2 10101104141700
3.MRS3 10101104141700
若MRS1比MRS2,MRS3先启动,判断数据库基准时间线表里没有公共时间基准线,数据库基准时间线表会创建1条记录。
4.Public 10101104141300
5.MRS1 10101104141300
后启动的MRS2,MRS3判断已有公共时间基准线,只会创建自己的基准线
6.MRS2 10101104141600
7.MRS3 10101104141700
服务状态表每个服务每分钟记录一次当前时间:
8.MRS1 10101104141700
9.MRS2 10101104141700
10.MRS3 10101104141700
9个摄像机任务表记录了9个记录,MRS1存储C1,C2,C3;MRS2存储C4,C5,C6;MRS3存储C7,C8,C9;
1.C1 MRS1
1.C2 MRS1
3.C3 MRS1
4.C4 MRS2
5.C5 MRS2
6.C6 MRS2
7.C7 MRS3
8.C8 MRS3
9.C9 MRS3
存储服务会一直在检测满空间判断,如果满空间了。开始执行删除数据步骤。
1.如果是存储服务MRS1比MRS2,MRS3先检测到满空间。MRS1从数据库基准时间线获取到公共基准线和本服务MRS1基准线数据:
Public 10101104141300
MRS1 10101104141600
判断时间相等。公共时间线等于本服务的基准时间线,说明已经删除但是空间还是不够,首先执行更新当前公共时间基准线=公共时间基准线+RTime,并将当前公共基准线更新到数据库中的公共时间基准线,此时数据库里数据为
Public 10101104151300
MRS1 10101104141300
当MRS1,MRS2,MRS3此时的各自基准线都比公共的基准线小。公共时间基准线大于本服务的基准时间线,说明有服务已经开始删除。每个服务执行本服务的基准时间线=公共时间基准线;然后存储服务获取到此时的公共时间基准线,每个存储任务要删除的时间,通过时间快速定位到所删除的任务时间文件,快速删除。
执行完之后,此时的数据库里数据为
Public 10101104151300
MRS1 10101104151300
MRS2 10101104151300
MRS3 10101104151300
如果一个空间判断还不够,此时的公共时间基准线与各个存储服务的独立时间基准线的时间相等,继续执行以上步骤。
2.如果是MRS2或者MRS3比MRS1先检测空间不足
获取到公共时间基准线和本服务MRS2独立时间基准线数据:
Public 10101104141300
MRS2 10101104141600
判断公共时间基准线线比MRS2独立时间基准线小。执行当前公共时间基准线=MRS2存储服务的基准时间线+RTime,并将当前公共基准线更新到数据库中的公共时间基准线,此时数据库中的公共时间基准线已经大于MRS2独立时间基准线。
此时数据库里数据为
Public 10101104151600
MRS2 10101104141600
当MRS1,MRS2,MRS3此时的各自基准线都比数据库中的公共时间基准线小。每个服务执行本服务的独立时间基准线=公共时间基准线;然后存储服务获取到此时数据库的公共时间基准线,知道要每个存储任务要删除的时间,通过时间快速定位到所删除的任务时间文件,快速删除。
执行完之后,此时的数据库里数据为
Public 10101104151600
MRS1 10101104151600
MRS2 10101104151600
MRS3 10101104151600
如果一个空间判断还不够,所有服务按1步骤公共时间基准线等于服务独立时间准线继续。不管是1步骤还是2步骤,每个服务都会删除到数据库中最新的公共时间基准线的时间。
为了防止任一服务异常导致这服务所在的存储任务删除失败,与其他服务的任务循环删除不一致。从数据库(mongo)获取任务总数y和所有服务信息。根据服务的状态信息判断服务是否异常,其中,心跳时间,每分钟更新一次,超过3分钟未更新认定异常,也就是当前时间-记录时间>3分钟。因为所有服务列表是一样的,所以每个服务都能计算出所有正常的存储服务有n个,本服务排第x个。任务分配是第x个,第x+n个,第x+n+n个…删除任务,直到超过y,无任务分配。
1.假设此时无服务异常退出,在服务列表中:
MRS1 10101104151600排1
MRS2 10101104151600排1
MRS3 10101104151600排3
MRS1,MRS2,MRS3执行了异常服务判断,此时每个服务都能获一样的正常服务数量n=3.MRS1排第1个x=1,MRS2排第2个x=2,MRS3排第3个x=3。
这时候获取摄像头列表总数y=9
于是MRS1分配到删除摄像头为x,x+3,x+3+3...计算出C1,C4,C7
于是MRS2分配到删除摄像头为x,x+3,x+3+3...计算出C2,C5,C8
于是MRS3分配到删除摄像头为x,x+3,x+3+3...计算出C3,C6,C9
2.假设此时MRS2异常退出了,此时MRS2的服务状态已经3分钟没更新了。,此时表内数据如下
MRS1 10101104151600排1
MRS2 10101104151300
MRS3 10101104151600排2
MRS1和MRS3执行了异常服务判断,此时两个服务都获取到正常的服务MRS1和MRS3数量n=2.MRS1排第1个x=1。MRS3排第2个x=2。
这时候获取摄像头列表总数y=9
于是MRS1分配到删除摄像头为x,x+2,x+2+2...计算出C1,C3,C5,C7,C9
于是MRS3分配到删除摄像头为x,x+2,x+2+2...计算出C2,C4,C6,C8
这样即使MRS1异常。也能删除MRS1所存储的C4,C5,C6。
继续参考图4,其示出了根据本申请的一种基于分布式多存储服务的循环存储系统的一个实施例的结构示意图,如图4所示,异常资金分析系统400包括以下单元。
构建数据库模块401,配置用于构建存储任务表、基准线时间表和存储服务表,其中,基准线时间表包括公共时间基准线和存储服务表中每个存储服务对应的独立时间基准线。
存储空间判断模块402,配置用于响应于检测到待处理存储服务的存储空间小于预留空间阈值,获取基准线时间表中的公共时间基准线和待处理存储服务的独立时间基准线。
当前公共时间基准线模块403,配置用于通过比较公共时间基准线与待处理存储服务的独立时间基准线的大小,获得当前公共时间基准线,并将当前公共时间基准线更新至基准线时间表中的当前公共时间基准线。
释放存储空间模块404,配置用于,配置用于响应于当前公共时间基准线大于待处理存储服务的独立时间基准线,获得待处理存储服务的删除时间基准线,并删除删除时间基准线前的存储任务表中的待删除存储数据。
预留空间判断模块405,配置用于将删除时间基准线作为最新的公共时间基准线,继续比较待处理存储服务的独立时间基准线与最新的公共时间基准线的大小,继续执行删除时间基准线模块和释放存储空间模块,直至待处理存储服务的空间大于预留空间阈值。
在一些具体的实施例中,当前公共时间基准线模块403还包括:
响应于公共时间基准线等于待处理存储服务的独立时间基准线,更新当前公共时间基准线,当前公共时间基准线=公共时间基准线+预留时间阈值;
或者,
响应于公共时间基准线小于待处理存储服务的独立时间基准线,更新当前公共时间基准线,当前公共时间基准线=待处理存储服务的独立时间基准线+预留时间阈值;
或者,
响应于公共时间基准线小于待处理存储服务的独立时间基准线,当前公共时间基准线=待处理存储服务的独立时间基准线+预留时间阈值。
在一些具体的实施例中,系统还包括删除储存任务分配模块406,删除储存任务分配模块配置用于汇总存储服务表中正常运行的工作存储服务个数,并对工作存储服务进行删除储存任务分配,具体包括:
遍历存储服务表中的每个存储服务的心跳时间,汇总心跳时间的更新时间间隔小于等于设置阈值的工作存储服务;
获取待删除存储数据的总记录y和工作存储服务的总个数n,并对待删除存储数据的记录和工作存储服务进行从小到大的排序,则第x个存储服务被分配删除的待删除存储数据的记录编号分别为第x条、第x+n条、第x+2n条、…、第x+mn条,其中,x+mn≤y,y、n、x和m表示正整数。
下面参考图5,其示出了适于用来实现本申请实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可根据存储在只读存储器(ROM)501中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中存储系统500操作所需的各种程序和数据。CPU501、ROM 501以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括输入部分506、输出部分507、存储部分508、通信部分509、驱动器510、可拆卸介质511。驱动器510可根据需要连接至I/O接口505,可拆卸介质511根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可被实现为计算机软件程序。可以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码。程序代码可完全地在训练者计算机上执行、部分地在训练者计算机上执行、作为一个独立的软件包执行、部分在训练者计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到训练者计算机,或者可连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可通过软件的方式实现,也可通过硬件的方式来实现。所描述的模块也可设置在处理器中,例如,可描述为:一种处理器包括构建数据库模块、存储空间判断模块、当前公共时间基准线模块、释放存储空间模块和预留空间判断模块。其中,这些模块的名称在某种情况下并不构成对该单元本身的限定,例如,构建数据库模块还可被描述为“构建存储任务表、基准线时间表和存储服务表,其中,基准线时间表包括公共时间基准线和存储服务表中每个存储服务对应的独立时间基准线”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:构建存储任务表、基准线时间表和存储服务表,其中,基准线时间表包括公共时间基准线和存储服务表中每个存储服务对应的独立时间基准线;响应于检测到待处理存储服务的存储空间小于预留空间阈值,获取基准线时间表中的公共时间基准线和待处理存储服务的独立时间基准线;通过比较公共时间基准线与待处理存储服务的独立时间基准线的大小,获得当前公共时间基准线,并将当前公共时间基准线更新至基准线时间表中的当前公共时间基准线;响应于当前公共时间基准线大于待处理存储服务的独立时间基准线,获得待处理存储服务的删除时间基准线,并删除删除时间基准线前的存储任务表中的待删除存储数据;以及将删除时间基准线作为最新的公共时间基准线,继续比较待处理存储服务的独立时间基准线与最新的公共时间基准线的大小,继续执行上述步骤,直至待处理存储服务的空间大于预留空间阈值。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。