数据处理方法、数据处理装置、介质和计算设备与流程

文档序号:18414237发布日期:2019-08-13 19:08阅读:165来源:国知局
数据处理方法、数据处理装置、介质和计算设备与流程

本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及数据处理方法、数据处理装置、介质和计算设备。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

现有技术中,镜像仓库作为存储、管理镜像文件的工具,响应于客户端关于镜像仓库中任一镜像文件的删除请求,会基于预设的镜像清理机制直接删除镜像文件的相关数据,导致被删除的镜像文件难以被恢复,需要客户端重新进行该镜像文件的推送。



技术实现要素:

为此,非常需要一种改进的关于镜像仓库中的镜像文件的数据处理方法,以避免因镜像文件的误删而导致的损失。

在本上下文中,本发明的实施方式期望提供一种数据处理方法和装置。

在本发明实施方式的第一方面中,提供了一种数据处理方法,包括:响应于客户端关于镜像仓库中任一镜像文件的删除请求,将数据库中与所述任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间,其中,所述数据库中存储有与所述镜像仓库中存储的镜像文件一一对应的可用镜像数据;每隔预设时间间隔遍历所述数据库中的可用镜像数据,确定状态保持为已删除状态且距状态标记时间超过预定时间的可用镜像数据为过期可用镜像数据;以及当满足预定条件时,删除所述数据库中的过期可用镜像数据和所述镜像仓库中与所述过期可用镜像数据对应的镜像文件。

在本发明的一个实施例中,上述可用镜像数据包括:与所述可用镜像数据对应的镜像文件的镜像仓库的标识信息、以及与所述可用镜像数据对应的镜像文件的内容信息。对于任一过期可用镜像数据,上述预定条件包括:所述数据库中不存在与所述任一过期可用镜像数据包含相同的镜像仓库的标识信息且包含相同的内容信息的可用镜像数据。

在本发明的另一实施例中,上述方法还包括:当不满足预定条件时,删除所述数据库中的所述任一过期可用镜像数据,保留所述镜像仓库中与所述任一过期可用镜像数据对应的镜像文件。

在本发明的又一实施例中,在上述将所述数据库中与所述任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间之后,上述方法还包括:向所述客户端发送第一删除提示信息,使得所述客户端展示将所述任一镜像文件从数据列表移至回收列表的过程,其中,将所述任一镜像文件从数据列表移至回收列表的过程用于表征将与所述任一镜像文件对应的可用镜像数据的状态标记为已删除状态的过程;响应于所述客户端关于所述任一镜像文件的恢复请求,将与所述任一镜像文件对应的可用镜像数据的状态更改为未删除状态并删除所述状态标记时间;以及向所述客户端发送恢复信息,使得所述客户端展示将所述任一镜像文件从回收列表移至数据列表的过程,其中,将所述任一镜像文件从回收列表移至数据列表的过程用于表征将与所述任一镜像文件对应的可用镜像数据的状态更改为未删除状态的过程。在上述删除所述数据库中的过期可用镜像数据和所述镜像仓库中与所述过期可用镜像数据对应的镜像文件之后,上述方法还包括:向所述客户端发送第二删除提示信息,使得所述客户端展示将所述任一镜像文件从回收列表移除的过程,其中,将所述任一镜像文件从回收列表移除的过程用于表征删除所述任一镜像文件和与所述任一镜像文件对应的过期可用镜像数据的过程。

在本发明的再一实施例中,上述可用镜像数据包括:与所述可用镜像数据对应的镜像文件的镜像仓库的标识信息、与所述可用镜像数据对应的镜像文件的标签信息以及与所述可用镜像数据对应的镜像文件的内容信息。在上述响应于客户端关于镜像仓库中任一镜像文件的删除请求之前,上述方法还包括:响应于客户端关于任一镜像文件的推送请求,获取所述任一镜像文件的镜像仓库的标识信息、所述任一镜像文件的标签信息、以及所述任一镜像文件的内容信息;确定所述数据库中是否存在包含所述任一镜像文件的镜像仓库的标识信息和所述任一镜像文件的标签信息在内的可用镜像数据;如果是,基于所述任一镜像文件的内容信息更新所述可用镜像数据并记录更新时间;以及,如果否,在所述数据库中创建包含所述任一镜像文件的镜像仓库的标识信息、所述任一镜像文件的标签信息、以及所述任一镜像文件的内容信息在内的可用镜像数据并记录创建时间。

在本发明的再一实施例中,上述镜像文件的内容信息包括:基于散列算法计算得到的所述镜像文件的内容摘要。

