CN106547629A - 一种状态机副本管理模型的优化方法 - Google Patents
一种状态机副本管理模型的优化方法 Download PDFInfo
- Publication number
- CN106547629A CN106547629A CN201610958658.2A CN201610958658A CN106547629A CN 106547629 A CN106547629 A CN 106547629A CN 201610958658 A CN201610958658 A CN 201610958658A CN 106547629 A CN106547629 A CN 106547629A
- Authority
- CN
- China
- Prior art keywords
- queue
- order
- big
- replica
- little
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种状态机副本管理模型的优化方法,该方法中当一个大队列被阻塞住了,被阻塞的大队列会通知其他大队列,说明其对应的小队列即将为空,其他大队列的命令可以借用,收到消息的大队列如果还没有碰到需要同步的命令,就会改变二次分发的映射函数,把队列里的命令一部分分发到已经被阻塞的空闲的小队列里,一部分分发到自己对应的小队列里。当同步命令处理完毕,各个大队列的分发方案将恢复原样,不再占用他人地盘,那么即使分发到各个大队列的命令不均衡,导致有些队列的同步命令来得早而被阻塞,也不会降低系统并发度,系统资源能得到充分利用,吞吐量并不会随着同步命令数量的增加而有大幅降低。
Description
技术领域
本发明涉及分布式系统副本领域,更具体地,涉及一种状态机副本管理模型的优化方法。
背景技术
在分布式系统中,副本管理是一项重要而困难的任务。为了提高分布式系统的可靠性,常常通过冗余备份,将数据保存多份置于不同地理位置。状态机副本管理(StateMachine Replication,简称SMR,后同)是近年来研究比较热门的高一致性的副本管理策略。根据状态机的性质,SMR要求所有副本在任意时刻步调保持一致,即做同样的操作,每份副本数据有同样的更新结果,对用户做出同样的响应。在严苛的一致性要求下,各个副本不仅协调一致,还能及时检测任意节点的错误,实现系统的可靠性(容错)。但是,一致性级别与系统运作的整体效率往往是成反比的,所以如何在维护要求的一致性级别基础上最大化系统吞吐量,是副本管理中很关键的问题。
SMR实现的手段是,每个副本执行同样顺序的一个命令流。这个顺序由某个一致性协议(例如经典的paxos协议)来保证,并且让所有副本都同意一个任意的、一定的顺序。命令流在副本的执行顺序是确定性的,所以假如所有节点正常运行,那么系统中所有副本将在任意时刻保证一致。
SMR是实现分布式系统中副本一致性的有效策略,但从前文介绍中不难看出,由于副本对请求的处理是先排序再执行,而执行的过程是确定性的,所以一条命令由一条线程来执行就可以了。这样就大大浪费了当今硬件的多核多线程的强大功能,降低系统吞吐量和效率(如图1所示,三个副本地位相等,没有主从之分。每个副本顺序执行所有请求,顺序一致。所以三个副本保持强一致性,但串行执行使得系统资源被严重浪费,性能低下)。
现有技术中对SMR模型进行了改进,大概有如下种方案:
1、Pipelined SMR(流水线SMR模型)
副本节点单线程地执行请求,并不意味着整个节点的逻辑必须是单线程的,一个节点中多线程也能协调处理请求。例如,一条线程接收请求,一条线程执行,一条线程返回结果。然而,执行过程也只是用一条线程;
2、Sequential Delivery-Parallel Execution(SPDE,顺序分发-并行执行模型)
传统的SMR是把请求放到一致性协议层进行排序,再执行之。然而,人们发现不是所有执行命令都访问所有有关联的变量,而对于那些访问无关变量的命令,副本节点可以并行地执行,而不会打破系统的一致性。命令的内部依赖是对特定系统而言的,必须由开发者显示提供,或者自动地从服务代码中提取到。
有些SDPE模型在节点副本端加上确定性调度器用以进行任务并行分发,该调度器接收通过一致性协议层排好序的命令序列,检查命令的依赖性,再发送给工作线程池执行,并且调度器还能平衡各个线程的工作负载,对于负载比较少的线程,调度器可以分配多一些命令,只要该命令不会跟在其他线程上执行的命令有冲突;
3、Parallel Delivery-Parallel Execution(PEPD,并行分发-并行执行模型)
PDPE是SDPE的改进,除了实现命令执行的并行化,在一致性协议层,实现了命令排序的并行化。
PDPE没有调度器,每个副本节点上有多条线程,并发地传递和执行多条无关的排好序的命令流。为了确保正确性,一个流里面的命令必须跟另一个流里的命令是无依赖的。
为确保无依赖性,PDPE跟SDPE的在副本节点端确定命令依赖性的模型不同,PDPE是在客户端,在命令被排序之前,确定命令的依赖性的。客户端把无依赖的命令组播到不同的组播组,在副本节点中以组播组为单位并发排序。PDPE实现了一个全并行的模型,这个模型中,无依赖的命令被并行地排序,传输,执行。有依赖的命令会在专用的组播组中排序,被串行化执行。
然而,若同个命令被组播到不同的两个组,那么就需要同步这个命令的执行了。策略是,确定地选择其中一条执行线程,等待来自另一条执行线程的通知,当这个组播组里所有线程都收到了这个命令,线程执行执行命令,并周知组里面被阻塞等待的线程。
从上文描述中可以看出,前面几种方案都在不断挖掘命令的并行度,尽量使无依赖的命令可以并行执行,提高系统吞吐量。其中,Pipelined SMR不算真正意义上的并行,最终依然是单线程执行命令。SDPE虽然做到了执行并行化,但在一致性协议层的排序依然是串行的。PDPE虽然做到了排序跟执行并行,但当一个命令被组播到多个执行线程的时候,对该命令的同步使得只有一条线程在执行命令,其他线程被阻塞,带来了不小的同步开销。(如图2所示,从左到右分别为:传统SMR、Pipelined SMR、SDPE、PDPE模型)
PDPE存在负载不均衡的问题,根本原因是客户端发送的请求,经过客户端的代理分发之后不一定是平均的(因为分发的映射函数是静态的),导致一些线程任务量很重,而其他的线程任务量轻。当不存在需要同步的请求时,系统已经负载不均了,当同步请求比例上升,情况将进一步恶化。
根据PDPE的算法,在同步请求到来时候,该请求所被组播到组里的所有线程,需要等待该组其他线程都接收到了这个同步请求,然后等待某条线程执行完毕,再处理下一个请求。当每条线程的任务量不同时,任务量大的线程可能会使得其他无辜的线程浪费很多时间,从而降低系统吞吐量。
所以,要想使得PDPE变得负载均衡,最直接的办法就是能调整客户端的代理将请求组播到副本节点的方案,使其根据当前负载情况,把未来的请求更加平均地组播到副本节点的线程中。
要做到动态调整客户端代理对客户请求的分发方案,需要对一段时间内的请求分发情况做统计,权衡,再决定如何修改方案,PDPE对同步请求的处理,也是严重地降低了系统性能。
发明内容
本发明提供一种状态机副本管理模型的优化方法,该方法使得命令同步的操作更加灵活,充分利用资源,以提高系统效率。
为了达到上述技术效果,本发明的技术方案如下:
一种状态机副本管理模型的优化方法,包括以下步骤:
S1:命令在客户端分析依赖性,被分发到副本节点的各个组中,由副本节点按照一致性协议来对命令并行排序,形成多条已排序的命令流,其中每条命令流对应一个命令队列,称为大队列,大队列又对应多个互相独立的小队列;
S2:命令在副本节点中执行的过程中,该副本节点判断其收到的命令是否是同步命令,若是同步命令,跳转至S3,若不是同步命令,跳转至S4;
S3:该副本节点通知其他副本节点执行同步命令,并判断所述同步命令是否执行完毕,若执行完毕,跳转至S5,若没有执行完毕,等待至执行完毕;
S4:该副本节点判断是否有收到其他副本节点的大队列阻塞的消息,若收到其他副本节点的大队列阻塞的消息,该副本节点改变分发的映射函数并等待其大队列对应的所有小队列命令执行完毕,若没有收到其他副本节点的大队列阻塞的消息,该副本节点根据映射函数二次分发到小队列中开始执行命令;
S5:该副本节点等待自己所有小队列中的命令执行完毕,之后恢复最初的映射函数并跳转至S1。
进一步地,当任意副本节点的大队列被阻塞住了,被阻塞的大队列会通知其他副本节点的大队列,其对应的小队列即将为空,其他大队列的命令可借用该小队列的命令。
进一步地,收到其他副本节点的大队列阻塞消息的副本节点的大队列如果还没有收到同步的命令,就会改变二次分发的映射函数,把队列里的命令一部分分发到已经被阻塞的空闲的小队列里,一部分分发到自己对应的小队列里。
进一步地,每一副本节点中的大队列中存放来自客户端的已排序的命令流,每个队列中的命令个数都不同,需要同步的命令的位置也不同。
进一步地,当任意副本节点中的大队列不为空时,副本节点会对会大队列命令进行命令的依赖性分析,并对命令做第二次的并行度挖掘,把不冲突的命令分发到对应的小队列里面,供执行线程处理,若碰到需要同步的命令,则不会做二次的并行度挖掘。
与现有技术相比,本发明技术方案的有益效果是:
本发明方法中,当一个大队列被阻塞住了,被阻塞的大队列会通知其他大队列,说明其对应的小队列即将为空,其他大队列的命令可以借用,收到消息的大队列如果还没有碰到需要同步的命令,就会改变二次分发的映射函数,把队列里的命令一部分分发到已经被阻塞的空闲的小队列里,一部分分发到自己对应的小队列里。当同步命令处理完毕,各个大队列的分发方案将恢复原样,不再占用他人地盘,那么即使分发到各个大队列的命令不均衡,导致有些队列的同步命令来得早而被阻塞,也不会降低系统并发度,系统资源能得到充分利用,吞吐量并不会随着同步命令数量的增加而有大幅降低。
附图说明
图1为现有技术中SMR命令执行过程示意图;
图2为现有技术中SMR、Pipelined SMR、SDPE、PDPE模型示意图;
图3为本发明方法流程图;
图4为本发明中副本节点的命令存储模型。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图3所示,一种状态机副本管理模型的优化方法,包括以下步骤:
S1:命令在客户端分析依赖性,被分发到副本节点的各个组中,由副本节点按照一致性协议来对命令并行排序,形成多条已排序的命令流,其中每条命令流对应一个命令队列,称为大队列,大队列又对应多个互相独立的小队列;
S2:命令在副本节点中执行的过程中,该副本节点判断其收到的命令是否是同步命令,若是同步命令,跳转至S3,若不是同步命令,跳转至S4;
S3:该副本节点通知其他副本节点执行同步命令,并判断所述同步命令是否执行完毕,若执行完毕,跳转至S5,若没有执行完毕,等待至执行完毕;
S4:该副本节点判断是否有收到其他副本节点的大队列阻塞的消息,若收到其他副本节点的大队列阻塞的消息,该副本节点改变分发的映射函数并等待其大队列对应的所有小队列命令执行完毕,若没有收到其他副本节点的大队列阻塞的消息,该副本节点根据映射函数二次分发到小队列中开始执行命令;
S5:该副本节点等待自己所有小队列中的命令执行完毕,之后恢复最初的映射函数并跳转至S1。
本实施例中,大队列中存放来自客户端的已排序的命令流,每个队列中的命令个数都不同,需要同步的命令的位置也不同。
如图4所示,每个大队列对应3个小队列,说明大队列中的命令可被分发到3个队列中,加大并发度。工作线程到小队列中轮询,如果小队列中有待执行的命令,便执行之。最高并发度为小队列的数量。
当大队列碰到需要同步的请求(三角形),那么其会被阻塞,就不能再分发命令到小队列中了。但在我们的模型中,其他大队列收到消息,会把命令分发过来,使得各个小队列都不为空,保证系统并发度和效率。
客户端、一致性协议层跟PDPE一样,命令在客户端分析依赖性,被分发到副本节点的各个组中,由节点按照一致性协议来并行排序,最终形成多个已排序的命令流。这是命令排序逻辑。
在执行逻辑中,每条命令流对应一个命令队列,称之大队列,队列由包含多个互相独立的小队列。当大队列不为空,会分析命令的依赖性,对命令做第二次的并行度挖掘,把不冲突的命令分发到对应的小队列里面,供执行线程处理。若碰到需要同步的命令,则不做二次分发,因为队列会被阻塞,在PDPE的做法中,此时应该等到副本节点中其他所有大队列都执行到同样的需要同步的命令,然后再统一处理这个命令,才能解阻塞,继续命令的执行。
在我们的模型中,当一个大队列被阻塞住了,那么其对应的小队列的命令迟早将被执行完,小队列就空着,如果不利用起来,则会白白浪费资源,也降低系统并发度和效率。于是,被阻塞的大队列会通知其他大队列,说明其对应的小队列即将为空,其他大队列的命令可以借用。收到消息的大队列如果还没有碰到需要同步的命令,就会改变二次分发的映射函数,把队列里的命令一部分分发到已经被阻塞的空闲的小队列里,一部分分发到自己对应的小队列里。当同步命令处理完毕,各个大队列的分发方案将恢复原样,不再占用他人地盘。
这样一来,即使分发到各个大队列的命令不均衡,导致有些队列的同步命令来得早而被阻塞,也不会降低系统并发度,系统资源能得到充分利用,吞吐量并不会随着同步命令数量的增加而有大幅降低。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (5)
1.一种状态机副本管理模型的优化方法,其特征在于,包括以下步骤:
S1:命令在客户端分析依赖性,被分发到副本节点的各个组中,由副本节点按照一致性协议来对命令并行排序,形成多条已排序的命令流,其中每条命令流对应一个命令队列,称为大队列,大队列又对应多个互相独立的小队列;
S2:命令在副本节点中执行的过程中,该副本节点判断其收到的命令是否是同步命令,若是同步命令,跳转至S3,若不是同步命令,跳转至S4;
S3:该副本节点通知其他副本节点执行同步命令,并判断所述同步命令是否执行完毕,若执行完毕,跳转至S5,若没有执行完毕,等待至执行完毕;
S4:该副本节点判断是否有收到其他副本节点的大队列阻塞的消息,若收到其他副本节点的大队列阻塞的消息,该副本节点改变分发的映射函数并等待其大队列对应的所有小队列命令执行完毕,若没有收到其他副本节点的大队列阻塞的消息,该副本节点根据映射函数二次分发到小队列中开始执行命令;
S5:该副本节点等待自己所有小队列中的命令执行完毕,之后恢复最初的映射函数并跳转至S1。
2.根据权利要求1所述的状态机副本管理模型的优化方法,其特征在于,当任意副本节点的大队列被阻塞住了,被阻塞的大队列会通知其他副本节点的大队列,其对应的小队列即将为空,其他大队列的命令可借用该小队列的命令。
3.根据权利要求2所述的状态机副本管理模型的优化方法,其特征在于,收到其他副本节点的大队列阻塞消息的副本节点的大队列如果还没有收到同步的命令,就会改变二次分发的映射函数,把队列里的命令一部分分发到已经被阻塞的空闲的小队列里,一部分分发到自己对应的小队列里。
4.根据权利要求3所述的状态机副本管理模型的优化方法,其特征在于,每一副本节点中的大队列中存放来自客户端的已排序的命令流,每个队列中的命令个数都不同,需要同步的命令的位置也不同。
5.根据权利要求1-4任一项所述的状态机副本管理模型的优化方法,其特征在于,当任意副本节点中的大队列不为空时,副本节点会对会大队列命令进行命令的依赖性分析,并对命令做第二次的并行度挖掘,把不冲突的命令分发到对应的小队列里面,供执行线程处理,若碰到需要同步的命令,则不会做二次的并行度挖掘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610958658.2A CN106547629B (zh) | 2016-11-03 | 2016-11-03 | 一种状态机副本管理模型的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610958658.2A CN106547629B (zh) | 2016-11-03 | 2016-11-03 | 一种状态机副本管理模型的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547629A true CN106547629A (zh) | 2017-03-29 |
CN106547629B CN106547629B (zh) | 2020-05-26 |
Family
ID=58393538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610958658.2A Active CN106547629B (zh) | 2016-11-03 | 2016-11-03 | 一种状态机副本管理模型的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547629B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829511A (zh) * | 2018-05-07 | 2018-11-16 | 中山大学 | 基于状态机副本管理模型的负载均衡调节方法 |
CN111212100A (zh) * | 2018-11-22 | 2020-05-29 | 财团法人工业技术研究院 | 消息队列发布与订阅的同步方法及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006076530A2 (en) * | 2005-01-12 | 2006-07-20 | Wandisco, Inc. | Distributed computing systems and system components thereof |
CN103946819A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
CN103414761B (zh) * | 2013-07-23 | 2017-02-08 | 北京工业大学 | 一种基于Hadoop架构的移动终端云资源调度方法 |
-
2016
- 2016-11-03 CN CN201610958658.2A patent/CN106547629B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006076530A2 (en) * | 2005-01-12 | 2006-07-20 | Wandisco, Inc. | Distributed computing systems and system components thereof |
CN103946819A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
CN103414761B (zh) * | 2013-07-23 | 2017-02-08 | 北京工业大学 | 一种基于Hadoop架构的移动终端云资源调度方法 |
Non-Patent Citations (2)
Title |
---|
SANTOS, N (SANTOS, NUNO): "Achieving high-throughput State Machine Replication in multi-core systems", 《 33RD IEEE INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (ICDCS)》 * |
杨英仪: "面向云存储副本复制的一致性关键技术研究", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829511A (zh) * | 2018-05-07 | 2018-11-16 | 中山大学 | 基于状态机副本管理模型的负载均衡调节方法 |
CN111212100A (zh) * | 2018-11-22 | 2020-05-29 | 财团法人工业技术研究院 | 消息队列发布与订阅的同步方法及其系统 |
CN111212100B (zh) * | 2018-11-22 | 2022-07-19 | 财团法人工业技术研究院 | 消息队列发布与订阅的同步方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106547629B (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9703610B2 (en) | Extensible centralized dynamic resource distribution in a clustered data grid | |
US20140108489A1 (en) | Flowlet-based processing | |
US10503562B2 (en) | Processing data using dynamic partitioning | |
CN109656911A (zh) | 分布式并行处理数据库系统及其数据处理方法 | |
CN103312825B (zh) | 一种数据分布存储方法和装置 | |
CN111295643A (zh) | 使用耐久性等级指示符管理计算集群 | |
Mendizabal et al. | Efficient and deterministic scheduling for parallel state machine replication | |
US9880970B2 (en) | Method for implementing highly available data parallel operations on a computational grid | |
Valvåg et al. | Cogset: a high performance MapReduce engine | |
WO2012020698A1 (en) | Primary-backup based fault tolerant method for multiprocessor systems | |
CN106547629A (zh) | 一种状态机副本管理模型的优化方法 | |
CN113590281B (zh) | 基于动态集中式调度的分布式并行模糊测试方法及系统 | |
Mikida et al. | Adaptive methods for irregular parallel discrete event simulation workloads | |
Gopalakrishna et al. | Untangling cluster management with Helix | |
CN106599184B (zh) | 一种Hadoop系统优化方法 | |
Higai et al. | A study of effective replica reconstruction schemes for the hadoop distributed file system | |
CN107851101A (zh) | 具有键/值存储检查点的基于流簇的处理 | |
Lim et al. | Heuristic neighbor selection algorithm for decentralized load balancing in clustered heterogeneous computational environment | |
CN108829511A (zh) | 基于状态机副本管理模型的负载均衡调节方法 | |
CN108846633A (zh) | 一种智能高效的卡任务处理方法 | |
Andler et al. | DeeDS NG: Architecture, design, and sample application scenario | |
CN108628708A (zh) | 云计算容错方法及装置 | |
Lee et al. | Supporting computing element heterogeneity in p2p grids | |
Hanh et al. | Objective-oriented algorithm for job scheduling in parallel heterogeneous systems | |
Cheng et al. | A malicious-resilient protocol for consistent scheduling problem in the cloud computing environment |
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 |