用来对一储存系统进行版本管理的方法与装置与流程

文档序号:12119873阅读:147来源:国知局
用来对一储存系统进行版本管理的方法与装置与流程

本发明涉及数据储存系统的自动管理运作,尤其涉及一种用来对一储存系统进行版本管理的方法与相关装置。



背景技术:

依据现有技术,在具备版本控制的传统储存系统中,当版本总数量超过最大版本数量限制,就必须从中选择数个版本进行删除。一些传统的版本管理方法会产生某些问题。例如:所述传统的版本管理方法中的一种会删除最旧的一(些)版本,尤其是会先删除具有最早创建时间(Creation Time)的版本,直至总版本数量符合最大版本数量的上限。其缺点是:当建立新版本的频率较高,旧的版本会很快地遭到删除,且版本创建时间分布不均。另外,所述传统的版本管理方法中的另一种会进行对应固定时间的删除,尤其是针对各个不同的时段采用不同的版本上限(诸如,一天内,每小时最多保留一个版本;一个月内,每天最多保留一个版本;及/或超出一个月,每周最多保留一个版本)。其缺点是:用户可能被迫必须为各个不同的时段设定不同的版本上限。另外,最新的版本可能马上被删除;若在第一个时段内创建的版本数量超过第一个时段的版本数量上限,最新创建的版本可能被删除。此外,时段的计算方式可能导致不预期的删除结果;若时段的计算方式是以最新版本时间(或目前时间)来作为计算参考,所有保留版本的创建时间分布可能会不如预期。举例来说,假设一天最多保留一个版本。在上述计算参考为「2015/4/21,00:00」的状况下,创建时间为「2015/4/19,11:00」的版本和创建时间为「2015/4/18,15:00」的版本,分别落在第1至2天和第2至3天。然而,在上述计算参考为「2015/4/21,12:00」的状况下,这两个版本都落在第2至3天,导致这两个版本中的一个版本被删除。

由以上可知,现有技术无法在不造成额外的问题(诸如一些副作用)的状况下,妥善地解决既有的问题。因此,需要一种新颖的方法及相关的架构,以在较少副作用、或不造成副作用的状况下,妥善地解决既有的问题。



技术实现要素:

本发明的目的之一在于公开一种用来对一储存系统进行版本管理的方法与相关装置,以解决上述问题。

本发明的另一目的在于公开一种用来对一储存系统进行版本管理的方法与相关装置,以提升自动管理运作的效能。

本发明的至少一较佳实施例中公开一种用来对一储存系统进行版本管理的方法,所述方法包括有下列步骤:依据至少一规则,分别决定所述储存系统中的一档案的多个版本的重要性,其中所述多个版本中的任一版本的重要性与所述任一版本的下一版本和所述任一版本之间的时间差(Time Difference)具有正相关(Positive Correlation),而所述任一版本的重要性与所述档案的一最新版本和所述任一版本之间的时间差具有负相关(Negative Correlation);以及删除所述多个版本当中对应于最低重要性的一个或多个版本。

本发明于公开上述方法的同时,也对应地公开一种用来对一储存系统进行版本管理的装置,其中所述装置可包括所述储存系统的至少一部分(例如:一部分或全部)。所述装置包括:一接口电路,用来耦接所述储存系统的至少一储存器(或储存装置),其中所述至少一储存器是用来储存所述储存系统中的多个档案;以及一处理电路,耦接至所述接口电路,用来控制所述储存系统的运作。尤其是,依据至少一规则,所述处理电路分别决定所述储存系统中的一档案的多个版本的重要性,其中所述多个版本中的任一版本的重要性与所述任一版本的下一版本和所述任一版本之间的时间差具有正相关,而所述任一版本的重要性与所述档案的一最新版本和所述任一版本之间的时间差具有负相关。另外,所述处理电路删除所述多个版本当中对应于最低重要性的一个或多个版本。

本发明的有益之处在于,本发明的方法与相关装置可在较少副作用、或不造成副作用的状况下,妥善地解决既有的问题。尤其是,本发明的方法与相关装置可基于多个版本的创建时间(Creation Time)选择欲删除的版本,使得版本密度(Version Density)随着离最新版本(Latest Version)的时间长度增加而降低。因此,本发明的方法与相关装置可有效提升自动管理运作的效能,并且不会有浪费储存空间或误删版本的问题。

附图说明

图1为依据本发明一实施例的一种用来对一储存系统进行版本管理的装置的示意图。

图2绘示图1所示的装置于一实施例中所涉及的一版本管理特性曲线。

图3绘示图2所示的版本管理特性曲线于一实施例中所涉及的一版本分布。

图4为依据本发明一实施例的一种用来对一储存系统进行版本管理的方法的流程图。

图5绘示图4所示的方法于一实施例中所涉及的一工作流程。