在本发明的再一实施例中,上述基于所述任一镜像文件的内容信息更新所述可用镜像数据并记录更新时间包括:如果所述可用镜像数据的状态为已删除状态,先将所述可用镜像数据的状态更改为未删除状态,再基于所述任一镜像文件的内容信息更新所述可用镜像数据。

在本发明的再一实施例中,上述删除所述镜像仓库中与所述过期可用镜像数据对应的镜像文件包括:删除所述镜像仓库中所述镜像文件与所述镜像文件的标签信息之间的引用关系;以及响应于关于所述镜像文件的回收命令,删除所述镜像仓库中的所述镜像文件。

在本发明实施方式的第二方面中,提供了一种数据处理装置,包括:第一删除模块、第一确定模块、以及第二删除模块。第一删除模块用于响应于客户端关于镜像仓库中任一镜像文件的删除请求,将数据库中与所述任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间,其中,所述数据库中存储有与所述镜像仓库中存储的镜像文件一一对应的可用镜像数据。第一确定模块用于每隔预设时间间隔遍历所述数据库中的可用镜像数据,确定状态保持为已删除状态且距状态标记时间超过预定时间的可用镜像数据为过期可用镜像数据;以及第二删除模块用于当满足预定条件时,删除所述数据库中的过期可用镜像数据和所述镜像仓库中与所述过期可用镜像数据对应的镜像文件。

在本发明的一个实施例中,上述可用镜像数据包括:与所述可用镜像数据对应的镜像文件的镜像仓库的标识信息、以及与所述可用镜像数据对应的镜像文件的内容信息。对于任一过期可用镜像数据,上述预定条件包括:所述数据库中不存在与所述任一过期可用镜像数据包含相同的镜像仓库的标识信息且包含相同的内容信息的可用镜像数据。

在本发明的另一实施例中,上述装置还包括第三删除模块,用于当不满足预定条件时,删除所述数据库中的所述任一过期可用镜像数据,保留所述镜像仓库中与所述任一过期可用镜像数据对应的镜像文件。

在本发明的又一实施例中,上述装置还包括:第一提示模块、恢复模块、第二提示模块和第三提示模块。第一提示模块用于在所述第一删除模块将所述数据库中与所述任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间之后,向所述客户端发送第一删除提示信息,使得所述客户端展示将所述任一镜像文件从数据列表移至回收列表的过程,其中,将所述任一镜像文件从数据列表移至回收列表的过程用于表征将与所述任一镜像文件对应的可用镜像数据的状态标记为已删除状态的过程。恢复模块用于响应于所述客户端关于所述任一镜像文件的恢复请求,将与所述任一镜像文件对应的可用镜像数据的状态更改为未删除状态并删除所述状态标记时间。第二提示模块用于向所述客户端发送恢复信息,使得所述客户端展示将所述任一镜像文件从回收列表移至数据列表的过程,其中,将所述任一镜像文件从回收列表移至数据列表的过程用于表征将与所述任一镜像文件对应的可用镜像数据的状态更改为未删除状态的过程。以及第三提示模块用于在所述第二删除模块删除所述数据库中的过期可用镜像数据和所述镜像仓库中与所述过期可用镜像数据对应的镜像文件之后,向所述客户端发送第二删除提示信息,使得所述客户端展示将所述任一镜像文件从回收列表移除的过程,其中,将所述任一镜像文件从回收列表移除的过程用于表征删除所述任一镜像文件和与所述任一镜像文件对应的过期可用镜像数据的过程。

在本发明的再一实施例中,上述可用镜像数据包括:与所述可用镜像数据对应的镜像文件的镜像仓库的标识信息、与所述可用镜像数据对应的镜像文件的标签信息以及与所述可用镜像数据对应的镜像文件的内容信息。上述装置还包括:第一获取模块、第二确定模块、更新模块、以及创建模块。第一获取模块用于在所述第一删除模块响应于客户端关于镜像仓库中任一镜像文件的删除请求之前,响应于客户端关于任一镜像文件的推送请求,获取所述任一镜像文件的镜像仓库的标识信息、所述任一镜像文件的标签信息、以及所述任一镜像文件的内容信息。第二确定模块用于确定所述数据库中是否存在包含所述任一镜像文件的镜像仓库的标识信息和所述任一镜像文件的标签信息在内的可用镜像数据。更新模块用于在所述第二确定模块确定所述数据库中存在包含所述任一镜像文件的镜像仓库的标识信息和所述任一镜像文件的标签信息在内的可用镜像数据时,基于所述任一镜像文件的内容信息更新所述可用镜像数据并记录更新时间。以及创建模块用于在所述第二确定模块确定所述数据库中不存在包含所述任一镜像文件的镜像仓库的标识信息和所述任一镜像文件的标签信息在内的可用镜像数据时,在所述数据库中创建包含所述任一镜像文件的镜像仓库的标识信息、所述任一镜像文件的标签信息、以及所述任一镜像文件的内容信息在内的可用镜像数据并记录创建时间。

