CN112860720A - 一种存储容量的更新方法以及装置 - Google Patents
一种存储容量的更新方法以及装置 Download PDFInfo
- Publication number
- CN112860720A CN112860720A CN202110255568.8A CN202110255568A CN112860720A CN 112860720 A CN112860720 A CN 112860720A CN 202110255568 A CN202110255568 A CN 202110255568A CN 112860720 A CN112860720 A CN 112860720A
- Authority
- CN
- China
- Prior art keywords
- target container
- message
- service
- capacity
- change
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000008859 change Effects 0.000 claims abstract description 189
- 230000004044 response Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 14
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种存储容量的更新方法,该方法包括:若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;所述代理服务基于所述消息集合获取所述变动消息;所述代理服务根据所述变动消息,更新所述目标容器的容量。可见,本申请可以实现实时更新目标容器的容量,缩短了目标容器的容量的计算查询时间并提高了实时计算查询容量的准确性,从而提高了确定、更新目标容器的容量的效率,进而提高了用户体验。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种存储容量的更新方法、装置。
背景技术
Minio是一个基于Apache License v2.0开源协议的对象存储服务,对于其存储桶已使用容量计算方式,现有技术中开发者基本上都是将存储桶中的所有存储对象一个一个获取占用容量大小然后累加的方式来计算存储桶已使用容量,然而这种计算方式耗费大量时间和计算资源,数据量大的时候无法做到准实时,需要定时累加。也就是说,目前很多厂商在使用Minio对象存储时若需要计算桶的容量,则采取的方式是当需要计算时才全部获取桶内所有对象的大小并累加(即采取每次需要接收到针对目标存储桶的容量查询指令后,才获取目标存储桶中所有文件对象,并针对所有文件对象再进行一次全部文件对象的存储占用空间大小累加以计算目标存储桶的容量),而此方法计算速度慢,且当遇到桶内不断增加新对象时,计算完一遍时数据已经过时。故此,亟需一种能够提高效率的存储桶已使用容量确定的方案。
发明内容
本申请提供一种存储容量的更新方法,以可以实现实时更新目标容器的容量,缩短了目标容器的容量的计算查询时间并提高了实时计算查询容量的准确性,从而提高了确定、更新目标容器的容量的效率,进而提高了用户体验。
第一方面,本申请提供了一种存储容量的更新方法,所述方法应用于存储容量确定***,其中,所述存储容量确定***包括存储服务、消息发布服务和代理服务,所述方法包括:
若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;
所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;
所述代理服务基于所述消息集合获取所述变动消息;
所述代理服务根据所述变动消息,更新所述目标容器的容量。
第二方面,本申请提供了一种存储容量的更新装置,所述装置应用于存储容量确定***,其中,所述存储容量确定***包括存储服务、消息发布服务和代理服务,所述装置包括:
生成单元,用于若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;
存储单元,用于所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;
获取单元,用于所述代理服务基于所述消息集合获取所述变动消息;
更新单元,用于所述代理服务根据所述变动消息,更新所述目标容器的容量。
第三方面,本申请提供了一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面中任一所述的方法。
第四方面,本申请提供了一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面中任一所述的方法。
由上述技术方案可以看出,本申请提供了一种存储容量的更新方法,所述方法应用于存储容量确定***,其中,所述存储容量确定***包括存储服务、消息发布服务和代理服务,所述方法包括:若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;所述代理服务基于所述消息集合获取所述变动消息;所述代理服务根据所述变动消息,更新所述目标容器的容量。可见,本申请通过新增代理服务,使得所述存储服务中目标容器发生变动事件后,代理服务可以根据该变动事件实时更新目标容器的容量,而不需要直到需要查询目标容器的容量时再进行目标容器中的全量对象数据的获取,以及根据目标容器中的全量对象数据的容量大小进行累加,计算得到目标容器的容量,这样,可以实现实时更新目标容器的容量,缩短了目标容器的容量的计算查询时间并提高了实时计算查询容量的准确性,从而提高了确定、更新目标容器的容量的效率,进而提高了用户体验。
上述的非惯用的优选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种存储容量的更新方法的流程示意图;
图2为本申请一实施例提供的一种存储容量的更新装置的结构示意图;
图3为本申请一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
对于其存储桶已使用容量计算方式,为了解决现有技术中开发者基本上都是将存储桶中的所有存储对象一个一个获取占用容量大小然后累加的方式来计算存储桶已使用容量,然而这种计算方式耗费大量时间和计算资源,数据量大的时候无法做到准实时,需要定时累加的问题,即,目前很多厂商在使用Minio对象存储时若需要计算桶的容量,则采取的方式是当需要计算时才全部获取桶内所有对象的大小并累加,而此方法计算速度慢,且当遇到桶内不断增加新对象时,计算完一遍时数据已经过时的问题。本申请提供了一种存储容量的更新方法,所述方法通过新增代理服务,使得所述存储服务中目标容器发生变动事件后,代理服务可以根据该变动事件实时更新目标容器的容量,而不需要直到需要查询目标容器的容量时再进行目标容器中的全量对象数据的获取,以及根据目标容器中的全量对象数据的容量大小进行累加,计算得到目标容器的容量,这样,可以实现实时更新目标容器的容量,缩短了目标容器的容量的计算查询时间并提高了实时计算查询容量的准确性,从而提高了确定、更新目标容器的容量的效率,进而提高了用户体验。
需要说明的是,本申请实施例可以应用于存储容量确定***,其中,所述存储容量确定***可以包括存储服务、消息发布服务和代理服务。需要说明的是,在本实施例的一种实现方式中,存储服务可以为Minio,消息发布服务可以为Kafka,代理服务可以为MinioServiceProxy;其中,Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写,Kafka是一种高吞吐量的分布式发布订阅消息***,它可以处理消费者在网站中的所有动作流数据,这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素,这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决;MinIO是一个基于Apache License v2.0开源协议的对象存储服务,它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等,MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似NodeJS,Redis或者MySQL;代理服务MinioServiceProxy的功能主要包含kafka消费订阅代理服务和通过S3协议操作minio。需要说明的是,存储服务、消息发布服务和代理服务除了上述提及的方式以外,还可以为其他的实现方式,在这里并不限定。
下面结合附图,详细说明本申请的各种非限制性实施方式。
参见图1,示出了本申请实施例中的一种存储容量的更新方法,在本实施例中,所述方法例如可以包括以下步骤:
S101:若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息。
在本实施例中,目标容器可以理解为预先设置在存储服务中的一个用于存储数据的容器,例如当存储服务为Minio时,存储服务中的容器可以为存储桶,即目标容器可以理解为存储服务中的一个存储桶,需要说明的是,存储桶(Bucket)是对象的载体,可理解为存放对象的“容器”,且该“容器”无容量上限。相应地,在S101之前,所述方法还可以包括:所述代理服务调用所述存储服务,在所述存储服务中创建所述目标容器。在一种实现方式中,客户端可以先向代理服务发送创建容器指令,其中,容器指令可以包括容器的容器标识,接着,代理服务可以调用存储服务,在所述存储服务中创建所述容器,在一种实现方式中,容器创建成功后,代理服务可以向客户端发送容器创建成功消息。举例来说,代理服务MinioServiceProxy可以通过S3协议调用存储服务Minio新增存储桶“abc”,即代理服务通过java程序用对象存储s3协议与minio建立连接后,新建一个存储桶名为“abc”。
另外,在本实施例中,当客户端对目标容器进行变动操作(比如对目标容器中的数据进行新增、修改或删除)时,存储服务可以检测到客户端对目标容器所进行的变动操作,并将该变动操作对应的相关信息记录为目标容器的变动事件,进而存储服务可以根据所述变动事件,生成所述目标容器对应的变动消息。需要说明的是,在一种实现方式中,存储服务可以通过监听事件线程检测到所述存储服务中目标容器的变动事件,相应地,在本实现方式中,在S101之前,所述方法还可以包括:所述代理服务调用所述存储服务,针对所述目标容器增加监听事件线程;比如,代理服务MinioServiceProxy可以通过S3协议调用存储服务Minio为存储桶“abc”增加监听事件(即监听事件线程),比如可以是***。
需要说明的是,在本实施例中,目标容器的变动事件可以理解为目标容器所发生的变动的内容,例如,可以包括以下至少一种信息:目标容器的容器标识(比如容器名称)、所发生的变动类型(比如新增、修改或删除)、所变动的数据的存储空间占用大小、数据发生变动的时间等,具体地,可以包括以下至少一种信息:增加对象(即数据)的信息(比如可以包括对象(即数据)名称、对象(即数据)占用空间大小、对象(即数据)的存储路径),修改时待覆盖对象(即数据)的信息(比如可以包括对象(即数据)名称、对象(即数据)占用空间大小、对象(即数据)的存储路径),删除对象(即数据)的信息(比如可以包括对象(即数据)名称、对象(即数据)占用空间大小、对象(即数据)的存储路径)。目标容器对应的变动消息可以理解为包括了目标容器所发生的变动的相关信息的消息。
在一种实现方式中,若所述存储服务检测到所述目标容器响应于客户端发送的操作指令产生变动情况,则所述存储服务可以根据所述操作指令,以及所述目标容器所发生的变动情况,记录所述目标容器的变动事件;接着,所述存储服务可以根据所述变动事件,生成所述目标容器对应的变动消息。
在本实施例中,可以将目标容器所发生的变动的情况,即目标容器中的数据变动的相关情况称之为变动情况,比如具体的变动类型(新增、修改或删除)、所变动的数据的存储空间占用大小(举例来说,可以包括以下至少一种信息:增加对象(即数据)的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径),修改时待覆盖对象的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径),删除对象的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径))、数据发生变动的时间等至少一种情况信息。
举例来说,假设在客户端向目标容器发送操作指令(比如新增、修改或删除数据的指令)后,所述目标容器响应于客户端发送的操作指令产生变动情况(比如目标容器响应于该操作指令执行并完成该操作),所述存储服务可以检测到所述目标容器响应于客户端发送的操作指令产生变动情况;进而所述存储服务可以根据所述操作指令,以及所述目标容器所发生的变动情况,记录所述目标容器的变动事件,比如,存储服务可以先根据操作指令确定该操作指令对应的变动类型,然后,存储服务可以把该变动类型以及所述目标容器所发生的变动情况一起记录为所述目标容器的变动事件。接着,所述存储服务可以根据所述变动事件,生成所述目标容器对应的变动消息。需要说明的是,所述目标容器对应的变动消息可以理解为可以存储于所述目标容器对应的消息集合中的消息,其中,所述变动消息可以包括以下至少一种信息:所述目标容器的容器标识、所述变动事件对应的变动类型、所述变动事件对应的变动容量(比如所变动的数据的存储空间占用大小,在一种实现方式中,可以包括以下至少一种信息:增加对象(即数据)的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径),修改时待覆盖对象的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径),删除对象的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径))、数据发生变动的时间等。
需要说明的是,客户端向目标容器发送操作指令的方式可以为以下至少一种:1、可使用代理服务基于预设通信协议(比如S3协议)向目标容器发送操作指令,2、可使用存储服务预先设置的自带页面上传操作指令,3、存储服务可使用其他客户端工具(比如S3客户端工具)输入操作指令。
S102:所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合。
在本实施例中,所述存储服务生成所述目标容器对应的变动消息之后,存储服务可以将该变动消息向所述消息发布服务推送。所述消息发布服务接收到该变动消息之后,消息发布服务可以根据所述变动消息中的所述目标容器的容器标识确定所述目标容器对应的消息集合,相应地,在S102之前,所述方法还包括:所述代理服务可以调用所述消息发布服务,在所述消息发布服务中创建所述目标容器对应的消息集合。接着,所述消息发布服务可以将所述变动消息存储至所述目标容器对应的消息集合。
需要说明的是,消息集合可以理解为一个消息集合,可以理解为每个容器对应的消息均存储至其各自对应的消息集合中,从而实现了对于消息的分类的作用。举例来说,当,消息发布服务为kafka时,目标容器对应的消息集合可以为Topic,Topic是kafka数据写入操作的基本单元,可以理解为是一个消息集合,类似一个报业集团旗下有多份报纸,一个topic指一个报纸名称如:长江日报,Topic起到给消息分类的作用。
S103:所述代理服务基于所述消息集合获取所述变动消息。
所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合之后,所述代理服务可以从所述消息集合中获取所述变动消息。在一种实现方式中,所述代理服务可以利用预设的读取线程,读取所述消息集合中的所述变动消息,举例来说,代理服务MinioServiceProxy可以利用topic消费者进行消息拉取并消费(消费可以理解为在java程序中有个线程专门处理这些消息,如果是增删改一个对象,则在数据库里增加一条消息记录,并更新存储桶总容量的记录),即利用topic消费者读取所述消息集合中的所述变动消息,需要说明的是,代理服务MinioServiceProxy里有一个线程是专门处理该topic下的消息的,可以称之为topic消费者。可以理解的是,当客户端对存储服务中的数据进行增、删、改操作完毕时,存储服务可以把变动消息生产出来推送到消息发布服务,消息发布服务接到该变动消息后就会把该变动消息推送给代理服务。
S104:所述代理服务根据所述变动消息,更新所述目标容器的容量。
代理服务获取到所述变动消息之后,代理服务可以根据所述变动消息,更新所述目标容器的容量,即实时确定出目标容器的容量。
作为一种示例,所述代理服务可以根据所述变动消息以及所述目标容器的历史变动消息,确定所述目标容器的当前容量,以及,根据所述目标容器的当前容量,更新所述目标容器的容量。
需要说明的是,在本实施例中,存储容量确定***中代理服务可以对应设置有一个存储数据库,例如可以为mysql(即关系型数据库),该存储数据库可以设置在代理服务中,也可以不设置在代理服务中。需要说明的是,该存储数据库可以包括目标容器对应的变动消息数据集和容量统计数据集。其中,变动消息数据集可以用于存储目标容器对应的历史变动消息,例如,变动消息数据集可以为对象监听表流水表,举例来说可以命名为“t_minio_obj_change”,需要强调的是,历史变动消息可以理解为目标容器以往所发生的变动消息,例如,目标容器以往所发生的变动事件对应的变动类型、所述变动事件对应的变动容量(比如所变动的数据的存储空间占用大小,具体地,可以包括以下至少一种信息:增加对象(即数据)的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径),修改时待覆盖对象的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径),删除对象的信息(比如可以包括对象名称、对象占用空间大小、对象的存储路径))、数据发生变动的时间。目标容器对应的容量统计数据集可以用于存储目标容器的当前容量(即实时的已经使用的容量大小)和/或历史容量(即以往每个时间点对应的容量),容量统计数据集可以为容量统计表,举例来说可以命名为“t_minio_bucket_coun”。需要说明的是,相应地,在一种实现方式中,在S101之前,所述代理服务可以先创建所述目标容器对应的变动消息数据集和容量统计数据集。
具体地,在一种实现方式中,所述代理服务可以先将所述变动消息记录至所述目标容器对应的变动消息数据集。然后,所述代理服务可以根据所述变动消息以及所述变动消息数据集中的历史变动消息,确定所述目标容器的当前容量,具体地,可以根据所述变动消息以及所述变动消息数据集中的历史变动消息实时更新统计目标容器的当前容量;举例来说,客户端对minio里的某个对象进行增加和修改操作时,minio会在推送给kafka消息时附带上该对象的存储空间占用大小,假设新增时对象占用1M(即当前的变动消息),该记录存到变动消息数据集,而变动消息数据集存储的历史变动消息包括修改时的对象占用2M,此时确定所述目标容器的当前容量的方式为需先减去1M再加上2M,这个操作是用于查询某个被变动的对象的历史大小(即历史变动消息),并作出相应加减来更新存储桶容量(即确定目标容器的当前容量)的。接着,所述代理服务可以将所述目标容器的当前容量记录至所述目标容器对应的容量统计数据集,以更新所述容量统计数据集中所述目标容器的容量。
由上述技术方案可以看出,本申请提供了一种存储容量的更新方法,所述方法应用于存储容量确定***,其中,所述存储容量确定***包括存储服务、消息发布服务和代理服务,所述方法包括:若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;所述代理服务基于所述消息集合获取所述变动消息;所述代理服务根据所述变动消息,更新所述目标容器的容量。可见,本申请通过新增代理服务,使得所述存储服务中目标容器发生变动事件后,代理服务可以根据该变动事件实时更新目标容器的容量,而不需要直到需要查询目标容器的容量时再进行目标容器中的全量对象数据的获取,以及根据目标容器中的全量对象数据的容量大小进行累加,计算得到目标容器的容量,这样,可以实现实时更新目标容器的容量,缩短了目标容器的容量的计算查询时间并提高了实时计算查询容量的准确性,从而提高了确定、更新目标容器的容量的效率,进而提高了用户体验。
需要说明的是,在一种实现方式中,在S104之后,所述方法还可以包括:
所述代理服务接收客户端发送的针对所述目标容器的容量查询指令;
所述代理服务响应于所述容量查询指令,读取所述容量统计数据集中所述目标容器的容量,以及,将所述目标容器的容量向所述客户端返回。
在本实施例中,当用户需要查询目标容器最新的、实时的容量时,用户可以通过客户端输入目标容器以及查询操作,客户端便可以生成针对所述目标容器的容量查询指令,其中,该容量查询指令可以包括目标容量的容量标识以及查询操作命令。代理服务接收客户端发送的针对所述目标容器的容量查询指令之后,所述代理服务可以响应于所述容量查询指令,先根据目标容量的容量标识确定目标容器对应的容量统计数据集,然后读取该容量统计数据集中所述目标容器的容量(即更新时间为最新的目标容器的容量,也就是目标容器的实时容量),以及,将所述目标容器的容量向所述客户端返回,以便客户端通知用户所述目标容器的容量(即目标容器的实时容量),比如语音播报和/或画面显示所述目标容器的容量。这样,本申请可以利用代理服务创建目标容器、创建目标容器的监听,并由代理服务实时更新目标容器的容量(即消费监听信息并实时计算目标容器的容量),以及对外暴露目标容器的容量查询接口,而不需要直到需要查询目标容器的容量时再进行目标容器中的全量对象数据的获取,以及根据目标容器中的全量对象数据的容量大小进行累加,计算得到目标容器的容量,这样,节省了目标容器的容量的计算、查询时间并提高了实时查询、计算查询容量的准确性以及便捷性,从而提高了查询目标容器的容量的效率,进而提高了用户体验。也就是说,本申请基于存储服务中的容器通知机制(比如Minio存储桶通知机制)和消息发布服务(即Kafka),开发了一层代理服务,该代理服务支持S3协议,不需要进行全量对象数据的获取,采用实时通知机制实时计算,节省目标容器的容量的计算、查询时间并提高目标容器的容量的计算、查询的实时准确性。
如图2所示,为本申请所述一种存储容量的更新装置的一个具体实施例。本实施例所述装置,即用于执行上述实施例所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。所述存储容量的更新装置应用于存储容量确定***,其中,所述存储容量确定***包括存储服务、消息发布服务和代理服务,本实施例中所述装置包括:
生成单元201,用于若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;
存储单元202,用于所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;
获取单元203,用于所述代理服务基于所述消息集合获取所述变动消息;
更新单元204,用于所述代理服务根据所述变动消息,更新所述目标容器的容量。
可选的,所述变动消息包括所述目标容器的容器标识、所述变动事件对应的变动类型以及所述变动事件对应的变动容量;所述生成单元201具体用于:
若所述存储服务检测到所述目标容器响应于客户端发送的操作指令产生变动情况,则所述存储服务根据所述操作指令,以及所述目标容器所发生的变动情况,记录所述目标容器的变动事件;
所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息。
可选的,所述存储单元202,具体用于:
所述消息发布服务根据所述变动消息中的所述目标容器的容器标识确定所述目标容器对应的消息集合;
所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合。
可选的,所述获取单元203,具体用于:
所述代理服务利用预设的读取线程,读取所述消息集合中的所述变动消息。
可选的,所述更新单元204,具体用于:
所述代理服务根据所述变动消息以及所述目标容器的历史变动消息,确定所述目标容器的当前容量,以及,根据所述目标容器的当前容量,更新所述目标容器的容量。
可选的,所述更新单元204,具体用于:
所述代理服务将所述变动消息记录至所述目标容器对应的变动消息数据集;
所述代理服务根据所述变动消息以及所述变动消息数据集中的历史变动消息,确定所述目标容器的当前容量;
所述代理服务将所述目标容器的当前容量记录至所述目标容器对应的容量统计数据集,以更新所述容量统计数据集中所述目标容器的容量。
可选的,所述装置还包括读取单元,用于:
所述代理服务接收客户端发送的针对所述目标容器的容量查询指令;
所述代理服务响应于所述容量查询指令,读取所述容量统计数据集中所述目标容器的容量,以及,将所述目标容器的容量向所述客户端返回。
可选的,所述装置还包括创建单元,用于:
所述代理服务调用所述存储服务,在所述存储服务中创建所述目标容器;
所述代理服务调用所述存储服务,针对所述目标容器增加监听事件线程。
可选的,所述创建单元还用于:
所述代理服务调用所述消息发布服务,在所述消息发布服务中创建所述目标容器对应的消息集合;
所述代理服务创建所述目标容器对应的变动消息数据集和容量统计数据集。
图3是本申请实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成存储容量的更新装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本申请任一实施例中提供的存储容量的更新方法。
上述如本申请图1所示实施例提供的存储容量的更新装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本申请实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被电子设备的处理器执行时,能够使该电子设备执行本申请任一实施例中提供的存储容量的更新方法,并具体用于执行上述存储容量的更新所述的方法。
前述各个实施例中所述的电子设备可以为计算机。
本领域内的技术人员应明白,本申请的实施例可提供为方法或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种存储容量的更新方法,其特征在于,所述方法应用于存储容量确定***,其中,所述存储容量确定***包括存储服务、消息发布服务和代理服务,所述方法包括:
若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;
所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;
所述代理服务基于所述消息集合获取所述变动消息;
所述代理服务根据所述变动消息,更新所述目标容器的容量。
2.根据权利要求1所述的方法,其特征在于,所述变动消息包括所述目标容器的容器标识、所述变动事件对应的变动类型以及所述变动事件对应的变动容量;所述若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息,包括:
若所述存储服务检测到所述目标容器响应于客户端发送的操作指令产生变动情况,则所述存储服务根据所述操作指令,以及所述目标容器所发生的变动情况,记录所述目标容器的变动事件;
所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息。
3.根据权利要求2所述的方法,其特征在于,所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合,包括:
所述消息发布服务根据所述变动消息中的所述目标容器的容器标识确定所述目标容器对应的消息集合;
所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合。
4.根据权利要求1所述的方法,其特征在于,所述代理服务基于所述消息集合获取所述变动消息,包括:
所述代理服务利用预设的读取线程,读取所述消息集合中的所述变动消息。
5.根据权利要求1所述的方法,其特征在于,所述代理服务根据所述变动消息,更新所述目标容器的容量,包括:
所述代理服务根据所述变动消息以及所述目标容器的历史变动消息,确定所述目标容器的当前容量,以及,根据所述目标容器的当前容量,更新所述目标容器的容量。
6.根据权利要求5所述的方法,其特征在于,所述代理服务根据所述变动消息以及所述目标容器的历史变动消息,确定所述目标容器的当前容量,以及,根据所述目标容器的当前容量,更新所述目标容器的容量,包括:
所述代理服务将所述变动消息记录至所述目标容器对应的变动消息数据集;
所述代理服务根据所述变动消息以及所述变动消息数据集中的历史变动消息,确定所述目标容器的当前容量;
所述代理服务将所述目标容器的当前容量记录至所述目标容器对应的容量统计数据集,以更新所述容量统计数据集中所述目标容器的容量。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述代理服务接收客户端发送的针对所述目标容器的容量查询指令;
所述代理服务响应于所述容量查询指令,读取所述容量统计数据集中所述目标容器的容量,以及,将所述目标容器的容量向所述客户端返回。
8.根据权利要求1-7中任一所述的方法,其特征在于,在所述若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息,之前,所述方法还包括:
所述代理服务调用所述存储服务,在所述存储服务中创建所述目标容器;
所述代理服务调用所述存储服务,针对所述目标容器增加监听事件线程。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述代理服务调用所述消息发布服务,在所述消息发布服务中创建所述目标容器对应的消息集合;
所述代理服务创建所述目标容器对应的变动消息数据集和容量统计数据集。
10.一种存储容量的更新装置,其特征在于,所述装置应用于存储容量确定***,其中,所述存储容量确定***包括存储服务、消息发布服务和代理服务,所述装置包括:
生成单元,用于若所述存储服务检测到所述存储服务中目标容器的变动事件,所述存储服务根据所述变动事件,生成所述目标容器对应的变动消息;
存储单元,用于所述消息发布服务将所述变动消息存储至所述目标容器对应的消息集合;
获取单元,用于所述代理服务基于所述消息集合获取所述变动消息;
更新单元,用于所述代理服务根据所述变动消息,更新所述目标容器的容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110255568.8A CN112860720B (zh) | 2021-03-09 | 2021-03-09 | 一种存储容量的更新方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110255568.8A CN112860720B (zh) | 2021-03-09 | 2021-03-09 | 一种存储容量的更新方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860720A true CN112860720A (zh) | 2021-05-28 |
CN112860720B CN112860720B (zh) | 2021-11-12 |
Family
ID=75995093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110255568.8A Active CN112860720B (zh) | 2021-03-09 | 2021-03-09 | 一种存储容量的更新方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860720B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068975A (zh) * | 2020-08-31 | 2020-12-11 | 北京五八信息技术有限公司 | 一种信息处理方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170344453A1 (en) * | 2016-05-26 | 2017-11-30 | International Business Machines Corporation | Determining dynamic statistics based on key value patterns |
CN110262754A (zh) * | 2019-06-14 | 2019-09-20 | 华东师范大学 | 一种面向NVMe和RDMA的分布式存储***及轻量级同步通信方法 |
CN110704000A (zh) * | 2019-10-10 | 2020-01-17 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111555957A (zh) * | 2020-03-26 | 2020-08-18 | 孩子王儿童用品股份有限公司 | 一种基于Kafka的同步消息服务***及实现方法 |
CN111563102A (zh) * | 2020-04-10 | 2020-08-21 | 中国联合网络通信集团有限公司 | 缓存更新方法、服务器、***及存储介质 |
CN111694857A (zh) * | 2020-06-12 | 2020-09-22 | 北京百度网讯科技有限公司 | 存储资源数据的方法、装置、电子设备及计算机可读介质 |
CN111866191A (zh) * | 2020-09-24 | 2020-10-30 | 深圳市易博天下科技有限公司 | 消息事件的分发方法、分发平台、***及服务器 |
WO2020220937A1 (zh) * | 2019-04-30 | 2020-11-05 | 华为技术有限公司 | 一种安全策略管理方法及装置 |
CN112230853A (zh) * | 2020-10-14 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 存储容量调整方法、装置、设备及存储介质 |
-
2021
- 2021-03-09 CN CN202110255568.8A patent/CN112860720B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170344453A1 (en) * | 2016-05-26 | 2017-11-30 | International Business Machines Corporation | Determining dynamic statistics based on key value patterns |
WO2020220937A1 (zh) * | 2019-04-30 | 2020-11-05 | 华为技术有限公司 | 一种安全策略管理方法及装置 |
CN110262754A (zh) * | 2019-06-14 | 2019-09-20 | 华东师范大学 | 一种面向NVMe和RDMA的分布式存储***及轻量级同步通信方法 |
CN110704000A (zh) * | 2019-10-10 | 2020-01-17 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111555957A (zh) * | 2020-03-26 | 2020-08-18 | 孩子王儿童用品股份有限公司 | 一种基于Kafka的同步消息服务***及实现方法 |
CN111563102A (zh) * | 2020-04-10 | 2020-08-21 | 中国联合网络通信集团有限公司 | 缓存更新方法、服务器、***及存储介质 |
CN111694857A (zh) * | 2020-06-12 | 2020-09-22 | 北京百度网讯科技有限公司 | 存储资源数据的方法、装置、电子设备及计算机可读介质 |
CN111866191A (zh) * | 2020-09-24 | 2020-10-30 | 深圳市易博天下科技有限公司 | 消息事件的分发方法、分发平台、***及服务器 |
CN112230853A (zh) * | 2020-10-14 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 存储容量调整方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
DAINA CHANG 等: "Capacity optimization using augmented lagrange method in intelligent reflecting surface-based MIMO communication systems", 《IEEE》 * |
朱家麒: "视频监控联网与共享平台设计与实现", 《视频监控联网与共享平台设计与实现》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068975A (zh) * | 2020-08-31 | 2020-12-11 | 北京五八信息技术有限公司 | 一种信息处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112860720B (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11711420B2 (en) | Automated management of resource attributes across network-based services | |
CN111177237B (zh) | 一种数据处理***、方法及装置 | |
CN102999608A (zh) | 大数据的树表展现***和树表展现方法 | |
CN110716848A (zh) | 数据收集方法、装置、电子设备及存储介质 | |
CN111367873A (zh) | 日志数据的存储方法、装置、终端及计算机存储介质 | |
US10182104B1 (en) | Automatic propagation of resource attributes in a provider network according to propagation criteria | |
CN112433921A (zh) | 用于动态埋点的方法及设备 | |
CN113067875A (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
CN112860720B (zh) | 一种存储容量的更新方法以及装置 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
WO2021104100A1 (zh) | Cdn中url刷新方法、装置、设备以及cdn节点 | |
CN111444017A (zh) | 多媒体数据处理方法、装置、***、电子设备及存储介质 | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
WO2023134247A1 (zh) | 容器管理方法及容器管理*** | |
CN112579639A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108846141B (zh) | 一种离线缓存加载方法及装置 | |
CN114356713A (zh) | 线程池监控方法、装置、电子设备及存储介质 | |
CN114610765A (zh) | 流计算方法、装置、设备及存储介质 | |
CN112799863B (zh) | 用于输出信息的方法和装置 | |
CN110750271B (zh) | 服务聚合、聚合服务的执行方法、装置和电子设备 | |
CN114116676A (zh) | 数据迁移方法、装置、电子设备及计算机可读存储介质 | |
CN111479140A (zh) | 数据采集方法、设备、计算机设备和存储介质 | |
CN111475291A (zh) | 一种数据处理方法、***、服务器及介质 | |
CN112988806A (zh) | 一种数据处理的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240117 Address after: No. N3013, 3rd Floor, R&D Building N, Artificial Intelligence Science and Technology Park, Wuhan Economic and Technological Development Zone, Wuhan City, Hubei Province, 430058 Patentee after: Zhongdian Cloud Computing Technology Co.,Ltd. Patentee after: CHINA ELECTRONIC SYSTEM TECHNOLOGY Co.,Ltd. Address before: No.49 Fuxing Road, Haidian District, Beijing 100036 Patentee before: CHINA ELECTRONIC SYSTEM TECHNOLOGY Co.,Ltd. |