CN114465958B - 一种输入输出的控制方法、装置及介质 - Google Patents

一种输入输出的控制方法、装置及介质 Download PDF

Info

Publication number
CN114465958B
CN114465958B CN202111580795.4A CN202111580795A CN114465958B CN 114465958 B CN114465958 B CN 114465958B CN 202111580795 A CN202111580795 A CN 202111580795A CN 114465958 B CN114465958 B CN 114465958B
Authority
CN
China
Prior art keywords
request
qos
token bucket
tokens
operation request
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.)
Active
Application number
CN202111580795.4A
Other languages
English (en)
Other versions
CN114465958A (zh
Inventor
李家伟
吴学含
李贵斌
薛强
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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202111580795.4A priority Critical patent/CN114465958B/zh
Publication of CN114465958A publication Critical patent/CN114465958A/zh
Application granted granted Critical
Publication of CN114465958B publication Critical patent/CN114465958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种输入输出的控制方法、装置及介质,用于解决块存储的IO输出波动较大的问题。在每个时钟周期产生令牌放入令牌桶时并非通过每个时钟周期产生固定数量的令牌的方式。而是基于设定规则在每秒包括的N个时钟周期分别产生对应数量的令牌加入令牌桶,使得所述N个时钟周期加入令牌桶的令牌总数量为QoS设定值,从而防止块设备的IO输出存在波动,保证稳定性。此外,令牌桶的容量可以根据IO请求突发时达到的IO最大值以及配置的持续突发时间来确定,不再采用QoS设定值,使得令牌桶的容量大于QoS设定值,并支持一定时间的IO突发。

Description

一种输入输出的控制方法、装置及介质
技术领域
本申请涉及计算机存储技术领域,尤其涉及一种输入输出的控制方法、装置及介质。
背景技术
随着云计算技术的兴起,分布式存储系统以其高性能、大规模、可扩展性强等优势得到广泛的应用。CStor分布式块存储系统可以为用户提供高输入输出(Input/Output,IO)、高吞吐、低延时的块存储设备。虽然CStor分布式块存储性能强,其扩展性也能持续为用户保证高性能体验,但是在公有云场景中,考虑成本与块存储性能的情况下,不同的块设备需要不同的IO资源的分配,即需要对块设备的IO设备进行限流。
目前,一般通过控制组(cgroup)实现QoS控流,不同的控制组对应不同的令牌桶。在块设备在处理某个控制组的IO请求时必须要从令牌桶中取出足够的令牌,才能对IO请求进行处理,从而通过令牌桶实现对IO请求的限流。但是目前采用令牌桶的方式,是在每个时钟周期产生固定数量的令牌放入令牌桶,但是采用固定数量的方式可能不满足分配的QoS资源需求,导致块存储的IO输出波动较大。
发明内容
本申请提供一种输入输出的控制方法、装置及介质,用于解决块存储的IO输出波动较大的问题。
第一方面,本申请提供一种输入输出的控制方法,所述方法应用于块设备,包括:接收第一IO请求,并将所述第一IO请求加入到IO请求队列中,所述第一IO请求的类型为数据的写入操作请求或者数据的读取操作请求;从所述IO请求队列中获取所述第一IO请求,在确定所述块设备当前配置的服务质量QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对所述第一IO请求进行数据处理;其中,所述令牌桶在每秒包括的N个时钟周期分别加入的令牌数量满足设定规则,使得所述N个时钟周期加入令牌桶的令牌总数量为服务质量QoS设定值,N为大于1的整数。
上述方案中,在每个时钟周期产生令牌放入令牌桶时并非通过每个时钟周期产生固定数量的令牌的方式。而是基于设定规则在每秒包括的N个时钟周期分别产生对应数量的令牌加入令牌桶,使得所述N个时钟周期加入令牌桶的令牌总数量为QoS设定值,从而防止块设备的IO输出存在波动,保证稳定性。
在一种可能的实现方式中,所述当前配置的QoS类型包括每秒传输的IO请求的数量IOPS和/或每秒能够传输的字节数BPS;或者,所述当前配置的QoS类型包括读取操作请求的IOPS和/或读取操作请求的BPS;或者,所述当前配置的QoS类型包括写入操作请求的IOPS和/或写入操作请求的BPS。
在一种可能的实现方式中,所述IOPS对应的令牌桶的容量是根据IO请求突发时达到的数量最大值以及配置的第一持续突发时间来确定的;或者,所述BPS对应的令牌桶的容量是根据IO请求突发时达到的字节数最大值以及配置的第二持续突发时间来确定的;所述IO请求包括读取操作请求和/或写入操作请求。
上述方案中,令牌桶的容量可以根据IO请求突发时达到的IO最大值以及配置的持续突发时间来确定,不再采用QoS设定值,使得令牌桶的容量大于QoS设定值,并支持一定时间的IO突发。
在一种可能的实现方式中,所述方法还包括:接收通知消息,所述通知消息用于通知QoS参数已更新;所述QoS参数包括如下至少一项:所述QoS设定值、所述IO请求突发时达到的数量最大值、所述第一持续突发时间、IO请求突发时达到的字节数最大值、或者所述第二持续突发时间;根据所述通知消息更新所述QoS参数。上述方案中,支持QoS参数的重配置,并且配置简单。
在一种可能的实现方式中,所述方法还包括:在确定当前配置的QoS类型对应的令牌桶中剩余令牌的数量不满足数量要求时,将所述第一IO请求加入IO阻塞队列,直到所述QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对所述第一IO请求进行处理;其中,所述IO阻塞队列包括至少一个IO请求时,禁止针对IO请求队列中包括的IO请求进行处理。
上述方案中,能够保证IO请求的先后执行顺序,防止乱序。
在一种可能的实现方式中,所述方法还包括:接收QoS配置信息,所述QoS配置信息包括QoS类型数据;根据所述QoS类型数据更新所述当前配置的QoS类型。上述方案中,支持QoS类型的配置,并且配置简单。
在一种可能的实现方式中,所述设定规则满足如下公式所示的条件:
其中,current_tick_token表示当前的时钟周期需要生成的令牌数量,current_tick表示当前的时钟周期序号,ticks_per_sec表示每秒钟包括的时钟周期数量,limit表示块设备的QoS设定值,表示向下取整。
第二方面,本申请还提供一种输入输出的控制装置,所述装置应用于块设备,包括:接口模块,用于接收第一IO请求,并将所述第一IO请求加入到IO请求队列中,所述第一IO请求的类型为数据的写入操作请求或者数据的读取操作请求;控制模块,用于从所述IO请求队列中获取所述第一IO请求,在确定所述块设备当前配置的服务质量QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对所述第一IO请求进行数据处理;其中,所述令牌桶在每秒包括的N个时钟周期分别加入的令牌数量满足设定规则,使得所述N个时钟周期加入令牌桶的令牌总数量为服务质量QoS设定值,N为大于1的整数。
在一种可能的实现方式中,所述当前配置的QoS类型包括每秒传输的IO请求的数量IOPS和/或每秒能够传输的字节数BPS;或者,所述当前配置的QoS类型包括读取操作请求的IOPS和/或读取操作请求的BPS;或者,所述当前配置的QoS类型包括写入操作请求的IOPS和/或写入操作请求的BPS。
在一种可能的实现方式中,所述IOPS对应的令牌桶的容量是根据IO请求突发时达到的数量最大值以及配置的第一持续突发时间来确定的;或者,所述BPS对应的令牌桶的容量是根据IO请求突发时达到的字节数最大值以及配置的第二持续突发时间来确定的;所述IO请求包括读取操作请求和/或写入操作请求。
在一种可能的实现方式中,还包括配置模块,用于接收通知消息,所述通知消息用于通知QoS参数已更新;所述QoS参数包括如下至少一项:所述QoS设定值、所述IO请求突发时达到的数量最大值、所述第一持续突发时间、IO请求突发时达到的字节数最大值、或者所述第二持续突发时间;根据所述通知消息更新所述QoS参数。
在一种可能的实现方式中,所述控制模块,还用于:在确定当前配置的QoS类型对应的令牌桶中剩余令牌的数量不满足数量要求时,将所述第一IO请求加入IO阻塞队列,直到所述QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对所述第一IO请求进行处理;其中,所述IO阻塞队列包括至少一个IO请求时,禁止针对IO请求队列中包括的IO请求进行处理。
在一种可能的实现方式中,配置模块,还用于接收QoS配置信息,所述QoS配置信息包括QoS类型数据;根据所述QoS类型数据更新所述当前配置的QoS类型。
在一种可能的实现方式中,所述设定规则满足如下公式所示的条件:
其中,current_tick_token表示当前的时钟周期需要生成的令牌数量,current_tick表示当前的时钟周期序号,ticks_per_sec表示每秒钟包括的时钟周期数量,limit表示块设备的QoS设定值,表示向下取整。
第三方面,本申请还提供一种输入输出的控制装置,存储器以及处理器;存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第一方面或者第一方面任一种实现方式所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述第一方面或者第一方面任一种实现方式所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码并运行时,使得上述第一方面或者第一方面任一种实现方式所述的方法。
另外,第二方面至第五方面中任一种实现方式所带来的技术效果可参见第一方面-第四方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为分布式系统架构示意图;
图2为传统的令牌桶算法的实现模型示意图;
图3为本申请实施例提供的优化的令牌桶算法的实现示意图;
图4为本申请实施例提供的输入输出的控制方法流程示意图;
图5为本申请实施例提供的QoS控流系统500架构示意图;
图6为本申请实施例提供的QoS控制模块实现QoS控流的示意图;
图7为本申请实施例提供的QoS控制模块处理IO的流程示意图;
图8为本申请实施例提供的配置QoS参数实现示意图;
图9为本申请实施例提供的输入输出的控制装置900示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供一种输入输出的控制方法及装置。本实施例提供的输入输出的控制装置可以集成于服务器中。
该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
本申请实施例提供的分布式块存储的控流方法可以应用于云平台。本实施例的云平台可以是基于上述的云服务器搭建的平台,该云平台允许客户在这个平台上开发、运行和管理应用程序,无需去考虑应用程序的构建和维护工作。
请参阅图1,图1是本申请实施例提供的一种分布式存储系统的结构示意图。所述分布式存储系统包括一个或者多个服务器,所述分布式存储系统可以将多台服务器组成一个超大服务器集群。在该服务器集群中,包括配置中心和块设备。其中,可以是一台或多台服务器构成所述配置中心。块设备可以由配置中心来创建。所述块设备包括一个或多个,每一个块设备的功能可以由一台或多台服务器实现。块设备(RADOS Block Device,RBD)是I/O设备中的一类,是将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据。服务器与一个或者多个客户端进行通信连接。服务器中的块设备可以是抽象出来的存储设备。块设备可以从客户端接收IO请求,然后写入到该块设备对应的硬件设备中,比如磁盘。
本申请实施例涉及到的IO请求可以是读取操作请求或者写入操作请求,也可以是不限制读写的任一种IO请求。
本申请实施例中的IO请求,指的是针对块设备的读写操作对应的IO请求,该IO请求可以由上层应用通过用户接口层提交给块设备,由块设备进行响应。
在一个示例中,该读写操作可以由用户在服务器侧或客户端侧发起,对此,本申请没有限制。在一个示例中,本申请实施例的服务器可以是组成云平台的服务器,客户可以基于客户端或者网页登录该云平台,使用该云平台提供的服务,例如在该云平台上创建任务,对云平台的块设备进行操作。客户端向服务器发送针对云平台的块设备的读写操作。服务器可以接收客户端发送的读写操作,并将读写操作转换为满足预设格式的IO请求。确定处理IO请求的块设备,然后将IO请求发送给对应的块设备。
本申请实施例中涉及的QoS是Quality of Service的缩写,它起源于网络技术,用以解决网络延迟和阻塞等问题,能够为指定的网络通信提供更好的服务能力。在存储系统中,QoS用来保证一定的存储服务质量。比如为高优先级的业务提供更高的服务质量,可以包括每秒传输的IO请求的数量(IOPS)、每秒能够传输的字节数(BPS)、带宽、时延等等。系统服务能力有限,为高优先级业务配置更高的QoS,为低优先级业务配置更低的QoS,合理分配资源,满足不同级别业务的需求。
如下先对本申请实施例中涉及的令牌桶算法进行描述。参见图2所示,为传统的令牌桶算法的实现模型示意图。分布式存储系统接收到IO请求后,将IO请求加入到IO请求队列。IO处理线程从IO请求队列中获取IO请求进行处理。为了控制IO请求的QoS,IO处理线程会根据令牌桶中的剩余数量来确定是否从IO请求队列中获取IO请求进行处理。如果令牌桶中包括足够的令牌,IO处理线程从令牌桶取出所需数量的令牌,并从IO请求队列获取一个IO请求进行处理。目前采用的方案中:令牌桶的总容量(capacity)是限流的IO设定值。IO预设值与令牌桶的作用有关,比如可以是IOPS的设定值或者BPS的设定值。图2中的tick为一个令牌桶的时钟周期。tick也可以称为时间滴答。目前令牌桶算法采用的方式是:在一个tick中分布式存储系统向令牌桶中放入固定数量的令牌数,系统一秒钟由多个tick组成,比如为20个。即每50ms向令牌桶中放入固定数量的令牌,则1秒钟放入的令牌总数即为限流的IO预设值。当令牌桶中的令牌数量等于令牌桶的总容量时,不再向令牌桶放入令牌,而是将产生的令牌丢弃掉。如设置块存储的IOPS值为950,如果1秒钟包括20个tick,则每个tick放入令牌桶的令牌的数量为47。如果1秒钟包括25个tick,则每个tick放入令牌桶的令牌数量为38。但是如果每秒钟采用的tick数量过大,则计算机系统的响应精度会低于tick的精度,导致QoS控流精度降低。但是采用固定的放入令牌桶中令牌的数量采用固定的方式时,可能会导致1秒钟放入令牌桶的总数量小于限流的IO设定值,导致限流存在误差,不能精确限制每个块设备的QoS,进而可能导致块存储的IO输出存在波动。
基于此,对令牌桶算法进行了优化,为了与传统的令牌桶算法进行区分,本申请实施例中称为优化的令牌桶算法。优化的令牌桶算法中在每个tick产生令牌放入令牌桶时并非通过每个tick产生固定数量的令牌的方式。而是基于设定规则在每秒包括的N个时钟周期tick分别产生对应数量的令牌加入令牌桶,即令牌桶在每秒包括的N个时钟周期分别加入的令牌数量满足设定规则,使得所述N个时钟周期加入令牌桶的令牌总数量为QoS设定值,N为大于1的整数,从而防止块设备的IO输出存在波动,保证稳定性。参见图3所示为优化的令牌桶算法实现示意图。
需要说明的是,本申请实施例不同的QoS类型对应不同的令牌桶。一些实施例中,不同的QoS类型对应不同的QoS设定值。当然某两个QoS类型对应的QoS设定值也可以相同。
QoS类型可以包括如下至少一项:
每秒传输的IO请求的数量IOPS,每秒能够传输的字节数BPS,读取操作请求的IOPS,读取操作请求的BPS,写入操作请求的IOPS,或者,写入操作请求的BPS。
作为一种举例,设定规则满足如下公式(1)所示的条件:
其中,current_tick_token表示当前的tick需要生成的令牌数量;current_tick表示当前的tick序号;ticks_per_sec表示每秒钟包括的tick数量。例如ticks_per_sec为20。limit表示块设备的QoS设定值。表示向下取整。
结合上述优化的令牌桶算法,本申请实施例提供的输入输出的控制方法流程可以参见图4所示。本申请实施例提供的输入输出的控制方法可以由输入输出的控制装置来实现。输入输出的控制装置可以部署于块设备中。也就是说,本申请实施例中每个块设备对接收的IO请求单独进行控流。
401,接收第一IO请求,并将第一IO请求加入到IO请求队列中,第一IO请求的类型为数据的写入操作请求或者数据的读取操作请求。IO请求队列可以称为IO quene。
402,从IO请求队列中获取第一IO请求,在确定当前配置的服务质量QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对第一IO请求进行数据处理。令牌桶在每秒包括的N个时钟周期分别加入的令牌数量满足设定规则,使得N个时钟周期加入令牌桶的令牌总数量为服务质量QoS设定值,N为大于1的整数。
一些实施例中,在针对第一IO请求进行处理时,可以是通过IO处理线程触发块设备对第一IO请求进行处理。
本申请实施例可以仅对读取操作请求进行控流,也可以仅对写操作请求进行控流,也可以对读取操作请求和写操作请求均进行控流。对读取操作请求和写操作请求均进行控流时,可以对读取操作请求和写操作请求分开控流,也可以统一控流,即针对IO请求不区分读取操作请求和写操作请求。比如,对写入操作请求敏感的场景,可以仅针对写入操作请求进行控流,则针对读取操作请求不进行限流,可以提升控流效果。
一个示例中,可以针对IOPS和/或BPS的控流,即对不区分读写请求的读写控流。配置的QoS类型可以包括IOPS和/或BPS。需要说明的是,在针对IOPS和BPS的控流时,IOPS和BPS分别对应一个令牌桶。进一步在执行步骤302时,可以确定IOPS令牌桶中剩余令牌的数量且BPS令牌桶中剩余令牌的数量均满足数量要求时,针对第一IO请求进行数据处理。比如,IOPS令牌桶中剩余令牌的数量包括至少一个令牌且BPS令牌桶包括的令牌数量大于第一IO请求的数据的字节数时,针对该第一IO请求进行数据处理。
另一个示例中,可以单独针对读操作请求进行控流。则当前配置的QoS类型可以包括读取操作请求的IOPS和/或读取操作请求的BPS。需要说明的是,在针对读取操作请求的IOPS和读取操作请求的BPS的控流时,读取操作请求的IOPS和读取操作请求的BPS分别对应一个令牌桶。在第一IO请求为读取操作请求时,进一步在执行步骤302时,可以确定读取操作请求对应的IOPS令牌桶中剩余令牌的数量且读取操作请求对应的BPS令牌桶中剩余令牌的数量均满足数量要求时,针对第一IO请求进行数据处理。比如,读取操作请求的IOPS令牌桶中剩余令牌的数量包括至少一个令牌且读取操作请求的BPS令牌桶包括的令牌数量大于第一IO请求所读数据的字节数时,针对该第一IO请求进行数据处理。
又一个示例中,可以单独针对写操作请求进行控流。则当前配置的QoS类型可以包括写入操作请求的IOPS和/或写入操作请求的BPS。需要说明的是,在针对写入操作请求的IOPS和写入操作请求的BPS的控流时,写入操作请求的IOPS和写入操作请求的BPS分别对应一个令牌桶。在第一IO请求为写入操作请求时,进一步在执行步骤302时,可以确定写入操作请求对应的IOPS令牌桶中剩余令牌的数量且写入操作请求对应的BPS令牌桶中剩余令牌的数量均满足数量要求时,针对第一IO请求进行数据处理。比如,写入操作请求的IOPS令牌桶中剩余令牌的数量包括至少一个令牌且写入操作请求的BPS令牌桶包括的令牌数量大于第一IO请求所读数据的字节数时,针对该第一IO请求进行数据处理。
一些实施例中,本实施例支持QoS类型的更新。比如通过管理人员使用管理设备对需要控流的QoS类型进行配置。比如管理人员通过管理设备向分布式存储系统发送QoS配置信息,该QoS配置信息包括QoS类型数据,从而分布式存储系统可以根据QoS类型数据来更新当前配置的QoS类型。
在一些实施例中,在需要针对IO请求队列中的第一IO请求进行处理时,当前配置的QoS对应的令牌桶中剩余令牌数量不满足数量要求时,可以先将该第一IO请求加入IO阻塞队列(Blocker quene)。直到当前配置的QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,再从IO阻塞队列中取出第一IO请求进行数据处理。示例性地,IO阻塞队列包括至少一个IO请求时,禁止针对IO请求队列中包括的IO请求进行处理。可以理解为,在IO阻塞队列存在IO请求,则不会对其它的IO请求进行数据处理,从而可以保证IO请求的处理顺序,防止出现乱序,导致处理任务出现错误。
一些实施例中,本申请实施例还支持IO请求持续一定时间突发IO请求的场景。比如云主机开机场景,IO请求数量较高,需要保障块设备在一定时间内突发IO请求来加速开机,并且一段时间后可以恢复正常的IO能力。从而可以不过分的占用集群的IO资源。为了支持这种突发IO请求的场景,本申请实施例中的令牌桶对应的容量不再是QoS设定值,可以根据需求配置。比如,IOPS对应的令牌桶的容量可以根据IO请求突发时达到的数量最大值以及配置的第一持续突发时间来确定。IOPS对应的令牌桶是读取操作请求的IOPS对应的令牌桶,或者写入操作请求的IOPS对应的令牌桶,或者不区分读写的IOPS对应的令牌桶。例如,读取操作请求的IOPS对应的令牌桶的容量可以是根据读取操作请求突发时达到的数量最大值以及配置的持续突发时间来确定。写入操作请求的IOPS对应的令牌桶的容量可以是根据写入操作请求突发时达到的数量最大值以及配置的持续突发时间来确定。该配置的第一持续突发时间可以根据不同应用场景的经验值来确定。IO请求突发时达到的数量最大值可以根据不同应用场景的经验值确定,也可以通过对块设备的IO请求进行测试得到。也可以周期性的监测IO请求突发时达到的数量,从而更新IO请求突发时达到的数量最大值。
再比如,BPS对应的令牌桶的容量可以根据IO请求突发时达到的字节数最大值以及配置的第二持续突发时间来确定。BPS对应的令牌桶是读取操作请求的BPS对应的令牌桶,或者写入操作请求的BPS对应的令牌桶,或者不区分读写的BPS对应的令牌桶。例如,读取操作请求的BPS对应的令牌桶的容量可以是根据读取操作请求突发时达到的字节数最大值以及配置的持续突发时间来确定。写入操作请求的BPS对应的令牌桶的容量可以是根据写入操作请求突发时达到的数量最大值以及配置的持续突发时间来确定。该配置的第二持续突发时间可以根据不同应用场景的经验值来确定。IO请求突发时达到的字节数最大值可以根据不同应用场景的经验值确定,也可以通过对块设备的IO请求的字节数进行测试得到。也可以周期性的监测突发时达到的字节数,从而更新IO请求突发时达到的字节数最大值。
一些实施例中,本实施例中通过配置的方式更新上述提及的QoS设定值(limit)、所述IO请求突发时达到的数量最大值、所述第一持续突发时间、IO请求突发时达到的字节数最大值、或者所述第二持续突发时间。比如管理人员通过管理设备更新块设备的QoS参数。比如,将存储后端的元数据中的QoS参数进行更新。然后通知到块设备。从而块设备可以存储后端获取更新后的QoS参数,然后读入内存。QoS参数包括如下至少一项:所述QoS设定值、所述IO请求突发时达到的数量最大值、所述第一持续突发时间、IO请求突发时达到的字节数最大值、或者所述第二持续突发时间。
作为一种举例,QoS参数配置可以参见表1所示。
表1
其中,IOPS_READ表示读取操作请求的IOPS,IOPS_WRITE表示写入操作请求的IOPS,BPS_READ表示读取操作请求的BPS,BPS_WRITE表示写入操作请求的BPS。eds_qos_iops_limit表示IOPS的令牌桶对应的QoS设定值所采用的配置参数。eds_qos_bps_limit表示BPS的令牌桶对应的QoS设定值所采用的配置参数,eds_qos_iops_read_limit表示读取操作请求的IOPS的令牌桶对应的QoS设定值所采用的配置参数,eds_qos_iops_write_limit表示写入操作请求的IOPS的令牌桶对应的QoS设定值所采用的配置参数,eds_qos_bps_read_limit表示读取操作请求的BPS的令牌桶对应的QoS设定值所采用的配置参数,eds_qos_bps_write_limit表示写入操作请求的BPS的令牌桶对应的QoS设定值所采用的配置参数。eds_qos_iops_burst表示IO请求突发时达到的数量最大值所采用的配置参数,eds_qos_bps_burst表示IO请求突发时达到的字节数最大值所采用的配置参数,eds_qos_iops_read_burst表示读取操作请求突发时达到的数量最大值所采用的配置参数,eds_qos_iops_write_burst表示写入操作请求突发时达到的数量最大值所采用的配置参数,eds_qos_bps_read_burst表示读取操作请求突发时达到的字节数最大值所采用的配置参数,eds_qos_bps_write_burst表示写入操作请求突发时达到的字节数最大值所采用的配置参数。eds_qos_iops_burst_second表示针对IOPS对应的令牌桶配置的持续突发时间;eds_qos_bps_burst_second表示针对BPS对应的令牌桶配置的持续突发时间;eds_qos_iops_read_burst_second表示针对读取操作请求的IOPS对应的令牌桶配置的持续突发时间;eds_qos_iops_write_burst_second表示针对写入操作请求的IOPS对应的令牌桶配置的持续突发时间;eds_qos_bps_read_burst_second表示针对读取操作请求的BPS对应的令牌桶配置的持续突发时间;eds_qos_bps_write_burst_second表示针对写入操作请求的BPS对应的令牌桶配置的持续突发时间。
目前的令牌桶算法中令牌桶的容量采用QoS设定值,导致块存储不支持突发,最大的IO能力就是QoS设定值,不满足云场景的需求。比如开机场景。本申请实施例中令牌桶的容量不再是limit值,而是burst*time值,参见图3所示的优化的令牌桶算法示意图。其中burst为块存储在突发时能达到的IO值,一般比limit值大。time表示块存储设定的持续突发时间。针对IOPS对应的令牌桶的容量时,IO值即为IO请求突发时达到的数量最大值,time等于第一持续突发时间。针对BPS对应的令牌桶的容量时,IO值即为IO请求突发时达到的字节数最大值,time等于第二持续突发时间。
通过本申请实施例提供的上述支持IO突发的设计,可以支持块存储持续突发,则可以通过如下公式(2)确定的实际支持的最大持续突发时间:
real_time=capacity/(burst-limit) 公式(2)
real_time为实际最大持续突发时间,capacity为令牌桶的容量,即为burst*limit。优化后的令牌桶算法可以解决传统令牌桶算法出现的控流波动的问题以及不支持突发IO的问题。举例来说,对块存储的QoS设定值(limit)为950,根据传统的令牌桶算法,每秒中包括的tick数量取值为20,则每个tick放入令牌桶的令牌数量为47或者48;当每个tick放入的令牌数为47时,则一秒钟放入的令牌数为940,误差为1.05%;当每个tick放入的令牌数为48时,则一秒钟放入的令牌数为960,误差为1.05%。若采用优化后的令牌桶算法,举例来说,通过上述公式(1)提供的方案来确定每个tick产生的令牌数量,则每个tick的令牌生产数的分布如表2所示。
表2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
47 48 47 48 47 48 47 48 47 48 47 48 47 48 47 48 47 48 47 48
其中,表2中第1行为tick的序号,第二行为对应tick生成的令牌数,最终生成的令牌总数为950。例如,对块存储的QoS的limit值设置为950,突发burst值为1500,突发时间time为60秒,则实际最大持续突发时间为163秒。
通过上述方案,对于采用cgroup以及传统令牌桶算法对块存储的QoS控流存在IO不稳定的问题进行优化,使得CStor分布式块设备的IO波动范围在0.01%以内。此外,针对cgroup以及传统令牌桶算法不支持突发的问题进行优化,使得新的令牌桶支持IOPS和BPS突发,满足公有云云硬盘的使用场景。
基于以上实施例,本申请实施例还提供一种QoS控流系统500,参见图5所示,该QoS控流系统中包括QoS控制模块510和QoS配置模块520。QoS控制模块也可以简称为控制模块。QoS配置模块也可以简称为配置模块。QoS控制模块510用于采用上述提供的优化的令牌桶算法来进行IPOS和/或BPS的控制。QoS配置模块520用于对各个QoS参数的取值进行配置。QoS控制模块510可以用于执行上述提及的步骤401-402。如下对QoS控制模块510的具体实现过程进行描述。参见图6所示为QoS控制模块510实现QoS控流的示意图。QoS控制模块510可以通过用户接口来接收上层应用下发的IO请求。QoS控制模块510还包括令牌桶、IO请求队列、IO阻塞队列。QoS控制模块510中还创建有定时线程(timer thread),用于在每个时钟周期tick生成令牌放入令牌桶中。QoS控制模块510中还创建有IO处理线程,IO处理线程可以包括读/写IO线程(read/write IO thread)。用户接口层也可以用distributed blockstorge表示。结合图6来说,QoS控制模块510处理IO的流程可以参见图7所示。QoS控制模块510通过用户接口接收到来自上层应用的IO请求。将IO请求放入IO请求队列。IO请求在下发到存储层进行处理之前,需要令牌桶中具有足够的令牌数量。作为一种举例,以配置的QoS类型为IOPS控流以及BPS吞吐量控流为例。IOPS以及BPS分别对应自己的令牌桶。当IOPS令牌桶以及BPS的令牌桶中都能获取到足够数量的令牌时,才能将IO请求继续下发。比如,IOPS令牌桶具有至少1个令牌时,IOPS令牌桶才满足数量要求。再比如,IOPS令牌桶具有大于或者等于IO请求中buffer字节数量的令牌时,BPS令牌桶才满足数量要求。在确定IOPS令牌桶以及BPS的令牌桶中都能获取到足够数量的令牌,才能将IO请求队列中的IO请求下发到IO处理线程。如果此时BPS令牌桶或者IOPS令牌桶中令牌数不足,则将该IO请求放到IO阻塞队列中,并注册callback函数。当BPS令牌桶或者IOPS令牌桶具有足够多的令牌时BPS令牌桶或者IOPS令牌桶通知IO阻塞队列。IO阻塞队列根据注册的callback函数将IO请求放回到IO请求队列中,IO请求队列继续将该IO请求下发给IO处理线程。一些实施例中,只要IO阻塞队列有IO请求,IO请求队列中的其他IO请求则不能被下发,这可以保证IO请求的执行先后顺序,防止乱序。
如下结合图8对配置QoS参数实现进行描述。QoS参数可以包括表1中的至少一项。用于对块设备进行管理的管控模块,比如配置中心在创建块设备时会根据需要设置好块设备相应的QoS参数配置。比如通过配置元数据(metadata)的方式,将块设备的QoS参数配置值保存到分布式存储系统的存储后端。存储后端可以存储层的实际硬件存储设备。当块设备启动时从存储后端读取对应的QoS参数配置值,加载到内存中使用。若块设备在使用过程中通过其他进程更改了某个QoS参数配置值,其他进程会将更改的QoS参数配置值写入到存储后端,并通知QoS配置模块520有配置参数更新,QoS配置模块520在确定QoS参数配置值更新后,根据更新后QoS参数配置值重新刷新该块设备的QoS配置参数,可以重置内存中已经加载好的QoS参数配置值。
一些实施例中,上述所提及的输入输出的控制装置可以部署如上所述的QoS控制系统。
本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请实施例还提供另一种输入输出的控制装置900,参见图9所示,包括:
通信接口901,存储器902以及处理器903;
其中,所述输入输出的控制装置900通过所述通信接口901与其它设备(比如客户端)进行通信,比如接收IO请求,或者传输数据。存储器902,用于存储程序指令。处理器903,用于调用所述存储器902中存储的程序指令,按照获得的程序执行上述描述的方法。
本申请实施例中不限定上述通信接口901、存储器902以及处理器903之间的具体连接介质,比如总线,总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例还提供一种计算机可读存储介质,包括程序代码,当程序代码在计算机上运行时,程序代码用于使计算机执行上述本申请实施例提供的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (7)

1.一种输入输出的控制方法,其特征在于,所述方法应用于块设备,包括:
接收第一IO请求,并将所述第一IO请求加入到IO请求队列中,所述第一IO请求的类型为数据的写入操作请求或者数据的读取操作请求;
从所述IO请求队列中获取所述第一IO请求,在确定所述块设备当前配置的服务质量QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对所述第一IO请求进行数据处理;
其中,所述令牌桶在每秒包括的N个时钟周期分别加入的令牌数量满足设定规则,使得所述N个时钟周期加入令牌桶的令牌总数量为服务质量QoS设定值,N为大于1的整数;
所述当前配置的QoS类型包括每秒传输的IO请求的数量IOPS和/或每秒能够传输的字节数BPS;或者,
所述当前配置的QoS类型包括读取操作请求的IOPS和/或读取操作请求的BPS;或者,
所述当前配置的QoS类型包括写入操作请求的IOPS和/或写入操作请求的BPS;
所述IOPS对应的令牌桶的容量是根据IO请求突发时达到的数量最大值以及配置的第一持续突发时间来确定的;或者,
所述BPS对应的令牌桶的容量是根据IO请求突发时达到的字节数最大值以及配置的第二持续突发时间来确定的;
所述IO请求包括读取操作请求和/或写入操作请求;
所述设定规则满足如下公式所示的条件:
其中,current_tick_token表示当前的时钟周期需要生成的令牌数量,current_tick表示当前的时钟周期序号,ticks_per_sec表示每秒钟包括的时钟周期数量,limit表示块设备的QoS设定值,表示向下取整。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收通知消息,所述通知消息用于通知QoS参数已更新;所述QoS参数包括如下至少一项:所述QoS设定值、所述IO请求突发时达到的数量最大值、所述第一持续突发时间、IO请求突发时达到的字节数最大值、或者所述第二持续突发时间;
根据所述通知消息更新所述QoS参数。
3.如权利要求1-2任一项所述的方法,其特征在于,所述方法还包括:
在确定当前配置的QoS类型对应的令牌桶中剩余令牌的数量不满足数量要求时,将所述第一IO请求加入IO阻塞队列,直到所述QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对所述第一IO请求进行处理;
其中,所述IO阻塞队列包括至少一个IO请求时,禁止针对IO请求队列中包括的IO请求进行处理。
4.如权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
接收QoS配置信息,所述QoS配置信息包括QoS类型数据;
根据所述QoS类型数据更新所述当前配置的QoS类型。
5.一种输入输出的控制装置,其特征在于,所述装置应用于块设备,包括:
接口模块,用于接收第一IO请求,并将所述第一IO请求加入到IO请求队列中,所述第一IO请求的类型为数据的写入操作请求或者数据的读取操作请求;
控制模块,用于从所述IO请求队列中获取所述第一IO请求,在确定所述块设备当前配置的服务质量QoS类型对应的令牌桶中剩余令牌的数量满足数量要求时,针对所述第一IO请求进行数据处理;
其中,所述令牌桶在每秒包括的N个时钟周期分别加入的令牌数量满足设定规则,使得所述N个时钟周期加入令牌桶的令牌总数量为服务质量QoS设定值,N为大于1的整数;
所述当前配置的QoS类型包括每秒传输的IO请求的数量IOPS和/或每秒能够传输的字节数BPS;或者,
所述当前配置的QoS类型包括读取操作请求的IOPS和/或读取操作请求的BPS;或者,
所述当前配置的QoS类型包括写入操作请求的IOPS和/或写入操作请求的BPS;
所述IOPS对应的令牌桶的容量是根据IO请求突发时达到的数量最大值以及配置的第一持续突发时间来确定的;或者,
所述BPS对应的令牌桶的容量是根据IO请求突发时达到的字节数最大值以及配置的第二持续突发时间来确定的;
所述IO请求包括读取操作请求和/或写入操作请求;
所述设定规则满足如下公式所示的条件:
其中,current_tick_token表示当前的时钟周期需要生成的令牌数量,current_tick表示当前的时钟周期序号,ticks_per_sec表示每秒钟包括的时钟周期数量,limit表示块设备的QoS设定值,表示向下取整。
6.一种输入输出的控制装置,其特征在于,存储器以及处理器;
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1~4任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1~4中任一项所述的方法。
CN202111580795.4A 2021-12-22 2021-12-22 一种输入输出的控制方法、装置及介质 Active CN114465958B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111580795.4A CN114465958B (zh) 2021-12-22 2021-12-22 一种输入输出的控制方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111580795.4A CN114465958B (zh) 2021-12-22 2021-12-22 一种输入输出的控制方法、装置及介质

Publications (2)

Publication Number Publication Date
CN114465958A CN114465958A (zh) 2022-05-10
CN114465958B true CN114465958B (zh) 2024-04-26

Family

ID=81405403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111580795.4A Active CN114465958B (zh) 2021-12-22 2021-12-22 一种输入输出的控制方法、装置及介质

Country Status (1)

Country Link
CN (1) CN114465958B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272345A (zh) * 2008-04-29 2008-09-24 杭州华三通信技术有限公司 一种流量控制的方法、系统和装置
CN105515880A (zh) * 2016-01-25 2016-04-20 重庆邮电大学 一种适合融合网络的令牌桶流量整形方法
CN107276827A (zh) * 2017-07-25 2017-10-20 郑州云海信息技术有限公司 一种分布式存储系统中Qos的实现方法及装置
CN110417677A (zh) * 2019-07-29 2019-11-05 北京易捷思达科技发展有限公司 一种基于Ceph分布式存储Osd端数据Recovery的QoS控制方法
CN112087401A (zh) * 2020-09-10 2020-12-15 星辰天合(北京)数据科技有限公司 分布式存储中实现服务质量的方法和装置
CN112463066A (zh) * 2020-12-11 2021-03-09 苏州浪潮智能科技有限公司 一种控制分布式块存储逻辑卷突发服务质量的方法和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8379630B2 (en) * 2010-06-15 2013-02-19 Qualcomm Incorporated Methods and apparatus related to controlling access to communications resources
US11483246B2 (en) * 2020-01-13 2022-10-25 Vmware, Inc. Tenant-specific quality of service

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272345A (zh) * 2008-04-29 2008-09-24 杭州华三通信技术有限公司 一种流量控制的方法、系统和装置
CN105515880A (zh) * 2016-01-25 2016-04-20 重庆邮电大学 一种适合融合网络的令牌桶流量整形方法
CN107276827A (zh) * 2017-07-25 2017-10-20 郑州云海信息技术有限公司 一种分布式存储系统中Qos的实现方法及装置
CN110417677A (zh) * 2019-07-29 2019-11-05 北京易捷思达科技发展有限公司 一种基于Ceph分布式存储Osd端数据Recovery的QoS控制方法
CN112087401A (zh) * 2020-09-10 2020-12-15 星辰天合(北京)数据科技有限公司 分布式存储中实现服务质量的方法和装置
CN112463066A (zh) * 2020-12-11 2021-03-09 苏州浪潮智能科技有限公司 一种控制分布式块存储逻辑卷突发服务质量的方法和设备

Also Published As

Publication number Publication date
CN114465958A (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
US11601512B2 (en) System and method for throttling service requests having non-uniform workloads
CN110166376B (zh) 流量控制方法及装置、系统、服务器、计算机可读介质
US20170031622A1 (en) Methods for allocating storage cluster hardware resources and devices thereof
US9419904B2 (en) System and method for throttling service requests using work-based tokens
CN108829352B (zh) 一种分布式存储系统的用户配额方法及系统
CN113037794B (zh) 计算资源配置调度方法、装置及系统
CN106411558B (zh) 一种数据流量限制的方法及系统
CN110515724B (zh) 资源配置方法、装置、监视器及机器可读存储介质
CN110661824B (zh) 分布式集群中服务器的流量调控方法及存储介质
CN108958975B (zh) 一种控制数据恢复速度的方法、装置及设备
US10560385B2 (en) Method and system for controlling network data traffic in a hierarchical system
CN111158878B (zh) 资源转移请求线程控制方法、装置及存储介质
CN112165436A (zh) 流量控制方法、装置及系统
CN115396377B (zh) 对象存储的服务质量优化方法、装置、设备及存储介质
CN111245732A (zh) 一种流量控制方法、装置及设备
US11354164B1 (en) Robotic process automation system with quality of service based automation
CN113760549A (zh) 一种pod部署方法及装置
CN112260962B (zh) 一种带宽控制方法及装置
CN111404828B (zh) 实现全局流控的方法及装置
CN114465958B (zh) 一种输入输出的控制方法、装置及介质
CN116820324A (zh) 存储扩容方法及装置、存储介质和电子设备
CN106484310B (zh) 一种存储阵列操作方法和装置
CN115878309A (zh) 资源分配方法、装置、处理核、设备和计算机可读介质
CN115827745A (zh) 内存数据库集群的实现方法、装置及内存数据库集群
CN115914236B (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