在本发明的再一实施例中,上述镜像文件的内容信息包括:基于散列算法计算得到的所述镜像文件的内容摘要。

在本发明的再一实施例中,更新模块用于在所述可用镜像数据的状态为已删除状态时,先将所述可用镜像数据的状态更改为未删除状态,再基于所述任一镜像文件的内容信息更新所述可用镜像数据。

在本发明的再一实施例中,第二删除模块包括:第一删除子模块用于删除所述镜像仓库中所述镜像文件与所述镜像文件的标签信息之间的引用关系;以及第二删除子模块用于响应于关于所述镜像文件的回收命令,删除所述镜像仓库中的所述镜像文件。

在本发明实施方式的第三方面中,提供了一种介质,存储有计算机可执行指令,指令在被处理器执行时用于实现:上述实施例中任一项所述的数据处理方法。

在本发明实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,处理器执行指令时实现:上述实施例中任一项所述的数据处理方法。

根据本发明实施方式的数据处理方法和装置,在数据库中为镜像仓库中存储的镜像文件设置了一一对应的可用镜像数据,响应于客户端关于镜像仓库中任一镜像文件的删除请求,先对与该镜像文件对应的可用镜像数据进行逻辑删除,待与该镜像文件对应的可用镜像数据保持为逻辑删除状态超过预定时间后,在满足预定条件时再将该镜像文件以及与该镜像文件对应的可用镜像数据进行实际删除。与现有技术中在接收到删除请求后直接删除镜像文件的方案相比,巧妙地为被请求删除的镜像文件留出了一段允许恢复的缓冲时间,避免因镜像文件的误删而导致的损失。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明实施方式的数据处理方法及其装置的应用场景;

图2示意性地示出了根据本发明一个实施例的数据处理方法的流程图;

图3a示意性地示出了根据本发明一个实施例的数据处理方法的架构图;

图3b示意性地示出了根据本发明一个实施例的镜像文件的示意图;

图3c示意性地示出了根据本发明一个实施例的镜像文件的状态示意图;

图4示意性地示出了根据本发明一个实施例的数据处理装置的框图;

图5示意性地示出了根据本发明另一个实施例的数据处理装置的框图;

图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图;

图7示意性地示出了根据本发明实施方式的计算设备的框图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种数据处理方法、装置、介质和计算设备。

在本文中,需要理解的是,所涉及的术语包括:镜像仓库(repository)、镜像文件(image)、数据库(database)、可用镜像数据等。其中,镜像仓库是集中存放镜像文件的场所,镜像仓库是仓库注册服务器(registry)下的一个逻辑部分,每个镜像仓库中又包含多个镜像文件。镜像文件可以包含一个完整的操作系统环境,里面可以安装需要的应用程序,镜像文件可以用来创建容器(container),利用容器来运行应用。镜像文件是一个只读的模板,可以看作是多个只读层(read-onlylayer)的统一视角。数据库用于存储可用镜像数据,数据库中存储的可用镜像数据与镜像仓库中存储的镜像文件一一对应,可用镜像数据可以包含与之对应的镜像文件的标识信息、逻辑状态信息、内容信息等一个或多个,可用镜像数据的数据量小于或等于与之对应的镜像文件的数据量。

此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

在实现本公开构思的过程中,发明人发现,现有技术响应于客户端关于镜像仓库中任一镜像文件的删除请求,会基于预设的镜像清理机制直接删除镜像文件的相关数据,导致被删除的镜像文件难以被恢复。

为此,本发明实施例提供了一种数据处理方法和装置,该方法包括:响应于客户端关于镜像仓库中任一镜像文件的删除请求,将数据库中与该任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间,其中,数据库中存储有与镜像仓库中存储的镜像文件一一对应的可用镜像数据;每隔预设时间间隔遍历数据库中的可用镜像数据,确定状态保持为已删除状态且距状态标记时间超过预定时间的可用镜像数据为过期可用镜像数据;以及当满足预定条件时,删除数据库中的过期可用镜像数据和镜像仓库中与该过期可用镜像数据对应的镜像文件。本方案与现有技术中在接收到删除请求后直接删除镜像文件的方案相比,巧妙地为被请求删除的镜像文件留出了一段允许恢复的缓冲时间,避免因镜像文件的误删而导致的损失。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

