CN110442530A - 优化内存数据处理的方法、存储介质 - Google Patents
优化内存数据处理的方法、存储介质 Download PDFInfo
- Publication number
- CN110442530A CN110442530A CN201910624542.9A CN201910624542A CN110442530A CN 110442530 A CN110442530 A CN 110442530A CN 201910624542 A CN201910624542 A CN 201910624542A CN 110442530 A CN110442530 A CN 110442530A
- Authority
- CN
- China
- Prior art keywords
- memory
- pool
- block
- size
- memory block
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
本发明提供一种优化内存数据处理的方法、存储介质,方法包括:划分内存池,得到两个以上的内存块;使用后的未经数据回收的内存块放回内存池;依据当前业务需求的内存容量,从所述内存池中获取至少一个内存块,所述至少一个内存块的固有内存容量总和大于等于所述当前业务需求的内存容量。本发明不仅能大大GC次数,从而显著提高了缓存效率,程序的性能;而且能使内存池内的内存性能达到最大化,同时满足更多业务的需求。
Description
技术领域
本发明涉及内存数据处理领域,具体涉及优化内存数据处理的方法、存储介质。
背景技术
在现在的很多业务***或者软件中,存在着各种各样的数据,如一些配置信息,或者一些经常使用到的数据信息等,或者一些常用的重要数据等。面对这些经常使用到的数据,会有一个存储的地方。正常情况下,一般的***会存放在一个统一的地方,比如说redis集群或者zookeeper集群中,不过,这样一来就又引入了新的软件依赖;还有很多的***或者软件则直接放置这些重要信息在本地内存中。
一个JAVA中比较常见的场景,就是很多需要发送消息或者数据的情况下,客户端一般是把相关消息预先统一记录在本地内存中,也就是JAVA JVM(JAVA虚拟机内存中)。此后,当达到一定数量时,发送这些数据到对应服务器上,具体可以通过IO等网络方式发送出去。发送完毕后,内存中的数据块是需要进行清理的,此时,就需要通过JAVA的垃圾回收机制,进行内存的回收(即JAVA的GC机制)。所谓的GC就是指垃圾回收,当内存不足时,就会进行GC操作,需要停止所有线程的操作,专门进行内存回收。当回收完内存之后,才可以进行下一个步骤的轮询。
这样的情况下,JAVA的内存占用一开始就可以预先申请一个大内存进行使用。不过,即使使用大内存,针对如上情况,也需要定期的进行GC操作。此时,所有线程是挂起暂停的,无法进行任何操作,而这将严重影响程序的性能。
因此,有必要提供一种全新的内存缓存机制,以解决上述问题。
发明内容
本发明所要解决的技术问题是:提供一种优化内存数据处理的方法、存储介质,以大大减少GC操作,从而提高内存数据的处理效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种优化内存数据处理的方法,包括:
划分内存池,得到两个以上的内存块;
使用后的未经数据回收的内存块放回内存池;
依据当前业务需求的内存容量,从所述内存池中获取至少一个内存块,所述至少一个内存块的固有内存容量总和大于等于所述当前业务需求的内存容量。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述一种优化内存数据处理的方法所包含的步骤。
本发明的有益效果在于:本发明将内存池分割为大小不等或相等的内存块,对应当前业务所需内存容量从内存池获取固有内存容量总和能够与之匹配的至少一个的内存块进行使用即可,且内存块使用后直接放回内存池供下次使用,无需进行数据回收。本发明的内存分块并独立使用,能够同时为多项业务提供可靠的缓存服务,从而提高缓存性能和效率;同时,本发明的内存池中内存块在使用后可以直接丢回内存池供下一个业务所使用,而无需进行内存数据的回收,因此可以大大减少,甚至是无需进行GC操作,以更高效的方式提供缓存服务。
附图说明
图1为本发明实施例一种优化内存数据处理的方法的流程示意图;
图2为本发明实施例一的优化内存数据处理的方法的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:将内存池划分出多个内存块,依据每一次的业务需求获取固有内存容量总和能够提供对应内存容量的至少一个内存块进行使用即可,使用后直接放回内存池供下一个业务使用。
请参照图1,本发明提供一种优化内存数据处理的方法,包括:
划分内存池,得到两个以上的内存块;
使用后的未经数据回收的内存块放回内存池;
依据当前业务需求的内存容量,从所述内存池中获取至少一个内存块,所述至少一个内存块的固有内存容量总和大于等于所述当前业务需求的内存容量。
从上述描述可知,本发明的有益效果在于:由于每一次都对应所需内存容量来获取内存块,因此内存池剩余的内存块仍然可以供其他业务使用,且用完的内存块将及时回收,直接供下一次业务使用。因此,本发明能充分且高效地利用内存,支持多业务同时进行缓存,提高内存使用性能;进一步地,由于使用后的内存池无需进行数据回收便可再次使用,因此,大大减少了GC次数,甚至可以不进行内存回收,也不影响内存池的使用,从而显著提高了缓存效率。
进一步地,依据预设内存容量均分内存池。
由上述描述可知,可以采用均分方式划分内存池,更方便管理,更便于使用。
进一步地,还包括:
当内存池中剩余的内存块总和对应的内存容量小于所述当前业务需求的内存容量,则控制所述当前业务对应的线程阻塞,直至内存池中剩余内存块总和对应的内存容量大于等于所述当前业务需求的内存容量。
由上述描述可知,当内存池中内存块的总容量不足以满足当前业务使用的时候,将控制业务线程等待,通过短暂的等待便可满足大容量缓存的需求,无需启动GC操作而影响其他业务线程的运行,从而提供了一种更高效进行数据缓存的方式,并提高了程序的性能。
进一步地,还包括:
依据下一业务需求的内存容量,从所述内存池中获取至少一个内存块;
以覆盖方式将所述下一业务的数据写入所获取的至少一个内存块中。
由上述描述可知,放回内存池的内存块无需进行数据回收,在下一次使用时,直接进行数据覆盖写入即可,由此大大提高缓存效率。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述一种优化内存数据处理的方法所包含的步骤。
从上述描述可知,对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。且所述程序在执行后,同样能实现对应的各方法所能实现的有益效果。
其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
实施例一
请参照图2,本实施例提供一种优化内存数据处理的方法,能大大减少GC次数,甚至是无需进行GC操作,从而更高效地基于内存池进行数据的发送和处理,显著提高***性能。
本实施例的方法包括:
S1:客户端的一程序(如JAVA)启动,预先占用一个较大块的内存空间,作为程序的内存池;比如,预先占用64M的内存空间。
S2:划分内存池,得到两个以上的内存块。
可选地,可以将内存池依据预设容量均分成固定大小的多个内存块。比如,内存池总容量为64M,则可以将其划分成2048个内存块,每个内存块的容量大小为32k。优选地,每个内存块的大小与程序承接的具体业务相关;比如,程序执行的业务平均发送的消息包大小为0-16k左右,则可以设置16k为每个内存块的大小。对照终端承办的业务平均所需内存容量来均分内存池,每一个业务需求基本上只需调取一个内存块即可满足使用,因此,能使内存池内的内存性能达到最大化,同时满足更多业务的需求。
可选地,还可以将内存池进行不等比例的划分,对应各种类型的业务,划分得到各种不同容量大小的内存块。比如,内存池包含了2个80k的内存块,5个200k的内存块,8个500k的内存块...等等。
S3:各个使用后的内存块将直接被放回内存池中,而不进行数据回收。
内存块的具体使用方式如下:
S4:依据当前业务所需要的内存容量,从所述内存池中获取能够提供该内存容量的至少一个内存块,在此,所述能够提供指的是至少一个内存块的固有内存容量总和大于等于当前业务所需内存容量。所述固有内存容量指的是划分后每个内存块对应的容量。
具体而言,当客户端需要发送消息或者数据包时,或者需要进行本地数据存储时,则首先判断所需要发送的消息或者数据包的大小,或者是所要存储的数据的大小,在此称为业务需求的内存容量;然后判断内存池中,是否存在一个固有容量大于等于业务需求的内存容量的最小容量的内存块;如果存在,则直接get这个内存块出来;如果不存在,则对内存池中的各个内存块进行“组合”,获取能够在“组合”后固有容量大于业务所需内存容量,且“组合”后也是最小容量的两个以上的内存块。
比如,此时只需发送一个30k的数据,而内存池中刚好存在一个固有容量大小为32k,同时也是目前内存池中符合大于等于30k这一条件的最小容量的内存块,则直接从内存池中get这个内存块出来,进行数据的写入,以及后续的数据发送操作。
若此时要发送的是一个300k的数据,而内存池中当前最大的内存块只有100k,但同时存在3个100k的内存块;则从内存块中同时取出3*100k的内存块来执行这个300k数据的写入和发送操作业务。
S5:使用后的内存块依然直接被放回内存池中,而不进行数据回收。
需要特别说明的是,对应现有技术,当数据处理完毕后,内存池的总容量超过阈值,则需要对内存池进行GC操作,同时暂停所有线程,等待GC操作结束后才能继续。而本申请不仅不需要对内存池进行GC操作,也不用对各个内存块进行数据回收,只需直接放回内存池,并提供下次直接使用即可。
在此,由于使用过后的内存块将及时回到内存池,因此,本实施例还包括:
若步骤S4中对应当前的业务需求,即使通过对内存池中所有剩余的内存块进行“组合”,都达不到业务所需要的内存容量,即内存池中剩余的内存块总和对应的固有内存容量小于当前业务需求对应的内存容量时,则控制当前的业务线程阻塞,等待内存池中“回收”更多的内存块,直至内存池内内存块的“组合”能够满足当前业务需求,即内存充足后,才控制线程继续。
例如,对应内存池均分的情况,当前内存池中只有20个内存块可使用,每个内存块的容量为32k;当当前业务所需要发送的数据大于20*32k时,将会进行线程阻塞,当内存缓存池中达到可提供的内存块数量时,即有一个内存块使用完毕后重新放回后,则线程继续。
S6:依据下一业务需求,从所述内存池中获取能够提供对应内存容量的至少一个内存块;特别地,所获取的内存块极有可能包含了之前使用过的内存块,即其中还留有数据的内存块,而这些数据都是无效数据;由于内存块没有进行数据清除的循环使用,因此若没有经过GC操作,最终每个内存块都留有数据。
S7:以覆盖方式将所述下一业务需求对应的数据写入所获取的至少一个内存块。
不管所获取的是一个内存块,还是多个内存块的“组合”,对应“下一个业务需求”,直接进行数据覆盖写入,即直接覆盖掉内存块中的原数据。
在一具体实例中,为了保证数据的安全性,同时也保证业务处理的准确性,可以设置定时进行GC操作,显然地,相较于现有技术一旦内存池内剩余容量不足,便需要进行GC操作,大大提高了内存数据处理的效率以及程序***的效率。
本实施例采用一种新的内存缓存操作,预先占用固定内存,分割成固定或不固定大小的内存块,需要写入数据时,直接从内存块池中获取一个内存块进行数据的写入以及后续发送操作;当使用完毕后,直接放回内存块回内存池中,供下次数据发送使用。使用该种方式,预先创建多个小内存块,每次从内存块池中获取内存块进行数据处理,而不需要进行内存回收,减少了JAVA的GC次数,以一种更高效的方式进行数据地发送以及处理,提高了程序的性能。
实施例二
本实施例在实施例一的基础上,提供一个具体运用场景:
比如说一个100m的内存,三个线程需要进行数据处理,一个需要内存80M,一个需要50M,一个需要60M;
旧有方式为:第一个线程进来,获取80M使用完,第二个线程进来后,需要等待GC操作完成,GV操作之后剩余100M,可以进行后续50M的处理;之后,还剩余50M,又不足60M;需要再次GC操作,GV操作之后又剩余100M,才可以进行最后60M的处理。
对应实施例一的新的方式:100M内存分为20M一个的内存块,总共5个,都放在内存缓存池中。第一个线程需要取出4个内存块出来,进行数据处理;如果第二个线程进来,会等待,等待第一个线程处理完毕,并放回4个块回内存缓存池中后,进行后续处理。第二个线程可以获取3个块,此时,第三个线程需要等待,如果还有第四个线程,只需要20m内存,则可以直接先从缓存池中获取处理;等待资源足够后,第三个线程才可继续处理。
使用实施例一的新的缓存池方式,不需要等待GC操作删除内存,只需要数据处理完毕后,再次丢回缓存池中,即可再次使用,减少GC操作次数,提高效率。
实施例三
本实施例对应实施例一或实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一或实施例二任意一个实施例所述的一种优化内存数据处理的方法所包含的步骤。具体的步骤内容在此不进行复述,详情请参阅实施例一或实施例二的记载。
综上所述,本发明提供的一种优化内存数据处理的方法、存储介质,不仅能大大GC次数,从而显著提高了缓存效率,程序的性能;而且能使内存池内的内存性能达到最大化,同时满足更多业务的需求。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种优化内存数据处理的方法,其特征在于,包括:
划分内存池,得到两个以上的内存块;
使用后的未经数据回收的内存块放回内存池;
依据当前业务需求的内存容量,从所述内存池中获取至少一个内存块,所述至少一个内存块的固有内存容量总和大于等于所述当前业务需求的内存容量。
2.如权利要求1所述的一种优化内存数据处理的方法,其特征在于,依据预设内存容量均分内存池。
3.如权利要求1所述的一种优化内存数据处理的方法,其特征在于,还包括:
当内存池中剩余的内存块总和对应的内存容量小于所述当前业务需求的内存容量,则控制所述当前业务对应的线程阻塞,直至内存池中剩余内存块总和对应的内存容量大于等于所述当前业务需求的内存容量。
4.如权利要求1所述的一种优化内存数据处理的方法,其特征在于,还包括:
依据下一业务需求的内存容量,从所述内存池中获取至少一个内存块;
以覆盖方式将所述下一业务的数据写入所获取的至少一个内存块中。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-4任意一项所述的一种优化内存数据处理的方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910624542.9A CN110442530A (zh) | 2019-07-11 | 2019-07-11 | 优化内存数据处理的方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910624542.9A CN110442530A (zh) | 2019-07-11 | 2019-07-11 | 优化内存数据处理的方法、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110442530A true CN110442530A (zh) | 2019-11-12 |
Family
ID=68430170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910624542.9A Pending CN110442530A (zh) | 2019-07-11 | 2019-07-11 | 优化内存数据处理的方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442530A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090627A (zh) * | 2019-12-12 | 2020-05-01 | 深圳前海环融联易信息科技服务有限公司 | 基于池化的日志存储方法、装置、计算机设备及存储介质 |
CN111190626A (zh) * | 2019-12-30 | 2020-05-22 | 无锡小天鹅电器有限公司 | 家用电器的控制方法、控制装置及家用电器 |
CN113848454A (zh) * | 2021-09-09 | 2021-12-28 | 海光信息技术股份有限公司 | 一种芯片测试方法及芯片测试机 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9781225B1 (en) * | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
CN108052390A (zh) * | 2017-11-30 | 2018-05-18 | 努比亚技术有限公司 | 基于线程阻塞的内存清理方法、移动终端及可读存储介质 |
CN108958952A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 消息通讯方法、装置、设备及可读存储介质 |
CN109298935A (zh) * | 2018-09-06 | 2019-02-01 | 华泰证券股份有限公司 | 一种多进程单写多读无锁共享内存的方法及应用 |
-
2019
- 2019-07-11 CN CN201910624542.9A patent/CN110442530A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9781225B1 (en) * | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
CN108052390A (zh) * | 2017-11-30 | 2018-05-18 | 努比亚技术有限公司 | 基于线程阻塞的内存清理方法、移动终端及可读存储介质 |
CN108958952A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 消息通讯方法、装置、设备及可读存储介质 |
CN109298935A (zh) * | 2018-09-06 | 2019-02-01 | 华泰证券股份有限公司 | 一种多进程单写多读无锁共享内存的方法及应用 |
Non-Patent Citations (1)
Title |
---|
(美)李庆(QING LI)著;王安生译: "《嵌入式***的实时概念》", 30 June 2004, 北京航空航天大学出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090627A (zh) * | 2019-12-12 | 2020-05-01 | 深圳前海环融联易信息科技服务有限公司 | 基于池化的日志存储方法、装置、计算机设备及存储介质 |
CN111090627B (zh) * | 2019-12-12 | 2024-01-30 | 深圳前海环融联易信息科技服务有限公司 | 基于池化的日志存储方法、装置、计算机设备及存储介质 |
CN111190626A (zh) * | 2019-12-30 | 2020-05-22 | 无锡小天鹅电器有限公司 | 家用电器的控制方法、控制装置及家用电器 |
CN113848454A (zh) * | 2021-09-09 | 2021-12-28 | 海光信息技术股份有限公司 | 一种芯片测试方法及芯片测试机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442530A (zh) | 优化内存数据处理的方法、存储介质 | |
US9430388B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理***及其方法 | |
WO1995027248A1 (en) | Object oriented message passing system and method | |
CN111427675B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
CN110018892A (zh) | 基于线程资源的任务处理方法及相关装置 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
US7299285B2 (en) | Resource sharing with database synchronization | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN109828790B (zh) | 一种基于申威异构众核处理器的数据处理方法和*** | |
CN106713375A (zh) | 云资源的调配方法及装置 | |
CN110471774A (zh) | 一种基于统一任务调度的数据处理方法及装置 | |
CN106529917A (zh) | 一种工作流处理方法和装置 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和*** | |
CN111104218B (zh) | 存储***数据同步方法、装置、设备及可读存储介质 | |
CN110445580B (zh) | 数据发送方法及装置、存储介质、电子装置 | |
CN106776032A (zh) | 分布式块存储的io请求的处理方法和装置 | |
CN114157717B (zh) | 一种微服务动态限流的***及方法 | |
JP5776813B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム | |
CN116127494A (zh) | 用户并发访问的控制方法及相关装置 | |
CN112346848A (zh) | 一种管理内存池的方法、装置及终端 | |
CN112395063B (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 |