图6绘示图4所示的方法于一实施例中所涉及的一组版本。

图7绘示图6所示实施例中的所述组版本的删除顺序。

图8绘示图4所示的方法于另一实施例中所涉及的一组版本及其删除结果。

图9绘示图4所示的方法于另一实施例中所涉及的一组版本及其删除结果。

图10绘示图4所示的方法于另一实施例中所涉及的一组版本及其删除结果。

其中,附图标记说明如下:

100 装置

105 网络模块

110 处理电路

110P 程序模块

120 接口电路

130 储存器

200 方法

210、220、310、320、330 步骤

300 工作流程

T 时间

VLatest 最新版本

v1,v2,v3,v4,v5,v6,v7,v8, 版本识别符

v9,v10,v11

具体实施方式

图1为依据本发明一实施例的一种用来对一储存系统进行版本管理的装置100的示意图。装置100包括所述储存系统的至少一部分(例如:一部分或全部)。例如:装置100可包括所述储存系统的一部分,尤其是用来控制所述储存系统的电路。又例如:装置100可包括所述储存系统的整体。所述储存系统100的例子可包括(但不限于):服务器、网络附加储存(Network Attached Storage,NAS)。

如图1所示,装置100可包括一网络模块105、一处理电路110与一接口电路120,且还可包括至少一储存器(例如:一个或多个储存器),其可简称为储存器130。处理电路110可控制所述储存系统的运作,并可作为用来控制所述储存系统的上述电路的一例。另外,网络模块105可用来提供一网络服务予所述储存系统,而接口电路120可用来耦接所述储存系统的上述至少一储存器,诸如储存器130,其中上述至少一储存器可用来储存所述储存系统中的多个档案。上述至少一储存器的例子可包括(但不限于):固态硬盘(Solid State Drive,SSD)、硬式磁盘驱动器(Hard Disk Drive,HDD)。

实际上,处理电路110可执行一程序模块110P以控制所述储存系统,而程序模块110P可取自处理电路110之内或之外。程序模块110P的例子可包括(但不限于):软件码(Software Code)、固件码(Firmware Code)。这只是为了说明的目的而已,并非对本发明的限制。在某些实施例中,处理电路110可通过利用特殊应用集成电路(Application-Specific Integrated Circuit,ASIC)来实施,其中程序模块110P可代表内建于所述特殊应用集成电路中的程序模块。

图2绘示图1所示的装置100于一实施例中所涉及的一版本管理特性曲线。执行程序模块110P的处理电路110可基于多个版本的创建时间(Creation Time)选择欲删除的版本,使得版本密度(Version Density)随着离最新版本(Latest Version)的时间长度增加而降低,如图2所示。因此,装置100可有效提升自动管理运作的效能,并且不会有浪费储存空间或误删版本的问题。

图3绘示图2所示的版本管理特性曲线于一实施例中所涉及的一版本分布,其中图3最下方所示的横轴代表时间轴,而符号「T」可代表时间,且符号「VLatest」可代表所述最新版本。例如:装置100的自动管理运作可删除上述多个版本中的一部分版本。另外,图3中的一系列直线可代表上述多个版本中的另一部分版本,诸如一系列非被删除(Non-deleted)版本。于本实施例中,对所述系列非被删除版本而言,版本密度随着离最新版本VLatest的时间长度增加而降低,且符合图2所示的版本管理特性曲线。这只是为了说明的目的而已,并非对本发明的限制。于某些实施例中,所述版本分布可予以变化。

图4为依据本发明一实施例的一种用来对一储存系统进行版本管理的方法200的流程图。所述方法可应用于图1所示的装置100,尤其是上述的处理电路110。所述方法说明如下。

于步骤210中,依据至少一规则,处理电路110分别决定所述储存系统中的一档案的多个版本的重要性,其中所述多个版本中的任一版本的重要性以及所述任一版本的下一版本和所述任一版本之间的时间差(Time Difference)具有正相关(Positive Correlation),而所述任一版本的重要性以及所述档案的一最新版本和所述任一版本之间的时间差具有负相关(Negative Correlation)。例如:所述最新版本不在所述多个版本当中。这只是为了说明的目的而已,并非对本发明的限制。

于步骤220中,处理电路110删除所述多个版本当中对应于最低重要性的一个或多个版本。例如:处理电路110可比较所述多个版本中的至少两个版本的重要性,以从所述多个版本选出所述对应于最低重要性的一个或多个版本,以供删除。

为了便于理解,上述的最新版本VLatest可作为步骤210中所述的最新版本的一例。于是,版本密度随着离最新版本VLatest的时间长度增加而降低,其中图3所示的版本分布可作为执行方法200后的版本分布的一例。