首先参考图1详细阐述本发明实施例的数据处理方法及其装置的应用场景。

图1示意性地示出了根据本发明实施方式的数据处理方法及其装置的应用场景,在图1所示的应用场景中,可以包括终端设备101、102、103,网络104和服务器105。

网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如工具类应用、社交类应用、购物类应用、网页浏览器应用、搜索类应用等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。

需要说明的是,本公开实施例所提供的数据处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据处理装置一般可以设置于服务器105中。本公开实施例所提供的数据处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备、网络和服务器。

示例性方法

下面结合图1的应用场景,参考图2~图3c来描述根据本发明示例性实施方式的数据处理方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

图2示意性地示出了根据本发明一个实施例的数据处理方法的流程图。

如图2所示,该方法包括如下操作s201~s203:

操作s201,响应于客户端关于镜像仓库中任一镜像文件的删除请求,将数据库中与该任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间。

其中,镜像仓库用于存储一个或多个镜像文件,数据库中存储有与镜像仓库中存储的镜像文件一一对应的可用镜像数据,客户端可以将客户端本地的镜像文件上传至镜像仓库进行存储,也可以对已存储于镜像仓库中的镜像文件进行修改、删除等操作。本操作s201在接收到客户端关于一个镜像文件的删除请求时,先不删除镜像仓库中的该镜像文件本身,而是先将数据库中与该镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间,即不执行实际删除仅执行逻辑删除。

操作s202,每隔预设时间间隔遍历数据库中的可用镜像数据,确定状态保持为已删除状态且距状态标记时间超过预定时间的可用镜像数据为过期可用镜像数据。

操作s203,当满足预定条件时,删除数据库中的过期可用镜像数据和镜像仓库中与过期可用镜像数据对应的镜像文件。

在操作s202周期性地确定状态保持为已删除状态超过预定时间的可用镜像数据为过期可用镜像数据后,本操作s203在满足预定条件时将与过期可用镜像数据对应的镜像文件和该过期可用镜像数据删除。这样使得镜像仓库中的任一镜像文件的删除过程包括两个阶段:逻辑删除阶段和实际删除阶段,其中在逻辑删除阶段,由于镜像文件本身没有被删除,关于该镜像文件的删除操作可以随时被恢复。

可见,图2所示的方法在数据库中为镜像仓库中存储的镜像文件设置了一一对应的可用镜像数据,响应于客户端关于镜像仓库中任一镜像文件的删除请求,先对与该镜像文件对应的可用镜像数据进行逻辑删除,待与该镜像文件对应的可用镜像数据保持为逻辑删除状态超过预定时间后,在满足预定条件时再将该镜像文件以及与该镜像文件对应的可用镜像数据进行实际删除。与现有技术中在接收到删除请求后直接删除镜像文件的方案相比,巧妙地为被请求删除的镜像文件留出了一段允许恢复的缓冲时间,避免因镜像文件的误删而导致的损失。

由于对于客户端来说,存储于镜像仓库中的镜像文件是通过标签(tag)信息来区分的,可能存在多个数据内容完全相同但标签信息不同的镜像文件。例如,镜像文件a和镜像文件b的数据内容都是第一镜像文件,前者的标签信息为“a”,后者的标签信息为“b”,则镜像仓库在存储这两个镜像文件时,实质上存储了第一镜像文件的数据内容,以及标签信息“a”和“b”指向该第一镜像文件的引用关系。在对镜像文件a进行实际删除时,如果直接删除其所对应的第一镜像文件的数据内容,会同时导致镜像文件b的不可用。为避免此情况的产生,在本公开的一个实施例中,一个可用镜像数据可以包括:与该可用镜像数据对应的镜像文件的镜像仓库的标识信息、以及与该可用镜像数据对应的镜像文件的内容信息,相应地,任一过期可用镜像数据也同样可以包括相应的镜像仓库的标识信息以及相应的镜像文件的内容信息。当数据库中的多个可用镜像数据包含相同的镜像仓库的标识信息时,说明与该多个可用镜像数据对应的多个镜像文件存储于同一镜像仓库中。当数据库中的多个可用镜像数据包含相同的镜像文件的内容信息时,说明与该多个可用镜像数据对应的多个镜像文件具有相同的数据内容。则对于任一过期可用镜像数据,上述预定条件可以包括:数据库中不存在与该任一过期可用镜像数据包含相同的镜像仓库的标识信息且包含相同的内容信息的可用镜像数据。

进一步地,根据本公开实施例的数据处理方法还可以包括:对于任一过期可用镜像数据,当不满足预定条件时,删除数据库中的该任一过期可用镜像数据,保留镜像仓库中与该任一过期可用镜像数据对应的镜像文件。

