CN114174974A - 微服务的存储分配增强 - Google Patents

微服务的存储分配增强 Download PDF

Info

Publication number
CN114174974A
CN114174974A CN202080053773.XA CN202080053773A CN114174974A CN 114174974 A CN114174974 A CN 114174974A CN 202080053773 A CN202080053773 A CN 202080053773A CN 114174974 A CN114174974 A CN 114174974A
Authority
CN
China
Prior art keywords
classification
input
container
storage
microservice
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
Application number
CN202080053773.XA
Other languages
English (en)
Other versions
CN114174974B (zh
Inventor
M.穆尔霍兰德
L.J.桑德斯
A.M.法利
K.L.霍普金斯
J.休斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114174974A publication Critical patent/CN114174974A/zh
Application granted granted Critical
Publication of CN114174974B publication Critical patent/CN114174974B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

一种在微服务编排器处执行的方法,包括:对微服务容器进行分类,其中,该分类定义微服务容器输入/输出操作的预测存储行为;以及将与微服务容器输入/输出操作相关联的分类提供给存储***以用于输入/输出操作的存储分配。一种在存储控制器处执行的方法,包括:接收具有相关联的分类的微服务容器输入/输出操作,其中,该分类定义了微服务容器输入/输出操作的预测存储行为;以及使用相关联的分类来优化输入/输出操作的存储分配和/或优化垃圾收集性能。

Description

微服务的存储分配增强
技术领域
本公开涉及微服务的存储分配,并且更具体地,涉及微服务编排器(orchestrator)和块存储控制器之间的基于通信的存储分配的增强。
背景技术
微服务是一种软件开发机制,其被设计成将应用与它们的实现解耦合。这种设计理念有各种好处,尤其是,鼓励模块性、可扩展性和架构独立设计。近年来,作为实现和编排面向微服务的架构的手段,容器化已经有了特别的增长。例如,
Figure BDA0003487620040000011
(KUBERNETES是Linux基金会的商标)是用于自动化应用部署、扩展和管理的开源容器编排***。它与包括
Figure BDA0003487620040000012
(DOCKER是Docker公司的商标)的一系列容器工具一起工作。
DOCKER是将应用打包为接近轻量级虚拟机的工具。这些应用可能变得与环境无关。可以被容器化的事物的示例可以是数据库。这样的数据库可以具有指定的相关联的存储。在KUBERNETES中,容器存储接口用于实现预配(provisioning)层,可以从该预配层创建卷。卷可以被预配并使得卷可由节点访问并执行快照操作。
发明内容
根据本公开的一方面,提供了一种用于微服务的存储分配增强的计算机实现方法,其中该方法在微服务编排器处执行并且包括:对微服务容器进行分类,其中该分类定义微服务容器输入/输出操作的预测存储行为;以及将与微服务容器输入/输出操作相关联的分类提供给存储***,以便用于输入/输出操作的存储分配。
不同的数据特性可能对存储***中的数据的最佳位置有影响。例如,可变的可压缩性、诸如随机存取或顺序存取模式之类的应用工作负荷等可能影响数据的最佳位置。另一个示例是微服务容器传递了关于该容器可能存在多长时间的知识,被提供了短周期并然后被删除的容器会延迟垃圾收集,直到不再需要该容器的所有存储。向存储控制器提供微服务容器输入/输出操作的分类,其中该分类基于预测的存储行为,使得存储分配和垃圾收集能被优化。
该方法可以包括提供分类分析以用于分析存储***中的输入/输出操作模式,以对底层微服务镜像进行分类和对微服务容器上下文进行分类,其中分类分析用于对微服务容器进行分类。存储***中的输入/输出操作模式可以包括影响存储分配和垃圾收集的效率的输入/输出操作的存储特性。分析输入/输出操作模式可以使用机器学习技术,以聚类成不同的使用模式。
该方法可以包括:接收由微服务容器发布的微服务容器输入/输出操作;以及利用分类分析来分析输入/输出操作以设置或修改(例如,修正)微服务容器的分类。
利用分类分析来分析输入/输出操作以设置或修改微服务容器的分类可以包括:基于底层微服务镜像的分类来对微服务容器进行初始的分类;以及基于微服务容器的上下文来适配该初始的分类。底层微服务镜像的分类可以基于历史存储行为、容器存在的预期时间和/或用户配置的分类。
基于微服务容器的上下文来适配该初始的分类可以包括微服务容器的基于用户的标记以帮助分类。
基于微服务容器的上下文来适配该初始的分类可以包括基于微服务容器的属于容器组的分类和该组的历史行为的更高层级上下文分析。该组可以是微服务容器集合形式的pod(微服务容器共同位于硬件上并且共享资源),或者该组是pod在其中一起工作的服务。
利用分类分析来分析输入/输出操作以设置或修改微服务容器的分类可以包括:对微服务容器的输入/输出操作的进行中的分析以及更新分类。这使得能够响应于容器进程的工作负荷而即时修改分类。
机器学习分类技术可以用于识别与微服务容器的性能简档最相关的类别。
将与微服务容器输入/输出操作相关联的分类提供给存储***以用于输入/输出操作的存储分配可以包括利用分类细节描述每个输入/输出操作或输入/输出操作组。这还可以包括将分类传递到底层存储***上的垃圾收集算法。
根据本公开的另一方面,提供了一种用于微服务的存储分配增强的计算机实现的方法,其中该方法在存储控制器处执行并且包括:接收具有相关联的分类的微服务容器输入/输出操作,其中该分类定义了微服务容器输入/输出操作的预测存储行为;以及使用相关联的分类来优化输入/输出操作的存储分配和/或优化垃圾收集性能。
接收具有相关联的分类的微服务容器输入/输出操作可以包括:描述或标记具有存储特性的输入/输出操作组或单个输入/输出操作。存储特性可以定义存储行为简档,该存储行为简档指示最佳存储和垃圾收集的存储分配的需要的形式。
使用相关联的分类来优化输入/输出操作的存储分配和/或优化垃圾收集性能可以尝试找到数据的最佳位置,并且可以根据类别的预期行为来选择通过内嵌阵列压缩(in-line array compression)或池化压缩(pool compression)进行压缩。
根据本公开的另一方面,提供了一种用于微服务编排器处的微服务的存储分配增强的***,包括:处理器和存储器,存储器被配置为向处理器提供计算机程序指令以执行以下组件的功能:容器分类组件,用于对微服务容器进行分类,其中该分类定义微服务容器输入/输出操作的预测存储行为;以及类别提供组件,用于向存储***提供与微服务容器输入/输出操作相关联的分类,以用于输入/输出操作的存储分配。
该***可以包括用于提供分类分析的分类分析组件,以用于分析存储***中的输入/输出操作模式,从而对底层微服务镜像进行分类,并且对微服务容器上下文进行分类,其中该分类分析用于对微服务容器进行分类。
该***可以包括:接收组件,其用于接收由微服务容器发布的微服务容器输入/输出操作;以及分析组件,其用于利用分类分析组件分析输入/输出操作以设置或修改微服务容器的分类。
分析组件可以包括:容器镜像分类组件,其用于基于底层微服务镜像的分类对微服务容器进行初始的分类;以及上下文分类组件,其用于基于微服务容器的上下文来适配该初始的分类。
根据本公开的另一方面,提供了一种用于存储控制器处的微服务的存储分配增强的***,包括:处理器和存储器,该存储器被配置为向处理器提供计算机程序指令以执行以下组件的功能:类别接收组件,其用于接收具有相关联的分类的微服务容器输入/输出操作,其中该分类定义微服务容器输入/输出操作的预测存储行为;以及存储分配器组件,其包括用于使用相关联的分类来优化输入/输出操作的存储分配的类别应用组件。
该***可以包括垃圾收集器组件,该垃圾收集器组件包括用于使用相关联的分类来优化垃圾收集性能的类别应用组件。
根据本公开的另一方面,提供了一种用于微服务的存储分配增强的计算机程序产品,该计算机程序产品包括计算机可读存储介质,计算机可读存储介质包含程序指令,该程序指令可由微服务编排器处的处理器执行以使该处理器:对微服务容器进行分类,其中该分类定义了微服务容器输入/输出操作的预测存储行为;以及将与微服务容器输入/输出操作相关联的分类提供给存储***以用于输入/输出操作的存储分配。
根据本公开的另一方面,提供了一种用于微服务的存储分配增强的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质包含程序指令,该程序指令可由存储控制器处的处理器执行以使该处理器:接收具有相关联的分类的微服务容器输入/输出操作,其中该分类定义微服务容器输入/输出操作的预测存储行为;以及使用相关联的分类来优化用于输入/输出操作的存储分配和/或优化垃圾收集性能。
附图说明
图1是描绘根据至少一个实施例的其中可以实现所描述的方法和***的微服务编排器和存储控制器的框图。
图2是描绘根据至少一个实施例的在微服务编排器和存储控制器处执行的方法的流程图。
图3是描绘根据至少一个实施例的在微服务编排器处执行的方法的一方面的流程图。
图4是描绘根据至少一个实施例的在存储控制器处执行的方法的一方面的流程图。
图5是描绘根据至少一个实施例的包括微服务编排器的***的一方面的框图。
图6是描绘根据至少一个实施例的包括存储控制器的***的一方面的框图。
图7是描绘根据至少一个实施例的其中可以实现本公开的计算机***或云服务器的框图。
图8是根据至少一个实施例的其中可以实现本公开的云计算环境的示意图。
图9是描绘根据至少一个实施例的其中可以实现本公开的云计算环境的模型层的图。
具体实施方式
在文件***中,文件的位置可以从存储分配器即时分配。在块存储中,可以通过一次性(in one pass)为卷分配所需的全部容量(完全分配)或者分配当时需要的容量来执行预配。这种预配可以使用前向查找结构来指向数据被存储的位置。这可以类似于文件***如何使用前向查找结构“瞄准(point)”特定数据。精简配置可以用作诸如压缩或去重之类的复杂存储效率工具的基础。
当数据被写入磁盘时,可能发生某些动作。这些动作可以包括在被分配存储之后将用户数据写入物理域。动作还可以包括更新前向查找结构。如果已经瞄准一条数据,则递减该条数据的引用计数。这些动作还可以包括指示垃圾收集的候选,其中被指定的数据片段的引用计数为零,并且其中数据不再被认为是有效的。数据的无效可以至少部分地基于引用计数来确定。
当读取数据时,可能发生某些动作。这些动作可以包括访问前向查找结构以找到数据请求在物理域上的何处存在。动作还可以包括如果没有找到位置则返回到零。在找到位置的情况下,可以返回物理域位置处的数据。
其它动作可以包括去重和垃圾收集。可以通过允许前向查找引用瞄准其它前向查找结构(进而瞄准数据)来实现去重。在这些情况下,单个数据片段的引用计数可以大于1。垃圾收集是将无效容量合并到可重复使用的区域中的机制。如果将一点点数据(a grainof data)写入存储***然后再覆写,则不能确定覆写与原始写入刚好在相同的位置。为此,一种实施方式是写入干净的区域。该工作负荷与底层存储介质的理论上最优的性能模式一致。经受覆写或UNMAP影响的“脏”的区域需要将它们的实时数据从它们当中转移到干净的区域。一旦所有数据都被覆写到新的区域,则先前脏的区域可被重复使用。
容器编排器和存储控制器的组合可以允许用户应用的更大灵活性。然而,给定容器的存储要求可能是未知的。对此,一种解决方案是执行覆盖层(blanket)预配并依赖于底层存储设备的精简预配能力来确保可接受水平的低效率。例如,如果在块存储***中存在过度分配,并且然后不使用任何一个,则使用前向查找元数据结构的根节点所需的底层存储,但是可以不使用另外的存储。这种结构的大小可以在千字节到兆字节的范围内,同时可以有大小在千兆字节范围内的池,使得这样的开销可以忽略。
所描述的方法和***对微服务容器和它们所基于的底层镜像进行分类。该分类是基于具有容器当前使用的上下文的微服务镜像的行为。这些细节被馈送到存储***以预测容器的输入/输出操作可能如何表现。存储***分配存储,尝试将存储分配到使垃圾收集开销最小化的区域。
容器的输入/输出操作模式对存储***中的有效存储分配和无效容量的垃圾收集有影响。输入/输出操作模式可以基于影响其存储行为的存储特性来分类,该存储行为包括垃圾收集行为。
容器可以基于它们的输入/输出操作模式利用各种选择标准来分类,可以使用机器学习技术将容器聚类成不同的使用模式。这些选择标准可以包括例如数据模式是如何排序或随机的、操作将持续多长时间以及整个容器将持续多长时间;数据的可压缩程度等。应用中心概念也可用于对慢输入/输出操作对给定过程的影响(例如,处理器停顿多长时间等待输入/输出操作)进行分类。可以基于工作负荷的经受繁重输入/输出的数据的“工作集”来使用无效的紧密度。
当微服务被启动时,它最初由微服务的镜像的行为来分类。这可以通过指示容器镜像的存储特性的变化性的历史行为的反馈来学习。容器的当前上下文也可能是重要的,因此被应用于当前容器。例如,用于创建专用于数据库的容器的镜像可以基于其使用的上下文而具有各种不同的行为。因此,可基于上下文来利用附加分类器。此外,容器过程可以继续被分析,基于与当前模式的行为的差异或预期差异将其从一个类别移动到另一个类别。这可能由于用户的工作负荷的影响而发生,并且继续的分析可以使得分类能够被即时改变。
在说明书的结论部分中特别指出并清楚地要求保护本公开的主题。通过参考以下详细描述和附图,可以最好地理解本公开的组织和操作方法,以及其目的、特征和优点。
应当理解,为了说明的简单和清楚,图中所示的元件不一定按比例绘制。例如,为了清楚起见,一些元素的尺寸可能相对于其他元素被放大。此外,在认为适当的情况下,附图标记可以在附图中重复以指示对应或类似的特征。
参考图1,框图示出了其中可以提供所描述的方法和***的***100的示例实施例。***100包括微服务编排器110和由微服务编排器110使用的存储***的存储控制器150、160。
微服务编排器110(例如,KUBERNETES***)可以提供用于跨主机集群使微服务容器的部署、扩展和操作的平台自动化的平台。云服务可以提供微服务编排器110平台或基础设施即服务(PaaS或IaaS),在其上微服务编排器110可以被部署为平台提供服务。
微服务编排器110可以包括单独的节点120、130和主节点140或集群。主节点140是管理工作负荷且跨***直接通信的控制单元,并且包括容器预配和节点控制141。主节点140包括充当容器存储接口的存储预配组件143,在其中,卷可以被创建和预配。
节点120、130是包括节点代理121、131的机器,并且其中容器125、126、135、136由容器运行时部署。微服务镜像是由多个层组成的文件,用于执行容器中的代码。镜像根据完整和可执行版本的应用的指令来构建,并且当镜像由容器运行时,它变成该容器的一个或多个实例。每个节点120、130可以包括用于与主节点140的存储预配组件143和存储控制器150、160通信的存储驱动器123、133。
存储控制器150、160包括用于分配异构存储154、164中的存储的存储分配器组件152、162,并且存储分配器组件152、162与微服务编排器110的主节点140的存储预配组件143接口。每个存储控制器150、160还包括用于回收存储空间的垃圾收集器组件153、163。
所描述的方法和***向存储控制器150、160提供微服务容器输入/输出操作的分类,以帮助存储分配器组件152、162和垃圾收集器组件153、163针最佳地执行容器输入/输出操作的特性。节点120、130包括与主节点140的分类分析组件142交互的分类层122、132,分类分析组件142又与存储控制器150、160的分类分析接口151、161交互。
参考图2,框图200示出了在微服务编排器110的节点120和主节点140之间以及到存储控制器150的流程的示例实施例。
输入/输出操作由节点120处的容器发布201,并且操作的分类分析由单个节点收集并且由节点分类层122通信传达202到主节点的分类分析组件142,以提供和调整容器的分类。
主节点的分类分析组件142向单个节点通知给定容器所属的分类,并且单个节点向主节点通知与容器相关联的输入/输出模式的任何改变,使得主节点能够相应地改变分类。
主节点的分类分析组件142从节点层接收204容器的输入/输出模式的通知,对容器操作进行分类205,并且将通知发送回206节点分类层122。主节点140可以向存储控制器150发送205容器分类信息,其中当从节点120接收容器输入/输出操作时,接收207该容器分类信息以供参考。
节点120处的容器可以从主节点的分类分析层142接收细节,并且可以将容器的输入/输出操作与分类信息一起发送203到存储控制器150。由于分类信息可能已经由主节点例如以存储简档的形式提供给存储控制器,所以可以简单地对容器的输入/输出操作加标签以识别分类信息(即,存储简档)。
存储控制器150可以与分类信息一起接收208传入的针对容器的输入/输出操作。基于容器分类,输入/输出操作被分配209存储,并且被写入210后端存储。
在一个备选的实施方式中,单个节点可向存储控制器提供给定容器的分类信息。可以从微服务层以各种方式实现如何传输分类。分类信息可以描述存储控制器接收和理解的存储特性或行为的存储简档,以便在容器输入/输出操作期间被应用。
参考图3,流程图300示出了在微服务编排器110处执行的所描述的方法的一方面的示例实施例。
在操作301中,向微服务编排器110提供分类分析功能,以用于分析存储***中的输入/输出操作模式。在操作302中,微服务编排器110使用分类分析基于历史行为模式对底层微服务镜像和微服务容器上下文进行分类。分类分析用于对运行时微服务容器进行分类,其中微服务容器是具有当前上下文的微服务镜像的实例。
存储***中的输入/输出操作模式可以包括以下存储特性组中的一个或多个:不可压缩数据、高度可压缩数据、短寿命数据、长寿命数据、随机存取模式数据、顺序存取模式数据、完全分配范围和用于操作的应用等待简档。分析输入/输出操作模式可以使用机器学习技术来将特性聚类成可以被分类的不同的行为模式。这些可以被认为是容器的存储简档。
在一些实施例中,使用一种或多种方法来收集存储特性。这种方法识别工作负荷是否是顺序的/随机的。确定工作负荷的可压缩性以及通过采样确定数据持久性。给定容器的寿命也可以由微服务编排器基于删除时的正常运行时间来简单地确定。
在一些实施例中,显式用户标记被用于将容器分类为具有某些属性(例如,一个或多个属性)。可以通过暗示标记或分类与先前历史过程明确类似,在分类器级别执行该标记。在一些实施例中,在属性级别执行标记,明确地陈述容器可能存在多长时间及其输入/输出属性是什么。例如,如果已知要针对给定工作负荷运行数据库并且使用不同的数据库创建类似的预期工作负荷,则可以确认这一点以便从利用其他不相关的容器镜像做出的先前历史中获益。知道容器可能存在多长时间也被考虑或输入到分类中,因为持续时间允许确定何时删除与容器相关联的所有数据(即,确定何时所有东西都经受对存储行为有影响的UNMAP)。
在操作303中,微服务编排器110将不同类别或存储简档的合并细节从容器编排器传送到存储控制器。不同类别的传送可以告诉存储控制器不同的类别或存储简档可能如何表现,并且允许存储控制器针对高效存储和垃圾收集做出最佳分配决定。可以基于历史动作的模式、操作、特性以及关于以下各项中的一个或多个的其它相关和合适的信息来指示行为:容器、包含在容器中的数据、存储简档和要对容器和容器内的数据中的一个或多个执行的操作或操作调度。
在操作304中,微服务编排器110接收由微服务容器在运行时发布的微服务容器输入/输出操作和输入/输出操作存储特性。在操作305中,微服务编排器110然后利用分类分析来分析305输入/输出操作,以设置微服务容器的分类。在一些实施例中,在已经为微服务容器建立了分类的情况下,该方法可以基于操作、存储简档或任何其它适当或相关数据中的一个或多个的改变来修改微服务容器的分类。分类即时被执行以适应长时间运行的、可能由于用户工作负荷的影响而导致改变的分类的过程。对微服务容器进行分类定义了微服务容器输入/输出操作的预测存储行为,并且因此被用于高效的存储分配和最优垃圾收集。
在操作306中,微服务编排器110在分类过程期间基于底层微服务镜像的分类来对微服务容器进行初始的分类。底层微服务镜像的分类可以基于历史存储行为。可以分析基于微服务镜像的过去容器的行为以确定它们的行为模式。例如,可能存在这样的微服务镜像,即90%的时间具有利用常规硬盘驱动器存储(HDD)表现良好的顺序工作负荷。然而,10%的时间,镜像以随机工作负荷工作,其可以用固态驱动器(SSD)很好地执行。根据分类机制,可能无法告知是否将使用随机工作负荷。具有可用的历史允许识别给定镜像的可变性,以及基于历史行为是否需要更好的存储。历史还可以指示行为概率,其中可以将工作负荷或镜像与历史行为或简档的两个或更多个模式进行比较。
底层微服务镜像的分类还可以或替换地基于用户配置的分类。如果用户正观察到差的存储行为,则可以使用用户定义的配置来微调该行为。
在操作307中,微服务编排器110基于微服务容器的当前上下文来适配307该初始的分类。这利用了基于上下文的分类,并且可以包括基于用户的对微服务容器的标记以帮助分类。这还可以包括基于何种其他服务被附加到存储服务的更高级的上下文分析。在一些实施例中,更高级的上下文分析基于将微服务容器分类为属于容器的组以及该组的历史行为模式。该组可以是微服务容器集合形式的pod,其中微服务容器共同位于硬件上并且共享资源,和/或该组可以是其中pod一起工作的服务。
微服务编排器110可以以下面的方式实现针对上下文的对容器的分类,尽管各种方法可能是合适的。当容器正在旋转(spun-up)时,通常在更广泛的应用范围内这样做。pod是应当共同位于硬件上并且共享资源的容器的集合,并且服务是更宽的分类器并且指定一起工作的pod。当创建服务或pod时,使用容器的每个存储可以被分类为给定服务的一部分或给定pod的一部分,并且具有与它们相关联的这些上下文的历史行为。机器学习分类技术可用于标识哪个与给定容器的性能简档最相关。标签通常还可以与容器相关联,这进而可以被利用来帮助分类。可以使用拓扑方法来尝试对容器进行分类。如果给定服务被认为是节点的集合(可能基于使用上下文具有不同类型的节点),具有pod/服务成员资格确定边,则给定容器可以通过图形分析算法基于其所附着的内容来分类。基于此,可以基于最近的历史匹配的行为来确定容器的行为将是什么。已经通过生物信息学技术探索了各种网络基元(network-motif)分类机制,并且这些分类机制的最常见应用之一是识别生物信息学网络中的相似结构。机器学习分类技术可用于标识与微服务容器的性能简档最相关的类别。
在操作308中,微服务编排器110包括对微服务容器的输入/输出操作的正在进行中的分析以更新分类。在一些实施例中,针对微服务编排器内的当前容器过程从单个节点收集分类分析。例如,节点可以告知当前工作负荷是大致随机的还是大致顺序的。容器编排器可以被告知在给定容器上发生的输入/输出模式,并可以将其编译成其分类。容器可能经受用户的可能改变的工作负荷的性质。例如,当数据被第一次写入时,它可以开始显著地排序,但是当激活不同的用户工作负荷时,它可以变得高度随机/事务性。通过支持这一点,可以改变容器的分类。
在操作309中,微服务编排器110将与微服务容器输入/输出操作相关联的分类信息从容器编排器的单个的节点提供到存储***,以用于输入/输出操作的存储分配。例如,输入/输出操作可以用分类来标记。这可以包括用分类细节描述每个或一组输入/输出操作。这还可以包括将分类传递到底层存储***上的垃圾收集算法。
参考图4,流程图400示出了在存储控制器150处执行的所描述的方法的一个方面的示例实施例。
在操作401,存储控制器150从容器编排器接收一般类别信息,例如,作为类别的共享列表。这些类别可以按照以下特征来描述:例如,简单地,用于长寿命的、不可压缩数据的类别;用于寿命的、高度可压缩数据的类别。这些可以被预先共享,或者当进行分类时由微服务编排器即时描述。
在操作402中,存储控制器150接收具有相关联的分类的微服务容器输入/输出操作,其定义了微服务容器输入/输出操作的预测存储行为。在一些实施例中,接收输入/输出操作,并且一旦接收到,就分析输入/输出操作以确定与输入/输出操作中的一个或多个相关联的类别。相关联的特性可以定义指示微服务容器的对应预测存储行为的输入/输出操作的预测存储行为。在一些实施例中,存储控制器接收与多个分类相关联的输入/输出操作。
在操作403,存储控制器150将分类传递到存储***的存储分配器和垃圾收集器组件。这通知存储控制器给定的输入/输出操作属于某个类别,并且因此输入/输出操作可能具有给定的行为。
分类信息可以通过接口协议传递到底层存储***上的存储分配器和垃圾收集算法。这可以通过用某些已知的服务特性标记输入/输出操作或者通过将这些细节包括在单个输入/输出操作内来描述输入/输出操作组。例如,数据帧的头部/脚注可以描述该分类。
在操作404中,存储控制器150基于由分类提供的预测行为来提供容器的输入/输出操作的数据的优化位置。涉及的分类细节可以包括随机性的度量、数据的预期寿命的度量、所讨论的***是否正在等待输入/输出操作的度量、对于给定的输入/输出操作集的预期工作集是什么。垃圾收集和空间分配算法然后可以进行规划,以找到具有已经被提供了附加数据的数据的最佳位置。
在操作405中,存储控制器150接收或识别对分类的改变。存储控制器150然后可以在容器处理期间利用存储分配器和垃圾收集组件相应地做出响应来即时更新分类。存储分配器可以被通知微服务的分类的任何改变,并将尝试相应地做出响应。这可以扩展到垃圾收集选择行为,因为当垃圾收集范围属于微服务的给定等级时,可以将这些范围移动到适当的新的存储分配阶层。
以下是可以基于随容器的输入/输出操作提供的分类信息来使用的一些存储分配技术。在一些实例中,这些存储分配技术可以仅在高性能存储被需要时才分配它。
另外,如果用户正在观察不良行为,则可以提供用户定义的概念以允许对行为进行微调。例如,如果镜像具有工作负荷,这意味着工作负荷没有被存储在高性能存储器上,而是适合于该存储器,则能够手动调节单个工作负荷以便影响要被分配给最高性能存储器的工作负荷是有用的特征。因此,可以提供用户配置以影响存储优化。
存储模式的分类可以包括随机性的度量、数据的预期寿命的度量、所讨论的***是否正在等待输入/输出操作的度量、对于给定的输入/输出操作集的预期工作集是什么、输入/输出大小的度量、所需的抗故障性、以及影响存储和垃圾收集优化的其它存储特性。
可压缩性
可变的可压缩性可能对数据应被放置的理想位置有影响。例如,这可以包括根据类别的预期行为来选择通过内嵌阵列压缩或池化压缩进行压缩。例如,由阵列实现的内嵌硬件压缩具有约4:1的最大可压缩性支持,而相同产品的数据减少池化实施的压缩可实现超过10:1的可压缩性,但以附加的等待时间为代价。
编排器可以通知存储控制器刚刚创建的容器可能创建不可压缩的数据。存储控制器然后可以选择不尝试压缩与容器相关联的输入/输出操作,继而节省用于更可能压缩的输入/输出操作的压缩带宽。
编排器可以通知存储控制器刚刚创建的容器可能创建高度可压缩的数据。在具有有限压缩带宽的***上,这可能是节省空间的最佳选择。存储控制器将优先地向该容器的数据范围分配压缩带宽。
短期(short-lived)数据和长期(long-lived)数据
可以帮助垃圾收集的其它特征是通过称为“松弛空间”的概念来拖延垃圾收集的概念。这是这样的想法,即如果有足够的空闲容量来运行,则随着接收到进一步的无效,垃圾收集可能随着时间的推移而变得更便宜。因此,释放给定区域所需的工作量变得更便宜。这种行为将高度依赖于数据的局部性。如果应用的数据跨许多不同的区域分布,并且这些区域与长期数据共享,则即使所有的短期数据都已被无效,也将需要移动长期数据。
编排器可以通知存储控制器容器可能具有短的寿命:即数据很可能很快被丢弃。这可以尝试通过为这些更短范围分配单独的区域来将短期数据分组在一起。对于没有输入/输出延迟瓶颈的***,可以选择更慢的存储(例如,选择旋转磁盘而不选择昂贵但快速的固态驱动器选项)。
存储控制器将短期数据范围分配给公共盘区(extent),并选择避免对这些盘区进行垃圾收集,直到它们几乎为空。这意味着短期数据不与长期数据混合,并且预测的丢弃周期释放了盘区而不是需要大量的垃圾收集。因为在这些盘区上没有垃圾收集,所以更少的写入带宽被用于垃圾收集,这既改进了性能又延长了存储介质寿命。
编排器可以通知存储控制器容器可能具有非常长的寿命。存储控制器将这些长期数据范围分配给公共盘区。通过避免将这些与短期范围混合,避免了不必要的垃圾收集以释放短期范围。这导致使用更少的写入带宽来进行垃圾收集,进而既改进了性能又延长了存储介质寿命。
完全分配的
对于特别不利的工作负荷,存储控制器可能将数据范围分配到完全分配的(即,非日志结构阵列)范围,因为垃圾收集这些数据范围的开销可能过大。这将导致更优化的性能。
随机和顺序写入
不同的应用工作负荷具有不同的属性;数据库可以具有高度随机访问模式,而备份任务可以具有高度顺序访问模式。这些暗示着垃圾收集可能如何执行。通常,顺序覆写模式将导致更容易的垃圾收集,因为可以释放连续的存储范围。随机覆写模式通常更难以进行垃圾收集,因为为了回收可观的空间区域,可以移动相对更大的存储量。例如,顺序覆写可以具有例如以下的模式:
[XXXXXXXXXX][OOOOOOOOOO][XXXXXXXXXX][NNNNNNNNNN][FFFFFFFFFF]
在该实施例中,F=释放;X=使用;O=覆写数据;N=新数据。这里,包含覆写的整个区域可以被回收,而不需要移动任何数据。在该示例中,随机覆写可以具有诸如以下的模式:
[XOXOXXOXXX][XXOXOXXOXX][XXOXXOXXXX][NNNNNNNNNN][FFFFFFFFFF]
在该示例中,移动4个区域以回收1个区域的数据。这个问题随着物理域扩展而变得更糟。对于与顺序的输入/输出模式相比具有显著随机输入/输出模式的***,选择对该行为作出最佳响应的存储器可以导致比挑选可用的最快存储器更佳的响应。
编排器可以通知存储控制器容器可能具有随机存取模式。存储控制器将这些数据范围分配给将可能对该工作负荷最佳地执行的范围(例如,固态驱动器)。其结果是这些***具有改进的性能。
编排器可以通知存储控制器容器可能具有顺序访问模式。存储控制器将这些数据范围分配给将可能对该工作负荷(可能是硬盘驱动器)最佳地执行的盘区。这个的结果是将存储分配给工作负荷的更优化的候选,既改进了硬盘驱动器的性能,又为将使它们最受益的工作负荷留下更多的固态驱动器容量空闲。
等待输入/输出操作
编排器可以通知存储控制器容器可能要等待输入/输出操作相当长的时间段。存储控制器可以向这些范围分配更快的存储介质,从而优化容器上的工作流。
工作负荷的工作集
给定的工作负荷可以具有工作集,该工作集是接收繁重的输入/输出操作的数据范围。工作集应用的概念是,虽然可以有10PB的总数据域,但是几百TB实际上受到繁重的输入/输出。
如果存在两个不同的工作负荷:这两种工作负荷都具有随机存取模式,并且都大致影响相同的数据量,如果这些工作负荷一起存储在相同的后端空间中,则它们将以大致相同的速率覆写它们自己。这优化了垃圾收集,因为空间在统计上几乎同时变得空闲。
这与顺序混合有随机部分的工作负荷进行比较。这几乎类似于使用两个显著不同的工作集大小。一个将倾向于远在另一个之前覆写其给定区域的部分。因此,将相似的工作集保持在一起使得垃圾收集工作更高效。
这些优化可通过将分析结果进行容器/镜像对齐来实现。虚拟机对齐的解决方案可能太粗糙,并且可能不足以描述在其上运行的应用集。应用中心解决方案可能粒度太细、缺乏上下文,并且可能难以集成到该应用的输入/输出路径中。
在所有这些情况下,可变寿命容器可能导致与描述应用或虚拟机一致的方法的失败。通过将其与给定镜像以及潜在地其使用的广泛上下文对齐,可在单个虚拟机和可随上下文而广泛变化的应用行为上捕获异类行为。该方法在其中操作的上下文是任务集中的环境。通过认识到这一点,捕获了存储***的最可能有用的信息,并且因此可以提高存储效率。
这种***的好处在于,这将导致优化的存储布置,从而导致减少的垃圾收集开销。这又降低了存储***上的负载,并提供了更好的主机输入/输出操作性能。
参考图5,框图示出了包括主节点的分类分析组件142和节点的分类层132的微服务编排器110的示例实施例。这些被示出在单个***上,但是可以跨多个***分布,该***包括至少一个处理器501、硬件模块、或者用于执行所描述的组件的功能的电路,该电路可以是在至少一个处理器上执行的软件单元。可以提供运行并行处理线程的多个处理器,以使得能够并行处理组件的一些或全部功能。存储器502可以被配置为向至少一个处理器501提供计算机指令503以执行组件的功能。
分类分析组件142可以提供分类分析,用于分析存储***中的输入/输出操作模式,以对底层微服务镜像进行分类并对微服务容器上下文进行分类。分类分析用于在运行时对微服务容器进行分类。
分类分析组件142可以包括用于接收在运行时由微服务容器发布的微服务容器输入/输出操作的接收组件511,以及用于分析输入/输出操作以修正(例如,设置或修改)微服务容器的分类的分析组件520。分析组件520可以包括用于基于底层微服务镜像的分类对微服务容器进行初始的分类的容器镜像分类组件521,以及用于基于微服务容器的上下文来适配该初始的分类的上下文分类组件522。
分类分析组件142可以包括用于对微服务容器进行分类的容器分类组件512,其中该分类定义了微服务容器输入/输出操作的预测存储行为。这可以被发送到运行该容器的节点的分类层132。分类层142可以包括类别提供组件530,用于将与微服务容器输入/输出操作相关联的分类提供给存储***,以便在输入/输出操作的存储分配中使用。
参考图6,框图示出了包括分类分析接口151、存储分配器组件152和垃圾收集器组件153的存储控制器150的示例实施例。存储控制器150可以包括至少一个处理器601、硬件模块或用于执行所描述的组件的功能的电路,所描述的组件可以是在至少一个处理器上执行的软件单元。可以提供运行并行处理线程的多个处理器,以使得能够并行处理组件的一些或全部功能。存储器602可以被配置为向至少一个处理器601提供计算机指令603以执行组件的功能。
分类分析接口151可以包括用于接收具有相关联的分类的微服务容器输入/输出操作的类别接收组件610,该相关联的分类定义了微服务容器输入/输出操作的预测存储行为。
存储分配器组件152可以包括用于使用相关联的分类来优化输入/输出操作的存储分配的类别应用组件620。
垃圾收集器组件153可包括用于使用相关联的分类来优化垃圾收集性能的类别应用组件630。
图7描绘了根据本公开的实施例的图1的***100的计算设备的组件的框图,该组件是诸如微服务编排器110或存储控制器150。应当理解,图7提供了一种实施方式的图示,但并不暗示对其中可实现不同实施例的环境的任何限制。可以对所描述的环境进行许多修改。
计算设备可以包括一个或多个处理器702、一个或多个计算机可读RAM 704、一个或多个计算机可读ROM 706、一个或多个计算机可读存储介质708、设备驱动器712、读/写驱动器或接口714以及网络适配器或接口716,所有这些都通过通信结构718互连。通信结构718可以用设计用于在处理器(例如微处理器、通信和网络处理器等)、***存储器、***设备和***内的任何其它硬件组件之间传递数据和/或控制信息的任何体系结构来实现。
一个或多个操作***710以及应用程序711例如存储在一个或多个计算机可读存储介质708上,以便由一个或多个处理器702经由一个或多个相应的RAM 704(通常包括高速缓存)来执行。在所示实施例中,根据本公开的实施例,每一个计算机可读存储介质708中可以是内部硬盘驱动器的磁盘存储设备,CD-ROM,DVD,记忆棒,磁带,磁盘,光盘,诸如RAM、ROM、EPROM、闪存之类的半导体存储设备,或可以存储计算机程序和数字信息的任何其他计算机可读存储介质。
计算设备还可包括读/写驱动器或接口714,以从一个或多个便携式计算机可读存储介质726读取和向其写入。计算设备上的应用程序711可以存储在便携式计算机可读存储介质726中的一个或多个上,经由相应的R/W驱动器或接口714读取并加载到相应的计算机可读存储介质708中。
计算设备还可以包括网络适配器或接口716,诸如TCP/IP适配卡或无线通信适配器。计算设备上的应用程序711可以从外部计算机或外部存储设备经由网络(例如,因特网、局域网或其他广域网或无线网络)和网络适配器或接口716下载到计算设备。程序可以从网络适配器或接口716加载到计算机可读存储介质708中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和边缘服务器。
计算设备还可以包括显示屏720、键盘或小键盘722以及计算机鼠标或触摸板724。设备驱动器712与用于成像的显示屏720、键盘或小键盘722、计算机鼠标或触摸板724和/或用于字母数字字符输入和用户选择的压力感测的显示屏720接口。设备驱动器712、R/W驱动器或接口714、以及网络适配器或接口716可以包括存储在计算机可读存储介质708和/或ROM 706中的硬件和软件。
本发明可以是任何可能的技术细节集成水平的***、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的实施例。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务供应商通过因特网连接到外部计算机)。在一些实施例中,为了执行本发明的实施例,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
本文参考根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明的实施例。将理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的部件。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的***、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的***来实现。
云计算
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,该可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的瘦或胖客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云***通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可以通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作***、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由供应商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,该软件可以包括操作***和应用。消费者不管理或控制底层云基础设施,但具有对操作***、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注点(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,该云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图8,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,该本地计算设备是例如个人数字助理(PDA)或蜂窝电话54A、桌上型计算机54B、膝上型计算机54C和/或汽车计算机***54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图8中所示的计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图9,示出了由云计算环境50(图8)提供的一组功能抽象层。应当预先理解,图9中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作***74;以及虚拟客户端75。
在一个示例中,管理层80可以提供下面描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及针对这些资源的消耗的帐单或***开具。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和***管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期计算资源的未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及容器存储优化分析96。
已经出于说明的目的呈现了对本公开的各种实施例的描述,但是其并非旨在是穷举的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
在不脱离本公开的范围的情况下,可以对前述内容进行改进和修改。

Claims (20)

1.一种用于微服务的存储分配增强的计算机实现的方法,其中所述方法在微服务编排器处执行并且所述方法包括:
提供对存储***中的微服务容器输入/输出操作模式的分类分析;
基于所述分类分析对微服务容器进行分类,其中,所述分类定义微服务容器输入/输出操作的预测存储行为;以及
将与所述微服务容器输入/输出操作相关联的所述分类提供给所述存储***以用于所述输入/输出操作的存储分配。
2.如权利要求1所述的方法,其中,所述存储***中的所述输入/输出操作模式包括所述输入/输出操作的影响存储分配和垃圾收集的存储特性。
3.如权利要求1所述的方法,其中,分析所述输入/输出操作模式使用机器学习技术来聚类成不同的使用模式。
4.如权利要求1所述的方法,包括:
接收由所述微服务容器发布的所述微服务容器输入/输出操作;以及
利用所述分类分析来分析所述输入/输出操作以修改所述微服务容器的分类。
5.如权利要求4所述的方法,其中,利用所述分类分析来分析所述输入/输出操作以修改所述微服务容器的分类包括:
对微服务容器的输入/输出操作的进行中的分析以及更新所述分类。
6.如权利要求4所述的方法,其中,所述分类由机器学习分类技术识别为与所述微服务容器的性能简档相关。
7.如权利要求4所述的方法,其中,利用所述分类分析来分析所述输入/输出操作以修改所述微服务容器的分类包括:
基于相关联的微服务镜像的分类来对微服务容器进行初始的分类;以及
基于所述微服务容器的上下文来适配所述初始的分类。
8.如权利要求7所述的方法,其中,所述相关联的微服务镜像的所述分类基于历史存储行为和用户配置的分类。
9.如权利要求7所述的方法,其中,基于所述微服务容器的上下文来适配所述初始的分类包括基于用户的对所述微服务容器的标记以帮助分类。
10.如权利要求7所述的方法,其中,基于微服务容器的上下文来适配所述初始的分类包括基于微服务容器属于容器组的分类和所述组的历史存储行为的更高层级的上下文分析。
11.如权利要求10所述的方法,其中,所述组是微服务容器的集合形式的pod,所述微服务容器共同位于硬件上并且共享资源。
12.如权利要求1所述的方法,其中,将与微服务容器输入/输出操作相关联的分类提供给向存储***以用于输入/输出操作的存储分配包括用一个或多个分类细节描述每个输入/输出操作。
13.如权利要求1所述的方法,其中,将与微服务容器输入/输出操作相关联的分类提供给存储***以用于输入/输出操作的存储分配包括将分类传递到相关联的存储***上的垃圾收集算法。
14.一种用于微服务编排器处的微服务的存储分配增强的***,包括:
处理器;以及
存储器,其耦合到所述处理器,存储计算机程序指令,所述计算机程序指令在由所述处理器执行时使所述处理器执行包括以下各项的操作:
提供对存储***中的微服务容器输入/输出操作模式的分类分析;
基于所述分类分析对微服务容器进行分类,其中,所述分类定义微服务容器输入/输出操作的预测存储行为;以及
将与所述微服务容器输入/输出操作相关联的所述分类提供给存储***以用于所述输入/输出操作的存储分配。
15.如权利要求14所述的***,其中,所述操作还包括:
接收由所述微服务容器发布的所述微服务容器输入/输出操作;以及
利用分类分析组件分析所述输入/输出操作以修改所述微服务容器的分类。
16.如权利要求15所述的***,其中,所述操作还包括:
基于相关联的微服务镜像的分类来对所述微服务容器进行初始的分类;以及
基于所述微服务容器的上下文来适配所述初始的分类。
17.一种用于微服务的存储分配增强的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质包含程序指令,所述程序指令可由微服务编排器处的处理器执行以使所述处理器执行操作,所述操作包括:
提供对存储***中的微服务容器输入/输出操作模式的分类分析;
对微服务容器进行分类,其中,所述分类定义所述微服务容器输入/输出操作的预测存储行为;以及
将与所述微服务容器输入/输出操作相关联的所述分类提供给存储***以用于所述输入/输出操作的存储分配。
18.根据权利要求17所述的计算机程序产品,其中,所述操作还包括:
接收由微服务容器发布的微服务容器输入/输出操作;以及
利用分类分析来分析所述输入/输出操作以修改所述微服务容器的分类。
19.如权利要求18所述的计算机程序产品,其中,利用所述分类分析来分析所述输入/输出操作以修改所述微服务容器的分类还包括:
对微服务容器的输入/输出操作的正在进行中的分析以及更新所述分类。
20.根据权利要求18所述的计算机程序产品,其中,所述操作还包括:
基于相关联的微服务镜像的分类对微服务容器进行初始的分类;以及
基于所述微服务容器的上下文来适配所述初始的分类。
CN202080053773.XA 2019-08-19 2020-08-06 微服务的存储分配增强 Active CN114174974B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/543,659 US11669246B2 (en) 2019-08-19 2019-08-19 Storage allocation enhancement of microservices
US16/543,659 2019-08-19
PCT/IB2020/057433 WO2021033062A1 (en) 2019-08-19 2020-08-06 Storage allocation enhancement of microservices

Publications (2)

Publication Number Publication Date
CN114174974A true CN114174974A (zh) 2022-03-11
CN114174974B CN114174974B (zh) 2022-12-09

Family

ID=74645845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080053773.XA Active CN114174974B (zh) 2019-08-19 2020-08-06 微服务的存储分配增强

Country Status (6)

Country Link
US (1) US11669246B2 (zh)
JP (1) JP2022545626A (zh)
CN (1) CN114174974B (zh)
DE (1) DE112020003312T5 (zh)
GB (1) GB2601692B (zh)
WO (1) WO2021033062A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11561706B2 (en) 2019-11-20 2023-01-24 International Business Machines Corporation Storage allocation enhancement of microservices based on phases of a microservice run
US11947452B2 (en) * 2022-06-01 2024-04-02 Micron Technology, Inc. Controlling variation of valid data counts in garbage collection source blocks

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140052945A1 (en) * 2012-08-14 2014-02-20 International Business Machines Corporation Optimizing storage system behavior in virtualized cloud computing environments by tagging input/output operation data to indicate storage policy
US20160162320A1 (en) * 2014-11-11 2016-06-09 Amazon Technologies, Inc. System for managing and scheduling containers
CN105959138A (zh) * 2016-04-29 2016-09-21 深圳前海大数点科技有限公司 基于云计算的微服务动态部署的***及方法
CN106330576A (zh) * 2016-11-18 2017-01-11 北京红马传媒文化发展有限公司 容器化微服务自动伸缩及迁移调度的方法、***和设备
US20170180346A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
US20170220387A1 (en) * 2016-01-28 2017-08-03 Pure Storage, Inc. Placing workloads in a multi-array system
US20180181436A1 (en) * 2016-11-01 2018-06-28 Red Hat, Inc. Lazy persistent storage volume provisioning
US20180276116A1 (en) * 2017-03-21 2018-09-27 Western Digital Technologies, Inc. Storage System and Method for Adaptive Scheduling of Background Operations
CN108664378A (zh) * 2018-05-10 2018-10-16 西安电子科技大学 一种微服务最短执行时间的优化方法
CN108885582A (zh) * 2016-04-07 2018-11-23 国际商业机器公司 存储器池结构的多租户存储器服务
CN108924221A (zh) * 2018-06-29 2018-11-30 华为技术有限公司 分配资源的方法和装置
US20190057213A1 (en) * 2017-08-15 2019-02-21 Hybris Ag Security in microservice architectures
CN109743199A (zh) * 2018-12-25 2019-05-10 中国联合网络通信集团有限公司 基于微服务的容器化管理***

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442311B1 (en) * 2005-06-30 2013-05-14 Teradici Corporation Apparatus and method for encoding an image generated in part by graphical commands
US8560753B1 (en) * 2005-03-30 2013-10-15 Teradici Corporation Method and apparatus for remote input/output in a computer system
US8271757B1 (en) * 2007-04-17 2012-09-18 American Megatrends, Inc. Container space management in a data storage system
US7606944B2 (en) 2007-05-10 2009-10-20 Dot Hill Systems Corporation Dynamic input/output optimization within a storage controller
JP5200928B2 (ja) * 2008-12-29 2013-06-05 ブラザー工業株式会社 テレビ会議システム、帯域制御方法、会議制御装置、テレビ会議端末装置及びプログラム
US20120159098A1 (en) 2010-12-17 2012-06-21 Microsoft Corporation Garbage collection and hotspots relief for a data deduplication chunk store
US8996787B2 (en) * 2012-02-06 2015-03-31 Sandisk Technologies Inc. Storage device aware of I/O transaction and stored data
US9053121B2 (en) 2013-01-10 2015-06-09 International Business Machines Corporation Real-time identification of data candidates for classification based compression
GB2520943B (en) 2013-12-03 2016-12-28 Samsung Electronics Co Ltd Memory allocation for applications based on identified allocation history
TWI537958B (zh) * 2014-02-21 2016-06-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
US9544242B2 (en) * 2015-02-20 2017-01-10 Exara, Inc. Network data prioritizer
US9813500B2 (en) 2015-06-12 2017-11-07 Cisco Technology, Inc. Allocating cloud storage based on storage attributes
US10061702B2 (en) * 2015-11-13 2018-08-28 International Business Machines Corporation Predictive analytics for storage tiering and caching
EP3391270B1 (en) 2015-12-18 2020-10-07 Amazon Technologies Inc. Software container registry service
US10367914B2 (en) * 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
US20180088926A1 (en) 2016-09-27 2018-03-29 Ca, Inc. Container image management using layer deltas
US10523507B2 (en) * 2017-05-11 2019-12-31 Nirmata, Inc. Method and system for tuning performance of microservices-based applications
US11113113B2 (en) * 2017-09-08 2021-09-07 Apple Inc. Systems and methods for scheduling virtual memory compressors
US10740362B2 (en) * 2017-12-22 2020-08-11 International Business Machines Corporation Container structure
US10841367B2 (en) * 2018-05-17 2020-11-17 International Business Machines Corporation Optimizing dynamical resource allocations for cache-dependent workloads in disaggregated data centers
US10740009B2 (en) * 2018-07-05 2020-08-11 Red Hat, Inc. Flexible deprovisioning of distributed storage
US11044313B2 (en) * 2018-10-09 2021-06-22 EMC IP Holding Company LLC Categorizing host IO load pattern and communicating categorization to storage system
US11157209B2 (en) * 2019-01-22 2021-10-26 EMC IP Holding Company LLC Storage allocation techniques using logical region I/O access information and temporal trend prediction
US11200004B2 (en) * 2019-02-01 2021-12-14 EMC IP Holding Company LLC Compression of data for a file system
US11599280B2 (en) * 2019-05-30 2023-03-07 EMC IP Holding Company LLC Data reduction improvement using aggregated machine learning
US11494127B2 (en) * 2019-07-22 2022-11-08 EMC IP Holding Company LLC Controlling compression of input/output (I/O) operations)

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140052945A1 (en) * 2012-08-14 2014-02-20 International Business Machines Corporation Optimizing storage system behavior in virtualized cloud computing environments by tagging input/output operation data to indicate storage policy
US20160162320A1 (en) * 2014-11-11 2016-06-09 Amazon Technologies, Inc. System for managing and scheduling containers
US20170180346A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
US20170220387A1 (en) * 2016-01-28 2017-08-03 Pure Storage, Inc. Placing workloads in a multi-array system
CN108885582A (zh) * 2016-04-07 2018-11-23 国际商业机器公司 存储器池结构的多租户存储器服务
CN105959138A (zh) * 2016-04-29 2016-09-21 深圳前海大数点科技有限公司 基于云计算的微服务动态部署的***及方法
US20180181436A1 (en) * 2016-11-01 2018-06-28 Red Hat, Inc. Lazy persistent storage volume provisioning
CN106330576A (zh) * 2016-11-18 2017-01-11 北京红马传媒文化发展有限公司 容器化微服务自动伸缩及迁移调度的方法、***和设备
US20180276116A1 (en) * 2017-03-21 2018-09-27 Western Digital Technologies, Inc. Storage System and Method for Adaptive Scheduling of Background Operations
US20190057213A1 (en) * 2017-08-15 2019-02-21 Hybris Ag Security in microservice architectures
CN108664378A (zh) * 2018-05-10 2018-10-16 西安电子科技大学 一种微服务最短执行时间的优化方法
CN108924221A (zh) * 2018-06-29 2018-11-30 华为技术有限公司 分配资源的方法和装置
CN109743199A (zh) * 2018-12-25 2019-05-10 中国联合网络通信集团有限公司 基于微服务的容器化管理***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BABAK RAVANDI等: "A self-organized resource provisioning for cloud block storage", 《FUTURE GENERATION COMPUTER SYSTEMS》 *
付琳琳等: "微服务容器化部署的研究", 《计算技术与自动化》 *
徐浩天等: "微服务架构与容器技术分析及应用", 《信息***工程》 *

