CN106469121B - Memory allocation method and device - Google Patents
Memory allocation method and device Download PDFInfo
- Publication number
- CN106469121B CN106469121B CN201610813881.8A CN201610813881A CN106469121B CN 106469121 B CN106469121 B CN 106469121B CN 201610813881 A CN201610813881 A CN 201610813881A CN 106469121 B CN106469121 B CN 106469121B
- Authority
- CN
- China
- Prior art keywords
- slab
- class
- objects
- memory
- source
- 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
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
the invention discloses a method and a device for memory allocation, which are characterized in that the information of each slab class is obtained; calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information; selecting the slab class with the smallest influence factor as a source slab class, and setting the slab with the largest quantity exchanged within a period of time as a target slab; clearing and recycling one of the slab memories in the source slab classes, then redistributing the memory to the target slab, proposing a minimum influence factor selection algorithm, comprehensively considering the characteristics of stored data under the compression condition, and reasonably selecting proper source slab classes and target slab for recycling and redistributing; and adjusting a memory allocation mechanism of Memcached, effectively dividing the region according to the empty and full storage states of the slab, and starting to recycle from the slab with the idle tail when the memory is needed.
Description
Technical Field
the embodiment of the invention relates to the technical field of memory allocation, in particular to a memory allocation method and device.
Background
And the Memcached allocates the memory to the corresponding slab class according to the size of the request object. Once all the available memories in the Memcached are allocated, when the request distribution changes, the problem of memory reallocation occurs, which is referred to as Calcification (Calcification), that is, the number proportion of all the slab classes in the Memcached is already fixed, and cannot be dynamically adjusted according to the changed external request. If the size distribution of objects that Memcached needs to store does not change over time, then the calcification problem will not affect the performance of Memcached, because the basic swap-out strategy already implemented in Memcached can guarantee well that hot objects are stored. However, if the size distribution of the storage objects changes at any time, the calcification problem has a large influence on the hit rate of Memcached.
A straightforward approach to solve the problem of Memcached calcification is to allow Memcached to reclaim and re-allocate already allocated memory to the required slab class. Data compression exacerbates the calcification problem of Memcached. When the Memcached starts the data compression function, not only the space left in the compressed slab class cannot be returned to the Memcached, but also a large pressure is applied to the compressed slab class. In Memcached to which a data compression function is added, although data compression brings different performance improvement effects to Memcached, the calcification problem of Memcached is also aggravated.
Disclosure of Invention
the embodiment of the invention aims to provide a memory allocation method and device, aiming at solving the problem of calcification in Memcached added with a data compression function.
to achieve the purpose, the embodiment of the invention adopts the following technical scheme:
In a first aspect, a method for memory allocation includes:
Acquiring information of each slab class, wherein the information comprises the number of used objects, the number of requests, the total number of the objects and the number of exchanged objects;
calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information;
selecting the slab class with the smallest influence factor as a source slab class, and setting the slab with the largest quantity exchanged within a period of time as a target slab;
and clearing and recycling one slab memory in the source slab class and then redistributing the cleared slab memory to the target slab.
preferably, the calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information includes:
Wherein the used _ chunks represents the number of used objects in the specific slab class, the request represents the number of requests in the specific slab class in a period of time, and the total _ chunks represents the total number of objects in the specific slab class.
Preferably, the clearing and recycling one of the slab memories in the source slab class and then reallocating the cleared slab memory to the destination slab comprises:
Obtaining the slab with the largest amount of free space in the source slab class;
And emptying the slab memory with the largest quantity of free space in the source slab class, and recovering and redistributing the emptied memory to the target slab.
Preferably, the method further comprises:
and (3) the used space and the unused space in Memcached are treated differently, the used area is concentrated at the front end of the slab, and the unused area is concentrated at the rear end of the slab.
preferably, the method further comprises:
And setting three pointers for specifying the range of each slab in each slab class, wherein the three pointers comprise a pointer slab _ start for identifying a first storage object in the slab, a pointer slab _ end for identifying a last storage object in the slab, and a pointer cur _ free for identifying a currently available storage object in the slab.
in a second aspect, an apparatus for memory allocation, the apparatus comprising:
The system comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring information of each slab class, and the information comprises the number of used objects, the number of requests, the total number of the objects and the number of swapped-out objects;
The selection module is used for calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information;
the selecting module is used for selecting the slab class with the smallest influence factor as a source slab class and setting the slab with the largest quantity exchanged within a period of time as a target slab class;
And the allocation module is used for emptying and recycling one slab memory in the source slab class and then reallocating the slab memory to the target slab.
preferably, the selection module includes:
wherein the used _ chunks represents the number of used objects in the specific slab class, the request represents the number of requests in the specific slab class in a period of time, and the total _ chunks represents the total number of objects in the specific slab class.
Preferably, the allocation module is configured to:
obtaining the slab with the largest amount of free space in the source slab class;
and emptying the slab memory with the largest quantity of free space in the source slab class, and recovering and redistributing the emptied memory to the target slab.
preferably, the apparatus further comprises:
and the adjusting module is used for distinguishing and treating used space and unused space in Memcached, concentrating the used area at the front end of the slab, and concentrating the unused area at the rear end of the slab.
Preferably, the apparatus further comprises:
And the setting module is used for setting three pointers for specifying the range of each slab in each slab class, wherein the three pointers comprise a pointer slab _ start used for identifying a first storage object in the slab, a pointer slab _ end used for identifying a last storage object in the slab, and a pointer cur _ free used for identifying a currently available storage object in the slab.
the embodiment of the invention provides a method and a device for memory allocation, wherein the method comprises the steps of obtaining information of each slab class, wherein the information comprises the number of used objects, the number of requests, the total number of the objects and the number of swapped-out objects; calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information; selecting the slab class with the smallest influence factor as a source slab class, and setting the slab with the largest quantity exchanged within the period of time as a target slab; clearing and recycling one of the slab memories in the source slab classes, then redistributing the memory to the target slab, proposing a minimum influence factor selection algorithm, comprehensively considering the characteristics of stored data under the compression condition, and reasonably selecting proper source slab classes and target slab for recycling and redistributing; and adjusting a memory allocation mechanism of Memcached, effectively dividing the region according to the empty and full storage states of the slab, and starting to recycle from the slab with the idle tail when the memory is needed.
drawings
fig. 1 is a schematic flowchart of a method for allocating memory according to an embodiment of the present invention;
fig. 2 is another flow chart illustrating a method for memory allocation according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a method for allocating space according to an embodiment of the present invention;
FIG. 4 is a schematic diagram of another method for allocating space according to an embodiment of the present invention;
Fig. 5 is a schematic diagram illustrating a pointer structure of memory allocation according to an embodiment of the present invention;
FIG. 6 is a comparison of calcification problems before and after memory allocation according to an embodiment of the present invention;
Fig. 7 is a functional block diagram of a memory allocation apparatus according to an embodiment of the present invention.
Detailed Description
the embodiments of the present invention will be described in further detail with reference to the drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of and not restrictive on the broad invention. It should be further noted that, for convenience of description, only some structures, not all structures, relating to the embodiments of the present invention are shown in the drawings.
referring to fig. 1, fig. 1 is a flowchart illustrating a method for allocating a memory according to an embodiment of the present invention.
In fig. 1, the method for allocating memory includes:
Step 101, obtaining information of each slab class, wherein the information comprises the number of used objects, the number of requests, the total number of the objects and the number of swapped-out objects;
specifically, as a data compression function is newly added to Memcached, the data characteristics of the storage object in Memcached are changed. From the perspective of the number of compressions, the number of requests, and the total number of objects, a minimum impact factor selection algorithm is proposed. The Impact Factor (IF) is an index obtained by integrating the Impact of the compression amount, the request amount and the total number of objects on the slab recycling process.
102, calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information;
preferably, the calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information includes:
wherein the used _ chunks represents the number of used objects in the specific slab class, the request represents the number of requests in the specific slab class in a period of time, and the total _ chunks represents the total number of objects in the specific slab class.
Specifically, the smaller the impact factor, the more suitable the slab is to provide memory as the source slab class.
103, selecting the slab class with the smallest influence factor as a source slab class, and setting the slab with the largest quantity exchanged within a period of time as a target slab;
Specifically, the number of used objects, the number of requests, the total number of objects, and the number of swapped out for each slab class are collected. And calculating influence factors for each slab class, and selecting the slab class with the smallest influence factor from the calculated influence factors as a source slab class. And selecting the slab class with the most (frequent) number from the slab classes as the target slab.
And 104, emptying and recycling one slab memory in the source slab class and then redistributing the emptied and recycled slab memory to the target slab.
Preferably, the clearing and recycling one of the slab memories in the source slab class and then reallocating the cleared slab memory to the destination slab comprises:
Obtaining the slab with the largest amount of free space in the source slab class;
and emptying the slab memory with the largest quantity of free space in the source slab class, and recovering and redistributing the emptied memory to the target slab.
the memory space is a memory with a fixed size of 1M.
Specifically, referring to fig. 2, fig. 2 is another schematic flow chart of a memory allocation method according to an embodiment of the present invention.
step 201, if it is judged that the slab needs to be recycled and redistributed, selecting a source slab class;
step 202, selecting a target slab;
Step 203, judging whether to carry out slab recovery and redistribution;
step 204, if the slab does not need to be recycled and redistributed, judging whether the selected slab is effective or not;
and step 205, if the selected slab is valid, performing slab recycling and redistribution work.
Preferably, the method further comprises:
And (3) the used space and the unused space in Memcached are treated differently, the used area is concentrated at the front end of the slab, and the unused area is concentrated at the rear end of the slab.
specifically, the used space and the free space of the Memcached in fig. 3 are treated separately, that is, the occupied area is concentrated on the front end of the slab, and the free area is concentrated on the rear end of the slab. When the calcification problem occurs, the memory is preferentially recycled and redistributed in the rear end area.
fig. 4 is a schematic diagram of a modified slab distributor of Memcached, which not only concentrates occupied areas on the front end, but also makes pointers between slabs more regular, thereby facilitating chain breaking operation of a linked list when a memory is recycled. When Memcached recovers the memory, objects stored in the selected slab are emptied and are re-segmented into small blocks with other sizes. The operation of emptying objects may affect the hit rate of Memcached to some extent, and the use of the slab divider structure shown in fig. 4 may reduce this effect.
Preferably, the method further comprises:
And setting three pointers for specifying the range of each slab in each slab class, wherein the three pointers comprise a pointer slab _ start for identifying a first storage object in the slab, a pointer slab _ end for identifying a last storage object in the slab, and a pointer cur _ free for identifying a currently available storage object in the slab.
specifically, referring to fig. 5, fig. 5 is a schematic diagram of a pointer structure for memory allocation according to an embodiment of the present invention. Fig. 5 is a specific modification method, which needs to add corresponding processing codes in the memory allocation function in addition to adding 3 pointers as shown in the figure in the slab structure.
referring to fig. 6, fig. 6 is a schematic diagram illustrating comparison of calcification problems before and after memory allocation according to an embodiment of the present invention. The dashed gray line in figure 6 is the experimental effect from which it can be seen that the improvement in hit rate under the calcification problem is significantly improved when transitioning from request type a to request type B, which effectively ameliorates the problem of reduced hit rate of Memcached under compression caused by calcification. The grey curve is the hit rate curve for Memcached under compression, which is affected by calcification.
the embodiment of the invention provides a memory allocation method, which comprises the steps of obtaining information of each slab class, wherein the information comprises the number of used objects, the number of requests, the total number of the objects and the number of swapped-out objects; calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information; selecting the slab class with the smallest influence factor as a source slab class, and setting the slab with the largest quantity exchanged within the period of time as a target slab; clearing and recycling one of the slab memories in the source slab classes, then redistributing the memory to the target slab, proposing a minimum influence factor selection algorithm, comprehensively considering the characteristics of stored data under the compression condition, and reasonably selecting proper source slab classes and target slab for recycling and redistributing; and adjusting a memory allocation mechanism of Memcached, effectively dividing the region according to the empty and full storage states of the slab, and starting to recycle from the slab with the idle tail when the memory is needed.
referring to fig. 7, fig. 7 is a functional block diagram of a memory allocation apparatus according to an embodiment of the present invention.
in fig. 7, the memory allocation apparatus includes:
an obtaining module 701, configured to obtain information of each slab class, where the information includes a used object number, a request number, an object total number, and a swap-out number;
a selecting module 702, configured to calculate an influence factor of each slab class according to a preset minimum influence factor selecting algorithm and the information;
preferably, the selecting module 702 includes:
Wherein the used _ chunks represents the number of used objects in the specific slab class, the request represents the number of requests in the specific slab class in a period of time, and the total _ chunks represents the total number of objects in the specific slab class.
a selecting module 703, configured to select the slab class with the smallest impact factor as the source slab class, and set the slab class with the largest amount exchanged within a period of time as the target slab class;
and an allocating module 704, configured to empty and recycle one of the source slab classes and then reallocate the same to the destination slab.
preferably, the allocating module 704 is configured to:
Obtaining the slab with the largest amount of free space in the source slab class;
and emptying the slab memory with the largest quantity of free space in the source slab class, and recovering and redistributing the emptied memory to the target slab.
Preferably, the apparatus further comprises:
And the adjusting module is used for distinguishing and treating used space and unused space in Memcached, concentrating the used area at the front end of the slab, and concentrating the unused area at the rear end of the slab.
Preferably, the apparatus further comprises:
and the setting module is used for setting three pointers for specifying the range of each slab in each slab class, wherein the three pointers comprise a pointer slab _ start used for identifying a first storage object in the slab, a pointer slab _ end used for identifying a last storage object in the slab, and a pointer cur _ free used for identifying a currently available storage object in the slab.
The embodiment of the invention provides a device for allocating memory, which is characterized in that information of each slab class is obtained, wherein the information comprises the number of used objects, the number of requests, the total number of the objects and the number of swapped-out objects; calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the information; selecting the slab class with the smallest influence factor as a source slab class, and setting the slab with the largest quantity exchanged within the period of time as a target slab; clearing and recycling one of the slab memories in the source slab classes, then redistributing the memory to the target slab, proposing a minimum influence factor selection algorithm, comprehensively considering the characteristics of stored data under the compression condition, and reasonably selecting proper source slab classes and target slab for recycling and redistributing; and adjusting a memory allocation mechanism of Memcached, effectively dividing the region according to the empty and full storage states of the slab, and starting to recycle from the slab with the idle tail when the memory is needed.
The technical principle of the embodiment of the present invention is described above in conjunction with the specific embodiments. The description is only intended to explain the principles of embodiments of the invention and should not be taken in any way as limiting the scope of the embodiments of the invention. Based on the explanations herein, those skilled in the art will be able to conceive of other embodiments of the present invention without inventive step, and these embodiments will fall within the scope of the present invention.
Claims (8)
1. A method of memory allocation, the method comprising:
acquiring information of each slab class in Memcached with a data compression function, wherein the information comprises the number of used objects, the number of requests, the total number of the objects and the number of swapped-out objects;
Calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the used object number, the request number and the total number of the objects in the information; the number of used objects is associated with a number of compressions; the minimum impact factor selection algorithm is represented as follows:
Wherein the used _ chunks represents the number of used objects, the request represents the number of requests, and the total _ chunks represents the total number of objects;
Selecting the slab class with the smallest influence factor as a source slab class, and setting the slab with the largest quantity exchanged within a period of time as a target slab;
And clearing and recycling one slab memory in the source slab class and then redistributing the cleared slab memory to the target slab.
2. The method of claim 1, wherein said deallocating said one of said source slab class to said destination slab after flushing and reclaiming said one of said slab class comprises:
Obtaining the slab with the largest amount of free space in the source slab class;
and emptying the slab memory with the largest quantity of free space in the source slab class, and recycling and redistributing the emptied memory to the target slab.
3. the method according to any one of claims 1 to 2, further comprising:
and (3) the used space and the unused space in Memcached are treated differently, the used area is concentrated at the front end of the slab, and the unused area is concentrated at the rear end of the slab.
4. The method according to any one of claims 1 to 2, further comprising:
and setting three pointers for specifying the range of each slab in each slab class, wherein the three pointers comprise a pointer slab _ start for identifying a first storage object in the slab, a pointer slab _ end for identifying a last storage object in the slab, and a pointer cur _ free for identifying a currently available storage object in the slab.
5. An apparatus for memory allocation, the apparatus comprising:
the device comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring information of each slab class in Memcached with a data compression function, and the information comprises the number of used objects, the number of requests, the total number of objects and the number of swapped-out objects;
The selection module is used for calculating the influence factor of each slab class according to a preset minimum influence factor selection algorithm and the used object number, the request number and the total number of the objects in the information; the number of used objects is associated with a number of compressions; the minimum impact factor selection algorithm is represented as follows:
Wherein the used _ chunks represents the number of used objects, the request represents the number of requests, and the total _ chunks represents the total number of objects;
The selecting module is used for selecting the slab class with the smallest influence factor as a source slab class and setting the slab with the largest quantity exchanged within a period of time as a target slab class;
and the allocation module is used for emptying and recycling one slab memory in the source slab class and then reallocating the slab memory to the target slab.
6. the apparatus of claim 5, wherein the assignment module is configured to:
obtaining the slab with the largest amount of free space in the source slab class;
and emptying the slab memory with the largest quantity of free space in the source slab class, and recovering and redistributing the emptied memory to the target slab.
7. The apparatus of any one of claims 5 to 6, further comprising:
And the adjusting module is used for distinguishing and treating used space and unused space in Memcached, concentrating the used area at the front end of the slab, and concentrating the unused area at the rear end of the slab.
8. the apparatus of any one of claims 5 to 6, further comprising:
And the setting module is used for setting three pointers for specifying the range of each slab in each slab class, wherein the three pointers comprise a pointer slab _ start used for identifying a first storage object in the slab, a pointer slab _ end used for identifying a last storage object in the slab, and a pointer cur _ free used for identifying a currently available storage object in the slab.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610813881.8A CN106469121B (en) | 2016-09-09 | 2016-09-09 | Memory allocation method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610813881.8A CN106469121B (en) | 2016-09-09 | 2016-09-09 | Memory allocation method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106469121A CN106469121A (en) | 2017-03-01 |
CN106469121B true CN106469121B (en) | 2019-12-13 |
Family
ID=58230412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610813881.8A Active CN106469121B (en) | 2016-09-09 | 2016-09-09 | Memory allocation method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106469121B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209594B (en) * | 2018-02-28 | 2020-01-24 | 贵州白山云科技股份有限公司 | Memory management method and device suitable for slab structure |
CN113434285B (en) * | 2020-03-23 | 2024-03-26 | 阿里巴巴集团控股有限公司 | Memory management method and device based on key value cache system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101676883A (en) * | 2008-09-17 | 2010-03-24 | 英业达股份有限公司 | Memory allocation and management method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798745B2 (en) * | 2014-09-13 | 2017-10-24 | Samsung Electronics Co., Ltd. | Methods, devices and systems for caching data items |
-
2016
- 2016-09-09 CN CN201610813881.8A patent/CN106469121B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101676883A (en) * | 2008-09-17 | 2010-03-24 | 英业达股份有限公司 | Memory allocation and management method |
Non-Patent Citations (1)
Title |
---|
Memory Partitioning in Memcached: An Experimental Performance Ayalysis;Damiano Carra et al.;《IEEE ICC 2014-Communication Qos,Reliability and Modeling Sysmposium》;20141231;第1154-1159页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106469121A (en) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108038002B (en) | Embedded software memory management method | |
CN108132842B (en) | Embedded software memory management system | |
US10409526B2 (en) | Adaptive garbage collection | |
CN105677242B (en) | The separation method and device of cold and hot data | |
EP2921963A1 (en) | Memory recycling method and device | |
JP4996073B2 (en) | Generational garbage collection program | |
US10083181B2 (en) | Method and system for storing metadata of log-structured file system | |
CN106469121B (en) | Memory allocation method and device | |
US20140281132A1 (en) | Method and system for ram cache coalescing | |
US6820183B2 (en) | Methods, systems, and computer program products for memory pool management using variable size sub-pools | |
KR20160106240A (en) | Semiconductor device and operating method thereof | |
CN109753361A (en) | A kind of EMS memory management process, electronic equipment and storage device | |
CN103488577A (en) | Method and device of memory allocation and batch recovery for user applications based on use numbering | |
KR101626218B1 (en) | Block based page mapping method | |
CN107912063A (en) | A kind of method for recovering internal storage and device | |
KR101950759B1 (en) | Garbage collection method for performing memory controller of storage device and memory controler | |
KR101077901B1 (en) | Apparatus and method for managing flash memory using log block level mapping algorithm | |
CN107924350B (en) | Electronic equipment and data compression method thereof | |
CN115793987B (en) | Wear balancing method and device, electronic equipment and storage medium | |
KR20150107197A (en) | Apparatus and method for storage using bad block | |
CN110199265B (en) | Storage device and storage area management method | |
JPWO2019159472A1 (en) | Memory management device, memory management method, and information processing device | |
CN106648882A (en) | Garbage recycling method and device based on virtual machine | |
CN112559388B (en) | Data caching method and device | |
CN107077420B (en) | Overlay Erase Block mapping |
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 |