对于上文中的例子,在确定与镜像文件a对应的可用镜像数据a’为过期可用镜像数据后,还需判断数据库中是否存在与可用镜像数据a’包含相同的镜像仓库的标识信息且包含相同的内容信息的其他可用镜像数据,如果存在该其他可用镜像数据为与镜像文件b对应的可用镜像数据b’,且该可用镜像数据b’不是过期可用镜像数据,说明同一镜像仓库中存在镜像文件b与镜像文件a共用相同的数据内容,不满足预定条件,为了使得镜像文件b能够继续正常使用,仅删除数据库中的过期可用镜像数据a’,而不删除镜像仓库中的镜像文件a。反之,如果不存在与可用镜像数据a’包含相同的镜像仓库的标识信息且包含相同的内容信息的其他可用镜像数据,说明同一镜像仓库中没有其他镜像文件与镜像文件a共用相同的数据内容,满足预定条件,删除数据库中的过期可用镜像数据a’和镜像仓库中的镜像文件a。

在本公开的一个实施例中,根据本公开实施例的数据处理方法在服务器端执行,服务器端在对镜像仓库中的镜像文件执行各种操作时可以通过客户端向用户进行展示。具体地,在上述将数据库中与任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间之后,根据本公开实施例的数据处理方法还可以包括:向客户端发送第一删除提示信息,使得该客户端展示将该任一镜像文件从数据列表移至回收列表的过程,其中,将该任一镜像文件从数据列表移至回收列表的过程用于表征服务器将与该任一镜像文件对应的可用镜像数据的状态标记为已删除状态的过程。也就是说,在服务器端对镜像文件执行逻辑删除时,通知客户端向用户展示镜像文件从数据列表移至回收列表的删除过程,以向用户表示该镜像文件已被删除且可以恢复。

以及,根据本公开实施例的数据处理方法还可以包括:响应于客户端关于已被逻辑删除的任一镜像文件的恢复请求,将与该任一镜像文件对应的可用镜像数据的状态更改为未删除状态并删除相应的状态标记时间,并向该客户端发送恢复信息,使得该客户端展示将该任一镜像文件从回收列表移至数据列表的过程,其中,将该任一镜像文件从回收列表移至数据列表的过程用于表征服务器将与该任一镜像文件对应的可用镜像数据的状态更改为未删除状态的过程。也就是说,在服务器端对镜像文件执行逻辑删除后,客户端响应于用户对回收列表中的镜像文件的恢复操作,向服务器发送恢复请求,此时服务器可以对已逻辑删除的镜像文件进行逻辑恢复,并通知客户端向用户展示镜像文件从回收列表移回数据列表的恢复过程,以向用户表示该镜像文件已被恢复。

进一步地,在上述删除数据库中的过期可用镜像数据和镜像仓库中与该过期可用镜像数据对应的镜像文件之后,根据本公开实施例的数据处理方法还可以包括:向客户端发送第二删除提示信息,使得客户端展示将该任一镜像文件从回收列表移除的过程,其中,将该任一镜像文件从回收列表移除的过程用于表征服务器删除该任一镜像文件和与该任一镜像文件对应的过期可用镜像数据的过程。也就是说,在服务器端对镜像文件执行实际删除时,通知客户端向用户展示镜像文件从回收列表移除的删除过程,以向用户表示该镜像文件已被删除且不再可以恢复。

前文中已经说明服务器可以响应于客户端的删除请求对镜像文件进行删除的过程,在本公开的一个实施例中,进一步说明服务器还可以响应于客户端的推送请求在镜像仓库中创建或更新镜像文件的过程。可用镜像数据可以包括:与该可用镜像数据对应的镜像文件的镜像仓库的标识信息、与该可用镜像数据对应的镜像文件的标签信息以及与该可用镜像数据对应的镜像文件的内容信息。在上述响应于客户端关于镜像仓库中任一镜像文件的删除请求之前,根据本公开实施例的数据处理方法还可以包括:响应于客户端关于任一镜像文件的推送请求,获取该任一镜像文件的镜像仓库的标识信息、该任一镜像文件的标签信息、以及该任一镜像文件的内容信息;确定数据库中是否存在包含该任一镜像文件的镜像仓库的标识信息和该任一镜像文件的标签信息在内的可用镜像数据;如果是,说明同一镜像仓库中已存在与被推送的该任一镜像文件具有相同标签信息的其他镜像文件,则在镜像仓库中利用该任一镜像文件对该其他镜像文件进行覆盖,基于该任一镜像文件的内容信息更新该可用镜像数据并记录更新时间。反之,如果数据库中不存在包含该任一镜像文件的镜像仓库的标识信息和该任一镜像文件的标签信息在内的可用镜像数据,说明同一镜像仓库中不存在与被推送的该任一镜像文件具有相同标签信息的其他镜像文件,则在镜像仓库中存储该任一镜像文件,在数据库中创建包含该任一镜像文件的镜像仓库的标识信息、该任一镜像文件的标签信息、以及该任一镜像文件的内容信息在内的可用镜像数据并记录创建时间。