依据某些实施例,上述所述至少一规则可使所述任一版本的重要性以及所述下一版本的创建时间和所述任一版本的创建时间之间的差具有正相关,并且使所述任一版本的重要性以及所述最新版本的创建时间和所述任一版本的创建时间之间的差具有负相关。例如:处理电路110可依据一特定方程式计算分别对应于所述多个版本的多个重要性参数,并且利用所述多个重要性参数来分别代表所述多个版本的重要性,其中所述特定方程式指出所述任一版本的一重要性参数以及所述下一版本的创建时间和所述任一版本的创建时间之间的差具有正相关,并且指出所述任一版本的所述重要性参数以及所述最新版本的创建时间和所述任一版本的创建时间之间的差具有负相关。

依据某些实施例,所述特定方程式可指出所述任一版本的所述重要性参数是所述任一版本的创建时间、所述任一版本的所述下一版本的创建时间与所述最新版本的创建时间的一分式函数(Rational Function)。假设版本Vi可代表所述任一版本,而版本Vi的下标「i」可代表一索引,诸如任一正整数、或一预定范围内的任一正整数。例如:所述特定方程式可表示如下:

Pi=f(Time(Vi),Time(Vi+1))/g(Time(Vi),Time(VLatest));

其中符号「Pi」代表版本Vi的重要性参数,且符号「Time(Vi)」代表版本Vi的创建时间。在版本Vi代表所述任一版本的状况下,版本Vi+1代表所述任一版本的所述下一版本。例如:f(Time(Vi),Time(Vi+1))与(Time(Vi+1)-Time(Vi))可具有正相关,且g(Time(Vi),Time(VLatest))与(Time(VLatest)-Time(Vi))可具有正相关。于是,重要性参数Pi与(Time(Vi+1)-Time(Vi))可具有正相关,且重要性参数Pi与(Time(VLatest)-Time(Vi))可具有负相关。

基于方法200,装置100可有效提升自动管理运作的效能,并且不会有浪费储存空间或误删版本的问题。

图5绘示图4所示的方法200于一实施例中所涉及的一工作流程300。

于步骤310中,处理电路110可按照创建时间计算每个版本的重要性,诸如于步骤210中所述的所述多个版本的重要性。

于步骤320中,处理电路110可删除重要性最低的版本,诸如于步骤220中所述的对应于最低重要性的一个或多个版本。

于步骤330中,处理电路110可检查是否需要删除更多版本。若判断需要删除更多版本,则重新进入步骤310;否则,此工作流程300结束。

例如:表1中的第一栏所示的版本识别符(Version ID){v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11}可分别代表11个版本{V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11},其中前10个版本{V1,V2,V3,V4,V5,V6,V7,V8,V9,V10}可作为所述多个版本的例子,而版本V11可作为最新版本VLatest的一例。

表1

于表1中,第二栏所示的版本时间是基于「1970/1/1,00:00」的午夜(其时间可视为0秒)来描述。另外,对于所考虑的某一版本而言,第三栏所示的时间长度代表所述某一版本的版本时间和最新版本VLatest的版本时间之间的差的绝对值。于本实施例中,由于(版本识别符v11所代表的)版本V11可作为最新版本VLatest的一例,故表1的右下角所示的数值为0。

图6绘示图4所示的方法200于一实施例中所涉及的一组版本,诸如(版本识别符{v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11}所代表的)上述所述11个版本{V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11}。依据本实施例,所述分式函数的分母(Denominator)g(Time(Vi),Time(VLatest))可包括所述最新版本的创建时间和所述任一版本的创建时间之间的差。另外,所述分式函数的分子(Numerator)f(Time(Vi),Time(Vi+1))可包括所述下一版本的创建时间和所述任一版本的创建时间之间的差。例如:所述特定方程式可表示如下:

Pi=(Time(Vi+1)-Time(Vi))/(Time(VLatest)-Time(Vi));

其中版本{V1,V2,V3,V4,V5,V6,V7,V8,V9,V10}中的任一者可作为版本Vi的一例。

例如:版本V3的重要性参数(诸如Pi;i=3)可表示如下:

P3=(Time(V4)-Time(V3))/(Time(V11)-Time(V3))

=(1431563733-1431563629)/(1431569996-1431563629)

=(6367-6263)/6367

=0.0163…

≌0.016;

又例如:版本V2的重要性参数(诸如Pi;i=2)可表示如下:

P2=(Time(V3)-Time(V2))/(Time(V11)-Time(V2))

=(1431563629-1431561366)/(1431569996-1431561366)

=(8630-6367)/8630

=0.2622…

≌0.262;

依此类推。

