CN108009019B - 分布式数据定位实例的方法、客户端及分布式计算*** - Google Patents
分布式数据定位实例的方法、客户端及分布式计算*** Download PDFInfo
- Publication number
- CN108009019B CN108009019B CN201610964886.0A CN201610964886A CN108009019B CN 108009019 B CN108009019 B CN 108009019B CN 201610964886 A CN201610964886 A CN 201610964886A CN 108009019 B CN108009019 B CN 108009019B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- processed
- serialization result
- serialization
- 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
Links
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据定位实例的方法、客户端及分布式计算***,分布式计算***包括若干客户端以及至少一服务端,所述方法包括:目标客户端获取待处理数据;将所述待处理数据切分为若干部分;获取每个部分的序列化结果;将所述所有部分的序列化结果组合为所述待处理数据的序列化结果;将所述待处理数据的序列化结果进行哈希计算,从而指定所述待处理数据的处理实例。本发明能够保证流式计算中数据传输至服务端的准确性,同时大大减少了数据序列化消耗的时间,进一步减少了在定位redis实例时消耗的时间,从而提高***的运行速度。
Description
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种分布式数据定位实例的方法、客户端及分布式计算***。
背景技术
互联网产业的迅速发展在带来数据规模***式增长的同时,也使大数据呈现出越发鲜明的流式特征,传统的批处理模式难以满足流式大数据处理对于计算实时性的要求,因此,更为高效的分布式计算***得到了越来越广泛的应用。
在流式计算的业务处理过程中,***使用redis(高性能的key-value数据库,即键-值数据库)进行数据的计算,并将数据暂存在redis。由于海量的数据进入计算,因此在计算过程中需要同时使用多个redis实例。在计算过程中,客户端根据业务需求产生rediskey,计算redis key对应的redis实例,最后将相应的命令发送到redis key所在的redis实例处理。在这个过程中需要保证,在流式计算过程中产生的相同的redis key需要进入相同的redis实例中,否则会导致结果数据不准确。在计算过程中,可能多次产生相同的rediskey,而且,这将导致需要多次重复定位key所对应的redis实例。
但是现有的技术中,并没有提供可行的方式确定处理相同redis key的redis实例,而且计算过程中定位redis实例时,处理相同的redis key时,***需要耗费大量资源(如:cpu,时间等)重复序列化,从而导致定位redis实例的效率降低,影响***的运行速度。
发明内容
本发明要解决的技术问题是为了克服现有技术中分布式计算***无法提供处理相同redis key的方法,从而导致***消耗大量资源的缺陷,提供一种优化生成redis key从而能快速准确的定位redis key所在的redis实例的分布式数据定位实例的方法、客户端及分布式计算***。
本发明是通过下述技术方案来解决上述技术问题:
一种分布式数据定位实例的方法,用于分布式计算***,所述分布式计算***包括若干客户端以及至少一服务端,其特点在于,所述方法包括:
目标客户端获取待处理数据;
将所述待处理数据切分为若干部分;
获取每个部分的序列化结果;
将所述每个部分的序列化结果组合为所述待处理数据的序列化结果;
将所述待处理数据的序列化结果进行哈希计算,从而指定所述待处理数据的处理实例。
现有的流式计算中,会产生许多相同redis key,这些redis key之间的差异可能只是若干字符串。如果每个相同的redis key均以相同的处理方式进行处理,***会做许多重复的工作,不仅无法快速处理相同的redis key,而且会占用***的大量资源。
本发明将redis key划分为若干个部分,并判断所述部分在缓存中是否存在,如果存在则直接调用缓存中的计算结果,如果不存在则对不存在的部分进行序列化处理并将处理后的结果存储于缓存中,为下一次处理所述部分提供便利。本发明能够有效提高***运行速度。
较佳地,所述获取每个部分的序列化结果步骤包括:
对于每个所述部分,判断所述部分的数据大小是否大于预设值;
若是,
则判断所述部分的序列化结果是否存在于内存缓存区,
若存在于内存缓存区则获取内存缓存区中的序列化结果;
若未存在内存缓存区,则对所述部分进行序列化,获取其序列化结果并将所述序列化结果存储至所述内存缓存区;
若否,
则对所述部分进行序列化,获取其序列化结果。
进一步地,本发明对缓存的利用更优化。只有足够大的部分才被缓存,从而节省了***的资源。对于每一个部分,当所述部分的大小大于一预设值时,将部分存储于缓存中,对所述部分的计算可以直接从缓存中调取数据,加快对所述部分的序列化处理速度。当所述部分的大小小于所述预设值时,直接计算所述部分获取所述序列化结果的速度会大于从缓存中读取序列化结果的速度,因此无需再利用缓存存储小于预设值的部分。本发明能够合理的利用缓存,进一步提高数据序列化的速度。
较佳地,所述获取每个部分的序列化结果步骤包括:
对每个部分进行序列化,并获取其序列化结果。
较佳地,将所述待处理数据切分为若干部分的方法包括:
将所述待处理数据按照字段和/或字段组合进行切分。
所述redis key的记录结构会分为若干字段,如以“名称_时间_地址”的结构记录redis key,通过下划线将redis key根据不同的含义划分为表示名称、时间和地址的3个部分,本发明的划分方式方便快捷,进一步提高了分布式计算***的运行速度。
较佳地,所述预设值的取值范围为128字节至512字节。
较佳地,判断所述待处理数据的序列化结果的大小是否大于或等于预设阈值;
若是则选用murmur_128哈希策略;
若否则选用fnv1a哈希策略。
较佳地,所述预设阈值为432byte。
较佳地,所述服务端为redis服务端,所述待处理数据为redis key,所述方法包括:
所述客户端根据redis key中预设条件将redis key划分若干部分,记录rediskey中字段顺序;
所有部分的序列化结果根据所述顺序组合为所述redis key的序列化结果。
划分redis key时记录字段顺序,在获得序列化结果后根据所述字段顺序将各部分重新组合,确保各个部分的顺序不便,且按照正确的顺序传输到服务端,数据的传递更加准确。
较佳地,所述方法包括:
计算获取的redis key的序列化结果的哈希值;
根据所述哈希值获得redis key与redis实例的对应关系;
根据所述对应关系将redis key对应的redis命令发送给redis实例。
本发明还提供一种客户端,用于分布式计算***,所述分布式计算***包括若干客户端以及至少服务端,其特点在于,所述客户端包括获取模块、切分模块、运算模块、组合模块及计算模块,
所述获取模块用于获取待处理数据;
所述切分模块用于将所述待处理数据切分为若干部分;
所述运算模块用于获取每个部分的序列化结果;
所述组合模块用于将所述每个部分的序列化结果组合为所述待处理数据的序列化结果;
所述计算模块用于将所述待处理数据的序列化结果进行哈希计算,从而指定所述待处理数据的处理实例。
较佳地,所述客户端还包括第一判断模块、第二判断模块、读取模块、存储模块以及处理模块,
所述第一判断模块用于判断一个部分的数据大小是否大于预设值,若是则调用第二判断模块,若否则调用所述处理模块;
所述第二判断模块用于判断所述部分的序列化结果是否存在于内存缓存区,若是则调用所述读取模块,若否则调用所述存储模块;
所述处理模块用于对所述部分进行序列化;
所述读取模块用于获取内存缓存区中的序列化结果;
所述存储模块用于对所述部分进行序列化,获取其序列化结果并将所述序列化结果存储至所述内存缓存区。
本发明又提供一种分布式计算***,其特点在于,所述分布式计算***包括若干如上所述的客户端以及至少一服务端。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:
保证redis key和redis实例的一一对应。根据redis key序列化结果的组合生成哈希值,由哈希值准确定位key所在的redis实例;
提高***运行速度。在生成redis key时,定义组成每个组成key的部分。在序列化时,将每个部分分开,并将较大的序列化结果缓存起来。再次进入的相同的key可以利用缓存结果定位redis实例。大大减少了在定位redis实例时消耗的时间,从而提高***的运行速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图为本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1的分布式计算***的结构示意图。
图2为本发明实施例1的分布式数据定位实例的方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例为本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图1,本实施例提供一种分布式计算***1,所述分布式计算***包括5个客户端11、1个服务端12以及1个数据库13,所述服务端为redis服务端,所述redis服务端包括若干redis实例,所述数据库为hbase。
对于所述5个客户端中的任意一个客户端,所述客户端11包括计算模块110、获取模块111、切分模块112、第一判断模块113、第二判断模块114、运算模块115、读取模块116、存储模块117、处理模块118以及组合模块119。
所述获取模块用于获取待处理数据。所述待处理数据为redis key。
所述切分模块用于将所述待处理数据划分为若干部分。
所述第一判断模块用于判断一个所述部分的字节是否大于256byte,若是则调用第二判断模块,若否则调用所述处理模块。
256字节为预设值,其取值范围为128字节至512字节。
为了进一步提高运算速度,只有足够大的部分才被缓存,从而节省了***的资源。对于每一个部分,当所述部分的大小大于预设值时,将部分存储于缓存中,对所述部分的计算可以直接从缓存中调取数据,加快对所述部分的序列化处理速度。当所述部分的大小小于所述预设值时,直接计算所述部分获取所述序列化结果的速度会大于从缓存中读取序列化结果的速度,因此无需再利用缓存存储小于预设值的部分。本发明能够合理的利用缓存,进一步提高数据序列化的速度。
所述处理模块用于对所述部分进行序列化。
所述第二判断模块用于判断所述部分的序列化结果是否存在于缓存中,若是则调用所述读取模块,若否则调用所述存储模块。
所述读取模块用于获取缓存中的序列化结果。
所述存储模块用于对所述部分进行序列化,获取其序列化结果并所述序列化结果存储至所述内存缓存区。
所述运算模块用于获取每个部分的序列化结果。
所述组合模块所述组合模块用于将所述所有部分的序列化结果组合为所述待处理数据的序列化结果。
所述计算模块用于将所述待处理数据的序列化结果进行哈希计算,从而指定所述待处理数据的处理实例。
参见图2,利用上述的分布式计算***,本实施例能够实现一种分布式数据定位实例的方法:
步骤100、客户端获取待处理数据,所述待处理数据为redis key。
步骤101、所述客户端按照字段或字段组合切分redis key为若干部分,记录rediskey中字段顺序。
步骤102、对于每一所述部分,判断所述部分的字节是否大于256字节,若是则执行步骤103,若否则执行步骤106。
本实施例的预设值取最优值256字节,所述预设值还可以在取值范围128字节至512字节之间选取。通过计算、实验,大于256字节的部分从缓存中读取序列化结果,能够有效节省***的资源。当所述部分的大小小于所述预设值时,直接计算所述部分获取所述序列化结果的速度会大于从缓存中读取序列化结果的速度,因此无需再利用缓存存储小于预设值的部分。本实施例能够合理的利用缓存,进一步提高数据序列化的速度。
步骤103、判断所述部分的序列化结果是否存在于缓存中,若是则执行步骤104,若否则执行步骤105。
步骤104、获取缓存中的序列化结果,然后执行步骤107。
步骤105、对所述部分进行序列化以获取序列化结果并存储序列化结果至所述缓存中,然后执行步骤107。
步骤106、对所述部分进行序列化。
步骤107、所有部分的序列化结果根据所述顺序组合为所述redis key的序列化结果。
步骤108、判断所述待处理数据的序列化结果的大小是否大于或等于432字节,若是则执行步骤109,若否则执行步骤110。
步骤109、选用murmur_128哈希策略将所述待处理数据的序列化结果进行哈希计算,从而指定处理后的待处理数据的处理实例,然后结束流程。
步骤110、选用fnv1a哈希策略将所述待处理数据的序列化结果进行哈希计算,从而指定处理后的待处理数据的处理实例。
本实施例处理“name_address_time”的redis key时,将redis key根据各字段的意义划分为三个部分,分别是name部分、address部分和time部分,而且各字段的顺序固定,三个部分分别处理完成后再根据所述顺序排列各个部分获取的序列化结果。
所述redis key的序列化结果与redis key保持一致,确保在发送redis key序列化结果时数据的准确性。
处理后的待处理数据至对应的redis实例的redis服务端,从redis服务端中获取中间结果,所述流式计算***将中间结果存储于所述数据库hbase中。
本实施例的分布式数据定位实例的方法、客户端及分布式计算***能够保证redis key和redis实例的一一对应。根据redis key序列化结果的组合生成哈希值,由哈希值准确定位key所在的redis实例。特别地,能够提高***运行速度,在生成redis key时,定义组成每个组成key的部分。在序列化时,将每个部分分开,并将part长度大于256个byte的序列化结果缓存起来。再次进入的相同的key可以利用缓存结果定位redis实例。大大减少了在定位redis实例时消耗的时间,从而提高***的运行速度。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种分布式数据定位实例的方法,用于分布式计算***,所述分布式计算***包括若干客户端以及至少一服务端,其特征在于,所述方法包括:
目标客户端获取待处理数据;
将所述待处理数据切分为若干部分;
获取每个部分的序列化结果;
将所述每个部分的序列化结果组合为所述待处理数据的序列化结果;
将所述待处理数据的序列化结果进行哈希计算,从而指定所述待处理数据的处理实例;
其中,所述获取每个部分的序列化结果的步骤包括:
对于每个所述部分,判断所述部分的数据大小是否大于预设值;
若否,
则对所述部分进行序列化,获取其序列化结果;
若是,
则判断所述部分的序列化结果是否存在于内存缓存区,若存在于内存缓存区则获取内存缓存区中的序列化结果;
若未存在内存缓存区,则对所述部分进行序列化,获取其序列化结果并将所述序列化结果存储至所述内存缓存区。
2.如权利要求1所述的分布式数据定位实例的方法,其特征在于,所述获取每个部分的序列化结果步骤包括:
对每个部分进行序列化,并获取其序列化结果。
3.如权利要求1所述的分布式数据定位实例的方法,其特征在于,
将所述待处理数据切分为若干部分的方法包括:
将所述待处理数据按照字段和/或字段组合进行切分。
4.如权利要求1所述的分布式数据定位实例的方法,其特征在于,所述预设值的取值范围为128字节至512字节。
5.如权利要求1所述的分布式数据定位实例的方法,其特征在于,
判断所述待处理数据的序列化结果的大小是否大于或等于预设阈值;
若是则选用murmur_128哈希策略;
若否则选用fnv1a哈希策略。
6.如权利要求5所述的分布式数据定位实例的方法,其特征在于,所述预设阈值为432byte。
7.如权利要求1所述的分布式数据定位实例的方法,其特征在于,所述服务端为redis服务端,所述待处理数据为redis key,所述方法包括:
所述客户端根据redis key中预设条件将redis key划分若干部分,记录redis key中字段顺序;
所有部分的序列化结果根据所述顺序组合为所述redis key的序列化结果。
8.如权利要求7所述的分布式数据定位实例的方法,其特征在于,所述方法包括:
计算获取的redis key的序列化结果的哈希值;
根据所述哈希值获得redis key与redis实例的对应关系;
根据所述对应关系将redis key对应的redis命令发送给redis实例。
9.一种客户端,用于分布式计算***,所述分布式计算***包括若干客户端以及至少服务端,其特征在于,所述客户端包括获取模块、切分模块、运算模块、组合模块及计算模块,
所述获取模块用于获取待处理数据;
所述切分模块用于将所述待处理数据切分为若干部分;
所述运算模块用于获取每个部分的序列化结果;
所述组合模块用于将所述每个部分的序列化结果组合为所述待处理数据的序列化结果;
所述计算模块用于将所述待处理数据的序列化结果进行哈希计算,从而指定所述待处理数据的处理实例;
其中,所述客户端还包括第一判断模块、第二判断模块、处理模块、读取模块及存储模块:
所述第一判断模块用于判断一个部分的数据大小是否大于预设值,若是则调用所述第二判断模块,若否则调用所述处理模块;
所述第二判断模块用于判断所述部分的序列化结果是否存在于内存缓存区,若是则调用所述读取模块,若否则调用所述存储模块;
所述处理模块用于对所述部分进行序列化;
所述读取模块用于获取内存缓存区中的序列化结果;
所述存储模块用于对所述部分进行序列化,获取其序列化结果并将所述序列化结果存储至所述内存缓存区。
10.一种分布式计算***,其特征在于,所述分布式计算***包括若干如权利要求9中所述的客户端以及至少一服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610964886.0A CN108009019B (zh) | 2016-10-29 | 2016-10-29 | 分布式数据定位实例的方法、客户端及分布式计算*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610964886.0A CN108009019B (zh) | 2016-10-29 | 2016-10-29 | 分布式数据定位实例的方法、客户端及分布式计算*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108009019A CN108009019A (zh) | 2018-05-08 |
CN108009019B true CN108009019B (zh) | 2021-06-22 |
Family
ID=62048313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610964886.0A Active CN108009019B (zh) | 2016-10-29 | 2016-10-29 | 分布式数据定位实例的方法、客户端及分布式计算*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108009019B (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101505472B (zh) * | 2008-02-05 | 2011-07-20 | 华为技术有限公司 | 一种用户数据服务器***和装置 |
US10558705B2 (en) * | 2010-10-20 | 2020-02-11 | Microsoft Technology Licensing, Llc | Low RAM space, high-throughput persistent key-value store using secondary memory |
CN103038755B (zh) * | 2011-08-04 | 2015-11-25 | 华为技术有限公司 | 多节点***中数据缓存的方法、装置及*** |
CN102591970B (zh) * | 2011-12-31 | 2014-07-30 | 北京奇虎科技有限公司 | 一种分布式键-值查询方法和查询引擎*** |
CN103177120B (zh) * | 2013-04-12 | 2016-03-30 | 同方知网(北京)技术有限公司 | 一种基于索引的XPath查询模式树匹配方法 |
CN103268318B (zh) * | 2013-04-16 | 2016-04-13 | 华中科技大学 | 一种强一致性的分布式键值数据库***及其读写方法 |
CN103870393B (zh) * | 2013-07-09 | 2017-05-17 | 上海携程商务有限公司 | 缓存管理方法及*** |
CN103488581B (zh) * | 2013-09-04 | 2016-01-13 | 用友网络科技股份有限公司 | 数据缓存***和数据缓存方法 |
KR20150103477A (ko) * | 2014-03-03 | 2015-09-11 | 주식회사 티맥스 소프트 | 분산환경 기반의 캐쉬 관리 장치 및 방법 |
CN105653629B (zh) * | 2015-12-28 | 2020-03-13 | 湖南蚁坊软件股份有限公司 | 一种基于哈希环的分布式数据过滤方法 |
-
2016
- 2016-10-29 CN CN201610964886.0A patent/CN108009019B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108009019A (zh) | 2018-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180357111A1 (en) | Data center operation | |
CN110941598A (zh) | 一种数据去重方法、装置、终端及存储介质 | |
TWI796286B (zh) | 一種機器學習系統的訓練方法和訓練系統 | |
CN109726004B (zh) | 一种数据处理方法及装置 | |
JP6932360B2 (ja) | オブジェクト検索方法、装置およびサーバ | |
CN115150471B (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN111767320A (zh) | 数据血缘关系确定方法及装置 | |
CN112115105A (zh) | 一种业务处理方法、装置及设备 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN108009019B (zh) | 分布式数据定位实例的方法、客户端及分布式计算*** | |
WO2018082320A1 (zh) | 数据流连接方法及装置 | |
CN110909085A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN115904240A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN113590322A (zh) | 一种数据处理方法和装置 | |
CN114428786A (zh) | 分布式流水线的数据处理方法、装置及存储介质 | |
CN113392131A (zh) | 数据处理方法、装置及计算机设备 | |
CN112487111A (zh) | 基于kv数据库的数据表关联方法及装置 | |
US20180232205A1 (en) | Apparatus and method for recursive processing | |
CN111797158A (zh) | 数据同步***、方法和计算机可读存储介质 | |
CN110019394A (zh) | 数据查询方法及设备 | |
CN117272970B (zh) | 一种文档生成方法、装置、设备以及存储介质 | |
CN112783507B (zh) | 数据引流回放方法、装置、电子设备及可读存储介质 | |
CN113408664B (zh) | 训练方法、分类方法、装置、电子设备以及存储介质 | |
WO2020211718A1 (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 |