其中,作为一个可选的实施例,上述基于所述任一镜像文件的内容信息更新所述可用镜像数据并记录更新时间包括:在数据库中存在包含该任一镜像文件的镜像仓库的标识信息和该任一镜像文件的标签信息在内的可用镜像数据的情况下,如果该可用镜像数据的状态为已删除状态,说明同一镜像仓库中已存在与被推送的该任一镜像文件具有相同标签信息的其他镜像文件,但该其他镜像文件当前已处于逻辑删除的状态,此时需要先将该可用镜像数据的状态更改为未删除状态,再基于被推送的该任一镜像文件的内容信息更新该可用镜像数据。

其中可选地,镜像文件的内容信息可以是基于散列算法计算得到的所述镜像文件的内容摘要。

在本公开的一个实施例中,镜像仓库中的镜像文件包括镜像文件的数据内容本身以及镜像文件与其标签信息之间的引用关系,则上述删除镜像仓库中与过期可用镜像数据对应的镜像文件可以包括:删除镜像仓库中相应的镜像文件与该镜像文件的标签信息之间的引用关系;以及,响应于关于所述镜像文件的回收命令,删除镜像仓库中的所述镜像文件。

下面参考图3a~3c,结合具体实施例对根据本公开实施例的数据处理方法进行展开说明:

图3a示意性地示出了根据本发明一个实施例的数据处理方法的架构图。

如图3a所示,仓库注册服务器是存放镜像仓库的具体服务器,仓库注册服务器上可以存放多个镜像仓库,每个镜像仓库中可以包含多个镜像文件,镜像仓库中的镜像文件的数据内容实质上存储于镜像仓库后端的对象存储系统中。

图3b示意性地示出了根据本发明一个实施例的镜像文件的示意图。

如图3b所示,每个镜像文件对应于一个镜像描述文件(manifest),该镜像描述文件描述该镜像文件所对应的多个镜像层(layer)。镜像文件a对应于镜像描述文件a,镜像描述文件a描述镜像层1、2、3,镜像文件b对应于镜像描述文件b,镜像描述文件b描述镜像层1、4、5,可以看出,镜像文件a和镜像文件b共用镜像层1。镜像仓库后端的对象存储系统存储镜像文件a时,可以存储镜像描述文件a以及镜像文件a的标签信息“a”到镜像层1、2、3的引用关系。镜像仓库后端的对象存储系统存储镜像文件b时,可以存储镜像描述文件b以及镜像文件b的标签信息“b”到镜像层1、4、5的引用关系。

继续回到图3a,数据库用于存储于镜像仓库中的镜像文件一一对应的可用镜像数据。每个可用镜像数据的数据格式例如可以是如下格式:

其中,对于一个可用镜像数据来说,“id”表示该可用镜像数据的标识信息,例如可以是该可用镜像数据在数据库中的记录序号等。“repo”表示与该可用镜像数据对应的镜像文件所在的镜像仓库的标识信息,“tag”表示与该可用镜像数据对应的镜像文件的标签信息,该标签信息用于供用户分辨镜像文件。“imageid”是基于与该可用镜像数据对应的镜像文件的数据内容生成的,可以作为一种内容信息。“digest”是基于与该可用镜像数据对应的镜像文件的数据内容生成的内容摘要,可以作为另一种内容信息,例如可以是利用sha256算法对该镜像文件的镜像描述文件进行计算得到的内容摘要。“size”表示与该可用镜像数据对应的镜像文件的数据大小。“createtime”表示与该可用镜像数据对应的镜像文件的创建时间。“updatetime”表示与该可用镜像数据对应的镜像文件的更新时间。“delete”用于标记可用镜像数据的状态,当“delete”等于0时,该可用镜像数据处于未删除状态,当“delete”等于1时,该可用镜像数据处于已删除状态。“deletetime”表示当可用镜像数据的状态被标记为已删除状态时的状态标记时间。“namespaceid”表示命名空间的唯一标识。