Also Published As

Publication number Publication date
CN114174974B (zh) 2022-12-09
WO2021033062A1 (en) 2021-02-25
JP2022545626A (ja) 2022-10-28
US20210055862A1 (en) 2021-02-25
US11669246B2 (en) 2023-06-06
GB2601692A (en) 2022-06-08
GB202202952D0 (en) 2022-04-20
DE112020003312T5 (de) 2022-05-12
GB2601692B (en) 2023-04-05

Similar Documents

Publication Publication Date Title
US11036690B2 (en) Global namespace in a heterogeneous storage system environment
US10754556B2 (en) Prioritization of virtual volumes to take offline in a thin provisioning system
CN114174974B (zh) 微服务的存储分配增强
US11561706B2 (en) Storage allocation enhancement of microservices based on phases of a microservice run
JP2021504780A (ja) 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け
CN116391175A (zh) 自动缩放用于企业级大数据工作负载的查询引擎
CN116615713A (zh) 用于执行云迁移的预期容器化基础设施
US9921958B2 (en) Efficiently using memory for java collection objects
US10901798B2 (en) Dependency layer deployment optimization in a workload node cluster
US11086776B2 (en) Maintaining correctness of pointers from a managed heap to off-heap memory
US11614963B2 (en) Machine learning based runtime optimization
US10904348B2 (en) Scanning shared file systems
WO2023056793A1 (en) Optimizing a just-in-time compilation process
US20200073963A1 (en) Hierarchical file transfer using kde-optimized filesize probability densities
CN118056187A (zh) 处理事务请求
US20180011788A1 (en) Reducing idle resource usage
US10956517B2 (en) Holistic mapping and relocation of social media assets
US20230409384A1 (en) Optimized storage caching for computer clusters using metadata
US20240103896A1 (en) Intelligently scaling database as a service resources in a cloud platform
WO2024099246A1 (en) Container cross-cluster capacity scaling
US11928513B1 (en) Cloud affinity based on evaluation of static and dynamic workload characteristics
US20240201979A1 (en) Updating Running Containers without Rebuilding Container Images
US20240231906A1 (en) Distributed Computing Topology with Energy Savings
US20240211409A1 (en) Dynamic management of larger pages during runtime
Lalitha Recover the Missing Data in IoT by Edge Analytics

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