图7绘示图6所示实施例中的所述组版本的删除顺序,其中以虚线绘制的垂直线代表被删除(Deleted)版本。如图7所示的顺序(由上至下),处理电路110可依照(版本识别符{v1,v2,v3,v4,v5,v6,v7,v8,v9,v10}所代表的)所述前10个版本{V1,V2,V3,V4,V5,V6,V7,V8,V9,V10}各自的重要性参数,删除于步骤220中所述的所述对应于最低重要性的一个或多个版本。于一实施例中,若剩余的版本数量仍大于最大版本数量的上限,则处理电路110可依据步骤210与220的流程,再次计算剩余的版本各自的重要性参数,并删除对应于最低重要性的一个版本,直至剩余的版本数量符合最大版本数量的上限。例如:最终剩下图7的最下列所示的剩余版本{V2,V7,V8,V10,V11}。这只是为了说明的目的而已,并非对本发明的限制。

请注意,为了便于理解,表1所定义的版本可作为版本{Vi}的一个例子。这只是为了说明的目的而已,并非对本发明的限制。在某些实施例诸如以下所述实施例中,版本{Vi}的定义不受表1所限制。

图8绘示图4所示的方法200于另一实施例中所涉及的一组版本及其删除结果,其中以虚线绘制的垂直线代表被删除版本。本实施例的所述特定方程式可等同于图6所示实施例中的所述特定方程式的例子,也就是说:

Pi=(Time(Vi+1)-Time(Vi))/(Time(VLatest)-Time(Vi));

另外,本实施例的这组版本的数量远大于图6所示实施例中的所述组版本的数量。于是,图8所示的非被删除(Non-deleted)版本的分布可趋近图3所示的所述版本分布。

图9绘示图4所示的方法200于另一实施例中所涉及的一组版本及其删除结果,其中以虚线绘制的垂直线代表被删除版本。依据本实施例,所述分式函数的所述分母g(Time(Vi),Time(VLatest))可包括所述最新版本的创建时间和所述任一版本的创建时间之间的差,尤其是其平方。另外,所述分式函数的所述分子f(Time(Vi),Time(Vi+1))可包括所述下一版本的创建时间和所述任一版本的创建时间之间的差。例如:所述特定方程式可表示如下:

Pi=(Time(Vi+1)-Time(Vi))2/(Time(VLatest)-Time(Vi));

本实施例与前述实施例/变化例相仿之处不再重复赘述。

图10绘示图4所示的方法200于另一实施例中所涉及的一组版本及其删除结果,其中以虚线绘制的垂直线代表被删除版本。依据本实施例,所述分式函数的所述分母g(Time(Vi),Time(VLatest))可包括所述最新版本的创建时间和所述任一版本的创建时间之间的差,且还可包括一平移量(Offset)OFFSET,以调整所述多个版本当中的非被删除版本的分布。另外,所述分式函数的所述分子f(Time(Vi),Time(Vi+1))可包括所述下一版本的创建时间和所述任一版本的创建时间之间的差。例如:所述特定方程式可表示如下:

Pi=(Time(Vi+1)-Time(Vi))/(Time(VLatest)-Time(Vi)+OFFSET);

例如:平移量OFFSET可等于((Time(VLatest)-Time(V1))/10)或任何其它数值。本实施例与前述实施例/变化例相仿之处不再重复赘述。

依据某些实施例,所述分式函数的所述分母g(Time(Vi),Time(VLatest))可包括所述最新版本的创建时间和所述任一版本的创建时间之间的差,且还可包括一平移量c2,以调整所述多个版本当中的非被删除版本的分布。另外,所述分式函数的所述分子f(Time(Vi),Time(Vi+1))可包括所述下一版本的创建时间和所述任一版本的创建时间之间的差,且另可包括一平移量c1,以调整所述多个版本当中的非被删除版本的分布。例如:所述特定方程式可表示如下:

Pi=(Time(Vi+1)-Time(Vi)+c1)n/(Time(VLatest)-Time(Vi)+c2)m

其中符号「n」可代表任一正的数值,而符号「m」可代表任一正的数值,且m可等于n、或不等于n。所述实施例与前述实施例/变化例相仿之处不再重复赘述。

请注意,在n=1、m=1、c1=0且c2=0的状况下,上面这个方程式可等同于图6所示实施例中的所述特定方程式的例子。相较于此,调整这些参数(诸如{n,m,c1,c2}中的一个或多个)可达到某些效果,诸如以下所述者。依据某些实施例,处理电路110可调整平移量c1为一个大于0的数,其中若一版本的版本时间很接近前一个版本,仍有机会保留。依据某些实施例,处理电路110可调整平移量c2为一个大于0的数,其中若一版本的版本时间很接近所述最新版本,仍有机会删除。依据某些实施例,处理电路110可调整n为一个大于1的数,以提高一版本与其前一个版本之间的时间差对重要性的影响力。依据某些实施例,处理电路110可调整m为一个大于1的数,以提高一版本与所述最新版本之间的时间差对重要性的影响力。所述实施例与前述实施例/变化例相仿之处不再重复赘述。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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