图3a中的镜像仓库可以与客户端进行交互。响应于客户端针对镜像文件a的删除请求,将数据库中相应的可用镜像数据a’的“delete”标记为1并在“deletetime”中记录状态标记时间。定时任务系统每隔预设时间间隔遍历数据库中的可用镜像数据,确定状态保持为已删除状态且距状态标记时间超过预定时间的可用镜像数据为过期可用镜像数据。例如在确定可用镜像数据a’为过期可用镜像数据后,判断数据库中是否存在与可用镜像数据a’的“repo”取值相同且“digest”取值相同的其他可用镜像数据,如果否,满足预定条件,将可用镜像数据a’从数据库中删除,并将镜像文件a的标签信息“a”与镜像层1、2、3的引用关系删除,后续再响应于回收脚本针对镜像文件a的回收命令,删除镜像描述文件a所描述的镜像层1、2、3。如果不满足预定条件,则仅将可用镜像数据a’从数据库中删除。

图3c示意性地示出了根据本发明一个实施例的镜像文件的状态示意图。

如图3c所示,一个镜像仓库中包括镜像文件1~4,数据库中存储有与这四个镜像文件一一对应的可用镜像数据1~4,从可用镜像数据所记录的信息可以获知相应镜像文件当前的状态。可用镜像数据1的“delete”取值为0,表示相应的镜像文件1既没有被逻辑删除也没有被实际删除,正常存在,用户通过客户端可以直接在数据列表中看到该镜像文件1。可用镜像数据2的“delete”取值为1,表示相应的镜像文件2被逻辑删除,但没有被实际删除,用户通过客户端可以直接在回收列表中看到该镜像文件2,该镜像文件2可被恢复。可用镜像数据3的“delete”取值为1,且状态保持为已删除状态且距状态标记时间超过预定时间,确定为过期可用镜像数据,同时镜像仓库中的镜像文件3尚存在,表示相应的镜像文件3的标签信息与相应的镜像层之间的引用关系已被实际删除,但相应的镜像层还尚未被删除,需继续等待回收命令的触发,用户通过客户端已不能对该镜像文件3进行恢复。可用镜像数据4的“delete”取值为1,且状态保持为已删除状态且距状态标记时间超过预定时间,确定为过期可用镜像数据,同时镜像仓库中的镜像文件4已不存在,表示相应的镜像文件4对应的镜像层已被删除,用户通过客户端已不能对该镜像文件4进行恢复。

示例性装置

在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的数据处理装置进行详细阐述。

图4示意性地示出了根据本发明一个实施例的数据处理装置的框图。

如图4所示,该数据处理装置400包括:第一删除模块401、第一确定模块402、以及第二删除模块403。

第一删除模块401用于响应于客户端关于镜像仓库中任一镜像文件的删除请求,将数据库中与该任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间。

其中,数据库中存储有与镜像仓库中存储的镜像文件一一对应的可用镜像数据。

第一确定模块402用于每隔预设时间间隔遍历数据库中的可用镜像数据,确定状态保持为已删除状态且距状态标记时间超过预定时间的可用镜像数据为过期可用镜像数据。

第二删除模块403用于当满足预定条件时,删除数据库中的过期可用镜像数据和镜像仓库中与过期可用镜像数据对应的镜像文件。

图5示意性地示出了根据本发明另一个实施例的数据处理装置的框图。

如图5所示,该数据处理装置500包括:第一删除模块501、第一确定模块502、以及第二删除模块503。其中,第一删除模块501、第一确定模块502、以及第二删除模块503分别具有与第一删除模块401、第一确定模块402、以及第二删除模块403对应相同的功能,重复的部分不再赘述。

在本公开的一个实施例中,可用镜像数据包括:与可用镜像数据对应的镜像文件的镜像仓库的标识信息、以及与可用镜像数据对应的镜像文件的内容信息。对于任一过期可用镜像数据,上述预定条件包括:数据库中不存在与该任一过期可用镜像数据包含相同的镜像仓库的标识信息且包含相同的内容信息的可用镜像数据。

在此基础上,作为一个可选的实施例,对于任一过期可用镜像数据,数据处理装置500还包括第三删除模块504,用于当不满足预定条件时,删除数据库中的上述任一过期可用镜像数据,保留镜像仓库中与上述任一过期可用镜像数据对应的镜像文件。

在本公开的一个实施例中,数据处理装置500还包括:第一提示模块505、恢复模块506、第二提示模块507和第三提示模块508。

第一提示模块505用于在第一删除模块501将数据库中与任一镜像文件对应的可用镜像数据的状态标记为已删除状态并记录状态标记时间之后,向客户端发送第一删除提示信息,使得该客户端展示将上述任一镜像文件从数据列表移至回收列表的过程。其中,将任一镜像文件从数据列表移至回收列表的过程用于表征将与该任一镜像文件对应的可用镜像数据的状态标记为已删除状态的过程。恢复模块506用于响应于客户端关于任一镜像文件的恢复请求,将与该任一镜像文件对应的可用镜像数据的状态更改为未删除状态并删除所述状态标记时间。以及第二提示模块507用于向客户端发送恢复信息,使得该客户端展示将上述任一镜像文件从回收列表移至数据列表的过程。其中,将任一镜像文件从回收列表移至数据列表的过程用于表征将与该任一镜像文件对应的可用镜像数据的状态更改为未删除状态的过程。第三提示模块508用于在第二删除模块503删除数据库中的过期可用镜像数据和镜像仓库中与该过期可用镜像数据对应的镜像文件之后,向客户端发送第二删除提示信息,使得该客户端展示将上述任一镜像文件从回收列表移除的过程。其中,将任一镜像文件从回收列表移除的过程用于表征删除该任一镜像文件和与该任一镜像文件对应的过期可用镜像数据的过程。

在本公开的一个实施例中,可用镜像数据包括:与可用镜像数据对应的镜像文件的镜像仓库的标识信息、与可用镜像数据对应的镜像文件的标签信息以及与可用镜像数据对应的镜像文件的内容信息。在此基础上,数据处理装置500还包括:第一获取模块509、第二确定模块510、更新模块511、以及创建模块512。

第一获取模块509用于在第一删除模块501响应于客户端关于镜像仓库中任一镜像文件的删除请求之前,响应于客户端关于任一镜像文件的推送请求,获取上述任一镜像文件的镜像仓库的标识信息、上述任一镜像文件的标签信息、以及上述任一镜像文件的内容信息。第二确定模块510用于确定数据库中是否存在包含上述任一镜像文件的镜像仓库的标识信息和上述任一镜像文件的标签信息在内的可用镜像数据。更新模块511用于在第二确定模块510确定数据库中存在包含上述任一镜像文件的镜像仓库的标识信息和上述任一镜像文件的标签信息在内的可用镜像数据时,基于上述任一镜像文件的内容信息更新上述可用镜像数据并记录更新时间。以及创建模块512用于在第二确定模块510确定数据库中不存在包含上述任一镜像文件的镜像仓库的标识信息和上述任一镜像文件的标签信息在内的可用镜像数据时,在数据库中创建包含上述任一镜像文件的镜像仓库的标识信息、上述任一镜像文件的标签信息、以及上述任一镜像文件的内容信息在内的可用镜像数据并记录创建时间。

其中具体地,镜像文件的内容信息可以包括:基于散列算法计算得到的该镜像文件的内容摘要。

作为一个可选的实施例,更新模块511具体用于在数据库中存在的可用镜像数据的状态为已删除状态时,先将该可用镜像数据的状态更改为未删除状态,再基于上述任一镜像文件的内容信息更新所述可用镜像数据。

作为一个可选的实施例,第二删除模块503包括第一删除子模块5031和第二删除子模块5032。

第一删除子模块5031用于删除所述镜像仓库中所述镜像文件与所述镜像文件的标签信息之间的引用关系。以及第二删除子模块5032用于响应于关于所述镜像文件的回收命令,删除所述镜像仓库中的所述镜像文件。

需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

示例性介质

在介绍了本发明示例性实施方式的方法和装置之后,接下来,对本发明示例性实施方式的用于实现数据处理方法的介质进行介绍。

本发明实施例提供了一种介质,存储有计算机可执行指令,上述指令在被处理器执行时用于实现上述方法实施例中任一项所述的数据处理方法。

在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据处理方法中的操作步骤。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图,如图6所示,描述了根据本发明的实施方式的用于实现数据处理方法的程序产品60,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如java,c++等,还包括常规的过程式程序设计语言——诸如“c”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

示例性计算设备

在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,介绍根据本发明的另一示例性实施方式的用于实现数据处理方法的计算设备。

本发明实施例还提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现上述方法实施例中任一项所述的数据处理方法。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明的用于实现数据处理方法的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据处理方法中的操作步骤。

下面参照图7来描述根据本发明的这种实施方式的用于实现数据处理方法的计算设备70。如图7所示的计算设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,计算设备70以通用计算设备的形式表现。计算设备70的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。

总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(rom)7023。

存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

计算设备70也可以与一个或多个外部设备704(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备70交互的设备通信,和/或与使得计算设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/0)接口705进行。并且,计算设备70还可以通过网络适配器706与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与计算设备70的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了数据处理装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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