CN111522509A - 分布式存储系统的缓存方法及设备 - Google Patents
分布式存储系统的缓存方法及设备 Download PDFInfo
- Publication number
- CN111522509A CN111522509A CN202010309879.3A CN202010309879A CN111522509A CN 111522509 A CN111522509 A CN 111522509A CN 202010309879 A CN202010309879 A CN 202010309879A CN 111522509 A CN111522509 A CN 111522509A
- Authority
- CN
- China
- Prior art keywords
- file
- index
- lru
- heap
- read
- 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
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明的目的是提供一种分布式存储系统的缓存方法及设备,包括:若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆;若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆。本发明采用LRU和LFU索引堆的数据结构,由于索引堆为完全二叉树,故对于增加元素、删除元素以及列表重构等操作,时间复杂度均为O(logn)级别,本发明通过LRU索引堆和LFU索引堆,提高了运行效率,可以提升缓存设备命中率,从而提升数据访问性能。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种分布式存储系统的缓存方法及设备。
背景技术
分布式存储系统的评价指标主要有容量、性能、成本等。其硬件设备主要基于磁盘,而磁盘产生的机械寻道操作将对数据访问性能形成制约,若将存储服务器上的内存、固态硬盘等高速访问设备组成存储系统的缓存设备层,并将频繁访问的热点数据尽可能多地存放于缓存设备系统中,则可以减轻磁盘设备对于分布式存储系统的性能制约,从而极大地提升数据读写性能。
现有缓存设备方法主要基于数据访问的时间或者频率特性,也有一些方法综合考虑了时间和频率特性,例如LRFU、ARC等。但是现有的方法在分布式存储系统的海量数据场景下缓存设备缺失概率较高,同时时间复杂度较高,且未针对内存+固态硬盘的混合存储场景进行针对性优化。
发明内容
本发明的一个目的是提供一种分布式存储系统的缓存方法及设备。
根据本发明的一个方面,提供了一种分布式存储系统的缓存方法,该方法包括:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
进一步的,上述方法中,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,包括:
查询所述待读取的文件是否在所述LFU索引堆的文件的指引中命中,
若未在所述LFU索引堆中命中,判断所述LFU索引堆的容量是否饱和,
若所述LFU索引堆的容量饱和,将所述LFU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LFU索引堆的堆顶的文件的指引从所述LFU索引堆中移除,并将该从所述LFU索引堆移除的文件的指引添加入LFU Ghost链表后转到步骤S5;
若所述LFU索引堆的容量未饱和,转到步骤S5;
步骤S5,将所述待读取的文件的指引由LRU索引堆中移除,并将该从LRU索引堆中移除的文件的指引添加入LFU索引堆,并将LFU索引堆中所述待读取的文件的指引的访问频率设置为2;
调整所述LRU索引堆;
从所述缓存设备中读取所述待读取的文件。
进一步的,上述方法中,查询所述待读取的文件是否在所述LFU索引堆的文件的指引中命中之后,还包括:
若在所述LFU索引堆中命中,将所述LFU索引堆中所述待读取的文件的指引对应的访问频率加1;
调整所述LFU索引堆;
从所述缓存设备中读取所述待读取的文件。
进一步的,上述方法中,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,包括:
步骤S9,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中;
步骤S10,判断所述请求中待读取的文件的指引是否在LFU Ghost链表中命中,其中,所述LFU Ghost链表中存放有从所述LFU索引堆中淘汰的文件的引用;
若在LFU Ghost链表中命中,步骤S11,在所述LFU索引堆增加N个内存单位,同时在所述LRU索引堆对应减少N个内存单位后转到步骤S14,其中,N为正整数,所述LRU索引堆与所述LFU索引堆的内存单位的总和固定;
步骤S14,判断所述LRU索引堆的容量是否饱和,
若所述LRU索引堆的容量饱和,步骤S15,将所述LRU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该从所述LRU索引堆移除的文件的指引添加入LRU Ghost链表后转到步骤S16,
若所述LRU索引堆的容量未饱和,转到步骤S16;
步骤S16,将所述待读取的文件的指引加入所述LRU索引堆后转到步骤S17;
步骤S17,调整所述LRU索引堆后转到步骤S18;
步骤S18,调整所述LFU索引堆。
进一步的,上述方法中,步骤S10,判断所述请求中待读取的文件的指引是否在LFUGhost链表中命中之后,还包括:
若未在LFU Ghost链表中命中,步骤S12,判断所述请求中待读取的文件的指引是否在LRU Ghost链表中命中,其中,所述LRU Ghost链表中存放有从所述LRU索引堆中淘汰的文件的引用,
若在LRU Ghost链表中命中,步骤S13,在所述LRU索引堆增加N个内存单位,同时在所述LFU索引堆对应减少N个内存单位后转到步骤S14,其中,N为正整数,所述LRU索引堆与所述LFU索引堆的内存单位的总和固定;
步骤S14,判断所述LRU索引堆的容量是否饱和,
若所述LRU索引堆的容量饱和,步骤S15,将所述LRU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该从所述LRU索引堆移除的文件的指引添加入LRU Ghost链表后转到步骤S16,
若所述LRU索引堆的容量未饱和,转到步骤S16;
步骤S16,将所述待读取的文件的指引加入所述LRU索引堆后转到步骤S17;
步骤S17,调整所述LRU索引堆后转到步骤S18;
步骤S18,调整所述LFU索引堆。
进一步的,上述方法中,步骤S12,判断所述请求中待读取的文件的指引是否在LRUGhost链表中命中之后,还包括:
若未在LRU Ghost链表中命中,则转到步骤S14;
步骤S14,判断所述LRU索引堆的容量是否饱和,
若所述LRU索引堆的容量饱和,步骤S15,将所述LRU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该从所述LRU索引堆移除的文件的指引添加入LRU Ghost链表后转到步骤S16,
若所述LRU索引堆的容量未饱和,转到步骤S16;
步骤S16,将所述待读取的文件的指引加入所述LRU索引堆后转到步骤S17;
步骤S17,调整所述LRU索引堆后转到步骤S18;
步骤S18,调整所述LFU索引堆。
进一步的,上述方法中,调整所述LRU索引堆,包括:
按照所述缓存设备中的文件的最近访问时间调整所述LRU索引堆中的文件的引用的排序,其中,调整中访问时间越久远的文件越接近所述LRU索引堆的堆顶;
按照所述缓存设备中的文件大小再次调整所述LRU索引堆的前半部分的文件的引用的排序,其中,调整中文件越大,则越接近所述LRU索引堆的堆顶。
进一步的,上述方法中,调整所述LFU索引堆,包括:
按照所述缓存设备中的文件的访问频率调整所述LFU索引堆的文件的引用的排序,其中,调整中访问频率越低的文件越接近所述LFU索引堆的堆顶;
按照所述缓存设备中文件大小再次调整所述LFU索引堆的前半部分的文件的引用的排序,其中,调整中文件越大,则越接近所述LFU索引堆的堆顶。
根据本发明的另一面,还提供一种基于计算的设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
与现有技术相比,本发明包括:获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。本发明的LRU(Leastrecently used)列表和LFU(Leastfrequently used)列表采用索引堆的数据结构,由于索引堆为完全二叉树,故对于增加元素、删除元素以及列表重构等操作,时间复杂度均为O(logn)级别,本发明通过LRU索引堆和LFU索引堆,提高了运行效率,可以提升缓存设备命中率,从而提升数据访问性能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出本发明一实施例的缓存设备策略的内部结构图;
图2示出本发明一实施例的分布式存储系统的缓存方法的流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本发明提供一种分布式存储系统的缓存方法,所述方法包括:
步骤S1,获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
在此,所述缓存设备中的文件的指引可以包括文件的文件名等,或者包括用于能够唯一标识该文件的代码、符号、标志等;
若缓存设备中存有对应的待读取的文件,步骤S200,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
可选的,步骤S200中,可以将缓存设备中的文件在LRU索引堆中按照最近访问时间进行排序,其中,最近访问时间越久远的文件的指引越接近所述LRU索引堆的堆顶;
若缓存设备中无对应的待读取的文件,步骤S300,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
可选的,步骤S300中,可以将缓存设备中的文件在LFU索引堆按照访问频率进行排序,其中,访问频率越低的文件的指引越接近所述LFU索引堆的堆顶。
如图1所示,LRU索引堆和LFU索引堆中存储的是缓存设备中存储的文件的指引。
本发明的LRU(Least recently used)列表和LFU(Least frequently used)列表采用索引堆的数据结构,由于索引堆为完全二叉树,故对于增加元素、删除元素以及列表重构等操作,时间复杂度均为O(logn)级别,本发明通过LRU索引堆和LFU索引堆,提高了运行效率,可以提升缓存设备命中率,从而提升数据访问性能。
如图2所示,本发明的分布式存储系统的缓存方法一实施例中,步骤S200,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,所述缓存设备中的文件的引用在LRU索引堆中按照缓存设备中的文件的最近访问时间进行排序,包括:
步骤S2,查询所述待读取的文件是否在所述LFU索引堆的文件的指引中命中,
若未在所述LFU索引堆中命中,步骤S3,判断所述LFU索引堆的容量是否饱和,
若所述LFU索引堆的容量饱和,步骤S4,将所述LFU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LFU索引堆的堆顶的文件的指引从所述LFU索引堆中移除,并将该从所述LFU索引堆移除的文件的指引添加入LFU Ghost链表后转到步骤S5,该步骤S4即淘汰了LFU索引堆中堆顶的访问频率最低的文件;
若所述LFU索引堆的容量未饱和,转到步骤S5;
步骤S5,将所述待读取的文件的指引由LRU索引堆中移除,并将该从LRU索引堆中移除的文件的指引添加入LFU索引堆,并将LFU索引堆中所述待读取的文件的指引的访问频率设置为2后转到步骤S7;
步骤S7,调整所述LRU索引堆后转到步骤S8;
步骤S8,从所述缓存设备中读取所述待读取的文件。
本发明的分布式存储系统的缓存方法一实施例中,步骤S2,查询所述待读取的文件是否在所述LFU索引堆的文件的指引中命中之后,还包括:
若在所述LFU索引堆中命中,步骤S6,将所述LFU索引堆中所述待读取的文件的指引对应的访问频率加1后转到步骤S7;
步骤S7,调整所述LFU索引堆后转到步骤S8;
步骤S8,从所述缓存设备中读取所述待读取的文件。
本发明的分布式存储系统的缓存方法一实施例中,步骤S300,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,包括:
步骤S9,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中;
步骤S10,判断所述请求中待读取的文件的指引是否在LFU Ghost链表中命中,其中,所述LFU Ghost链表中存放有从所述LFU索引堆中淘汰的文件的引用;
若在LFU Ghost链表中命中,步骤S11,在所述LFU索引堆增加N个内存单位,同时在所述LRU索引堆对应减少N个内存单位后转到步骤S14,其中,N为正整数,所述LRU索引堆与所述LFU索引堆的内存单位的总和固定;
若未在LFU Ghost链表中命中,步骤S12,判断所述请求中待读取的文件的指引是否在LRU Ghost链表中命中,其中,所述LRU Ghost链表中存放有从所述LRU索引堆中淘汰的文件的引用;
若在LRU Ghost链表中命中,步骤S13,在所述LRU索引堆增加N个内存单位,同时在所述LFU索引堆对应减少N个内存单位后转到步骤S14,其中,N为正整数,所述LRU索引堆与所述LFU索引堆的内存单位的总和固定;
本实施例中,LRU Ghost链表中存放的是从LRU索引堆中淘汰的文件的引用,同理LFU Ghost链表则存放从所述LFU索引堆中淘汰的文件的引用。此两个Ghost链表的作用在于,当发生Ghost链表中元素的命中时,触发相应索引堆的边界调整,从而适应当前客户端的数据访问特征;
LRU最小索引堆和LFU最小索引堆的内存总和固定,两个最小索引堆之间的分界点可以动态调整,因此,可以根据客户端读写操作的命中倾向性而动态调节LRU索引堆和LFU索引堆的内存空间占比,使得系统产生更多的缓存设备命中。
若未在LRU Ghost链表中命中,则转到步骤S14;
步骤S14,判断所述LRU索引堆的容量是否饱和,
若所述LRU索引堆的容量饱和,步骤S15,将所述LRU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该从所述LRU索引堆移除的文件的指引添加入LRU Ghost链表后转到步骤S16,
若所述LRU索引堆的容量未饱和,转到步骤S16;
步骤S16,将所述待读取的文件的指引加入所述LRU索引堆后转到步骤S17;
步骤S17,调整所述LRU索引堆后转到步骤S18;
步骤S18,调整所述LFU索引堆。
本发明的分布式存储系统的缓存方法一实施例中,步骤S17,调整所述LRU索引堆,包括:
步骤S171,按照所述缓存设备中的文件的最近访问时间调整所述LRU索引堆中的文件的引用的排序,其中,调整中访问时间越久远的文件越接近所述LRU索引堆的堆顶;
步骤S172,按照所述缓存设备中的文件大小再次调整所述LRU索引堆的前半部分的文件的引用的排序,其中,调整中文件越大,则越接近所述LRU索引堆的堆顶。
本实施例中,LRU最小索引堆在重构过程中,先根据文件最近访问时间进行调整,再将LRU索引堆的前半部分根据文件大小进行调整。
本发明的分布式存储系统的缓存方法一实施例中,步骤S7或步骤S18,调整所述LFU索引堆,包括:
步骤S71,按照所述缓存设备中的文件的访问频率调整所述LFU索引堆的文件的引用的排序,其中,调整中访问频率越低的文件越接近所述LFU索引堆的堆顶;
步骤S72,按照所述缓存设备中文件大小再次调整所述LFU索引堆的前半部分的文件的引用的排序,其中,调整中文件越大,则越接近所述LFU索引堆的堆顶。
本实施例中,L FU最小索引堆在重构过程中,先根据文件访问频率进行调整,再将LFU索引堆的前半部分根据文件大小进行调整。
本实施例的调整方式,使得系统在进行数据替换时优先替换大文件,从而使得缓存设备可以容纳更多的小文件,提高缓存设备命中率。
本发明涉及的数据结构由LRU Ghost链表、LRU索引堆、LFU索引堆、LFU Ghost链表构成。
其中,LRU索引堆中的文件按照最近访问时间进行排序,最近访问时间越久远的文件越接近堆顶;
LFU索引堆中的文件则按照访问频率进行排序,访问频率越低的文件越接近堆顶;
LRU Ghost链表中存放的是从LRU索引堆中淘汰的文件的引用,同理LFU Ghost链表则存放的是从所述LFU索引堆中淘汰的文件的引用。
此两个Ghost链表的作用在于,当发生Ghost链表中元素的命中时,触发相应索引堆的边界调整,从而适应当前客户端的数据访问特征。
本发明中,首先,LRU列表和LFU列表采用索引堆的数据结构,由于索引堆为完全二叉树,故对于增加元素、删除元素以及列表重构等操作,时间复杂度均为O(logn)级别,提高了运行效率;
其次,LRU索引堆和LFU索引堆之间的边界点可以动态调整,从而可以动态调节LRU索引堆和LFU索引堆的容量,使得该缓存设备方法始终倾向于当前的数据访问特征,从而提高缓存设备命中率;
最后,LRU索引堆和LFU索引堆在根据最近访问时间或者访问频率重构后,再次根据文件大小对索引堆的前半部分进行重构(见步骤S7、步骤S17和步骤S18),从而优先替换较大的文件,使得缓存设备可以容纳更多的小文件,这不但更加适用于分布式存储系统,而且进一步提升了缓存设备命中率。
本发明一具体实施中,包括如下步骤:
步骤S1,根据客户端请求的文件的指引查找缓存设备是否命中,若是则执行步骤S2;否则执行步骤S9;
步骤S2,根据客户端请求读取的文件的指引判断LFU索引堆是否命中,若命中则执行步骤S6;否则,执行步骤S3;
步骤S3,判断LFU索引堆的容量是否饱和,若是则执行步骤S4,否则执行步骤S5;
步骤S4,将所述LFU索引堆的堆顶元素的文件的指引所对应的文件从所述缓存设备中移除,并将堆顶元素的文件的指引添加到LFU Ghost链表,将所述LFU索引堆的堆顶元素的文件的指引移除,该步骤即淘汰了LFU索引堆中堆顶的访问频率最低的文件;
步骤S5,由于前面的步骤S2中判断出LFU索引堆未命中此待读取的文件,则该待读取的文件在LRU索引堆中得以命中。由于该待读取的文件在之前已经访问过,说明客户端当前的读写操作倾向于访问频率较高的文件。故在本步骤S5中,将该待读取的文件的指引由LRU索引堆移入LFU索引堆,并将LFU索引堆中所述待读取的文件的指引对应的访问频率设置为2,说明所述待读取的文件的访问次数为2,从而对该文件进行按照访问频率进行管理。具体实现方式为:将缓存设备中的该文件的引用从LRU索引堆中移除并在LFU索引堆中添加该文件的引用,之后执行步骤S7;
步骤S6,由于前面的步骤S2中判断出LFU索引堆命中了此待读取的文件,因此将LFU索引堆中该待读取的文件的访问频率加1,表示该待读取的文件的访问次数增加了1次;
步骤S7,调整LFU索引堆:首先按照所述LFU索引堆中文件的访问频率调整整体LFU索引堆,其中,调整中访问频率越低的文件越接近所述LFU索引堆的堆顶;之后,按照文件大小再次调整所述LFU索引堆的前半部分LFU索引堆,其中,调整中文件越大,则越接近所述LFU索引堆的堆顶,该调整方法使得系统在进行数据替换时优先替换大文件,从而使得缓存设备可以容纳更多的小文件,提高缓存设备命中率;
步骤S8,返回缓存设备系统中该文件的数据流,访问操作完成。之后执行步骤S19结束本次流程;
步骤S9,从底层存储系统中读取该待读取的文件数据流,同时将其存入缓存设备中;
步骤S10,步骤S1中得出了该文件并未存放于缓存设备中,此时有两种情况:一种是该待读取的文件在之前访问过但是从缓存设备中被淘汰,另一种则是该待读取的文件从未被访问过。因此需判断LFU Ghost链表和LRU Ghost链表是否命中该文件。在该步骤S10中,判断客户端所述请求中待读取的文件的指引是否在LFU Ghost链表中命中,若是则执行步骤S11;否则,执行步骤S12;
步骤S11,此时LFU Ghost链表发生了命中,说明之前从LFU索引堆中淘汰的文件再次发生了访问,因此当前的客户端访问更倾向于命中LFU索引堆而不是LRU索引堆。故在该步骤S11,中,如图1所示,可以将LRU索引堆和LFU索引堆之间的边界下标(p i vot)向左移动一个内存单位,即缩减LRU索引堆而扩充LFU索引堆,从而使得客户端达到更多的命中。之后执行步骤S14;
步骤S12,判断所述请求中待读取的文件的指引是否在LRU Ghost链表中命中,若是则执行步骤S13;否则,执行步骤S14;
步骤S13,此时LRU Ghost链表发生了命中,说明之前从LRU索引堆中淘汰的文件再次发生了访问,因此当前的客户端访问更倾向于命中LRU索引堆而不是LFU索引堆。故在该步骤中,将LRU索引堆和LFU索引堆之间的边界下标(p i vot)向右移动一个单位,即缩减LFU索引堆而扩充LRU索引堆,从而使得客户端达到更多的命中;
步骤S14,此时无论是该文件第一次访问,还是该文件之前访问过却被淘汰出去,该文件在步骤S9中已经作为新文件存入缓存设备中,因此接下来需将该文件加入到LRU索引堆中,故在本步骤中,判断LRU索引堆中容量是否饱和,若是则执行步骤S15,否则执行步骤S16;
步骤S15,前一步骤S14判断表明LRU索引堆容量饱和,因此在该步骤中需淘汰掉LRU索引堆中访问时间最久远的文件。故在该步骤S15中,将LRU索引堆堆顶元素所引用的文件从缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该引用添加到LRU Ghost链表;
步骤S16,在LRU索引堆添加该文件的引用;
步骤S17,调整LRU索引堆:首先按照最近访问时间调整整体LRU索引堆:访问时间越久远的文件越接近LRU索引堆的堆顶;之后,按照文件大小再次调整前半部分LRU索引堆:文件越大,则越接近于LRU索引堆的堆顶,该调整方法使得系统在进行数据替换时优先替换大文件,从而使得缓存设备可以容纳更多的小文件,提高缓存设备命中率;
步骤S18,调整LFU索引堆:首先按照访问频率调整整体LFU索引堆:访问频率越低的文件越接近堆顶;之后,按照文件大小再次调整前半部分LFU索引堆:文件越大,则越接近于LFU索引堆的堆顶;
步骤S19,结束流程。
根据本发明的另一面,还提供一种基于计算的设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
本发明各设备、存储介质实施例的详细内容具体可参见各方法实施例的对应部分,在此,不再赘述。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种分布式存储系统的缓存方法,其中,该方法包括:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
2.根据权利要求1所述的方法,其中,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,包括:
查询所述待读取的文件是否在所述LFU索引堆的文件的指引中命中,
若未在所述LFU索引堆中命中,判断所述LFU索引堆的容量是否饱和,
若所述LFU索引堆的容量饱和,将所述LFU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LFU索引堆的堆顶的文件的指引从所述LFU索引堆中移除,并将该从所述LFU索引堆移除的文件的指引添加入LFU Ghost链表后转到步骤S5;
若所述LFU索引堆的容量未饱和,转到步骤S5;
步骤S5,将所述待读取的文件的指引由LRU索引堆中移除,并将该从LRU索引堆中移除的文件的指引添加入LFU索引堆,并将LFU索引堆中所述待读取的文件的指引的访问频率设置为2;
调整所述LRU索引堆;
从所述缓存设备中读取所述待读取的文件。
3.根据权利要求2所述的方法,其中,查询所述待读取的文件是否在所述LFU索引堆的文件的指引中命中之后,还包括:
若在所述LFU索引堆中命中,将所述LFU索引堆中所述待读取的文件的指引对应的访问频率加1;
调整所述LFU索引堆;
从所述缓存设备中读取所述待读取的文件。
4.根据权利要求1所述的方法,其中,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,包括:
步骤S9,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中;
步骤S10,判断所述请求中待读取的文件的指引是否在LFU Ghost链表中命中,其中,所述LFU Ghost链表中存放有从所述LFU索引堆中淘汰的文件的引用;
若在LFU Ghost链表中命中,步骤S11,在所述LFU索引堆增加N个内存单位,同时在所述LRU索引堆对应减少N个内存单位后转到步骤S14,其中,N为正整数,所述LRU索引堆与所述LFU索引堆的内存单位的总和固定;
步骤S14,判断所述LRU索引堆的容量是否饱和,
若所述LRU索引堆的容量饱和,步骤S15,将所述LRU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该从所述LRU索引堆移除的文件的指引添加入LRU Ghost链表后转到步骤S16,
若所述LRU索引堆的容量未饱和,转到步骤S16;
步骤S16,将所述待读取的文件的指引加入所述LRU索引堆后转到步骤S17;
步骤S17,调整所述LRU索引堆后转到步骤S18;
步骤S18,调整所述LFU索引堆。
5.根据权利要求4所述的方法,其中,步骤S10,判断所述请求中待读取的文件的指引是否在LFU Ghost链表中命中之后,还包括:
若未在LFU Ghost链表中命中,步骤S12,判断所述请求中待读取的文件的指引是否在LRU Ghost链表中命中,其中,所述LRU Ghost链表中存放有从所述LRU索引堆中淘汰的文件的引用,
若在LRU Ghost链表中命中,步骤S13,在所述LRU索引堆增加N个内存单位,同时在所述LFU索引堆对应减少N个内存单位后转到步骤S14,其中,N为正整数,所述LRU索引堆与所述LFU索引堆的内存单位的总和固定;
步骤S14,判断所述LRU索引堆的容量是否饱和,
若所述LRU索引堆的容量饱和,步骤S15,将所述LRU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该从所述LRU索引堆移除的文件的指引添加入LRU Ghost链表后转到步骤S16,
若所述LRU索引堆的容量未饱和,转到步骤S16;
步骤S16,将所述待读取的文件的指引加入所述LRU索引堆后转到步骤S17;
步骤S17,调整所述LRU索引堆后转到步骤S18;
步骤S18,调整所述LFU索引堆。
6.根据权利要求5所述的方法,其中,步骤S12,判断所述请求中待读取的文件的指引是否在LRU Ghost链表中命中之后,还包括:
若未在LRU Ghost链表中命中,则转到步骤S14;
步骤S14,判断所述LRU索引堆的容量是否饱和,
若所述LRU索引堆的容量饱和,步骤S15,将所述LRU索引堆的堆顶的文件的指引所对应的文件从所述缓存设备中移除,并将LRU索引堆的堆顶的文件的指引从所述LRU索引堆中移除,并将该从所述LRU索引堆移除的文件的指引添加入LRU Ghost链表后转到步骤S16,
若所述LRU索引堆的容量未饱和,转到步骤S16;
步骤S16,将所述待读取的文件的指引加入所述LRU索引堆后转到步骤S17;
步骤S17,调整所述LRU索引堆后转到步骤S18;
步骤S18,调整所述LFU索引堆。
7.根据权利要求1~6任一项所述的方法,其中,调整所述LRU索引堆,包括:
按照所述缓存设备中的文件的最近访问时间调整所述LRU索引堆中的文件的引用的排序,其中,调整中访问时间越久远的文件越接近所述LRU索引堆的堆顶;
按照所述缓存设备中的文件大小再次调整所述LRU索引堆的前半部分的文件的引用的排序,其中,调整中文件越大,则越接近所述LRU索引堆的堆顶。
8.根据权利要求1~6任一项所述的方法,其中,调整所述LFU索引堆,包括:
按照所述缓存设备中的文件的访问频率调整所述LFU索引堆的文件的引用的排序,其中,调整中访问频率越低的文件越接近所述LFU索引堆的堆顶;
按照所述缓存设备中文件大小再次调整所述LFU索引堆的前半部分的文件的引用的排序,其中,调整中文件越大,则越接近所述LFU索引堆的堆顶。
9.一种基于计算的设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
10.一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:
获取读取文件的请求,基于所述请求中待读取的文件的指引查询缓存设备中是否存有对应的待读取的文件;
若缓存设备中存有对应的待读取的文件,从所述缓存设备中读取所述待读取的文件,并调整LRU索引堆,其中,文件的指引在LRU索引堆中按照所述缓存设备中的文件的最近访问时间进行排序;
若缓存设备中无对应的待读取的文件,基于所述请求中待读取的文件的指引从底层存储系统中读取所述待读取的文件,并将其存入所述缓存设备中,并分别调整LRU索引堆和LFU索引堆,其中,文件的指引在LFU索引堆中按照缓存设备中的文件的访问频率进行排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010309879.3A CN111522509B (zh) | 2020-04-20 | 2020-04-20 | 分布式存储系统的缓存方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010309879.3A CN111522509B (zh) | 2020-04-20 | 2020-04-20 | 分布式存储系统的缓存方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522509A true CN111522509A (zh) | 2020-08-11 |
CN111522509B CN111522509B (zh) | 2023-06-09 |
Family
ID=71903435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010309879.3A Active CN111522509B (zh) | 2020-04-20 | 2020-04-20 | 分布式存储系统的缓存方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522509B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025019A (zh) * | 2022-01-05 | 2022-02-08 | 深圳市名竹科技有限公司 | 基于arc算法的cdn缓存实现方法、装置和计算机设备 |
CN116737609A (zh) * | 2022-03-04 | 2023-09-12 | 格兰菲智能科技有限公司 | 选择替换缓存行的方法及其装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819586A (zh) * | 2012-07-31 | 2012-12-12 | 北京网康科技有限公司 | 一种基于高速缓存的url分类方法和设备 |
CN103178989A (zh) * | 2013-02-18 | 2013-06-26 | 中兴通讯股份有限公司 | 访问热度统计方法及装置 |
CN108763110A (zh) * | 2018-03-22 | 2018-11-06 | 新华三技术有限公司 | 一种数据缓存方法及装置 |
-
2020
- 2020-04-20 CN CN202010309879.3A patent/CN111522509B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819586A (zh) * | 2012-07-31 | 2012-12-12 | 北京网康科技有限公司 | 一种基于高速缓存的url分类方法和设备 |
CN103178989A (zh) * | 2013-02-18 | 2013-06-26 | 中兴通讯股份有限公司 | 访问热度统计方法及装置 |
CN108763110A (zh) * | 2018-03-22 | 2018-11-06 | 新华三技术有限公司 | 一种数据缓存方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025019A (zh) * | 2022-01-05 | 2022-02-08 | 深圳市名竹科技有限公司 | 基于arc算法的cdn缓存实现方法、装置和计算机设备 |
CN116737609A (zh) * | 2022-03-04 | 2023-09-12 | 格兰菲智能科技有限公司 | 选择替换缓存行的方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111522509B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101467589B1 (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
CN107491523B (zh) | 存储数据对象的方法及装置 | |
US11372568B2 (en) | System and method for storing and accessing blockchain data | |
CN111324665B (zh) | 一种日志回放方法及装置 | |
US6697795B2 (en) | Virtual file system for dynamically-generated web pages | |
WO2009130614A1 (en) | Data storage and access | |
US20220027349A1 (en) | Efficient indexed data structures for persistent memory | |
CN111522509B (zh) | 分布式存储系统的缓存方法及设备 | |
CN110851434B (zh) | 一种数据存储方法、装置及设备 | |
US20230342395A1 (en) | Network key value indexing design | |
CN113641681B (zh) | 一种空间自适应的海量数据查询方法 | |
CN113468080B (zh) | 一种全闪元数据的缓存方法、系统及相关装置 | |
CN111382179B (zh) | 数据处理方法、装置及电子设备 | |
CN115934583B (zh) | 分级缓存方法、装置及系统 | |
CN115576947A (zh) | 一种数据管理方法、装置、组合库、电子设备及存储介质 | |
CN115145954A (zh) | 一种数据查询方法、数据存储方法及装置 | |
CN114936010A (zh) | 数据处理方法、装置、设备及介质 | |
CN110362769B (zh) | 一种数据处理方法及装置 | |
CN111723266B (zh) | 海量数据处理方法和装置 | |
US20100077147A1 (en) | Methods for caching directory structure of a file system | |
CN115509437A (zh) | 存储系统、网卡、处理器、数据访问方法、装置及系统 | |
CN111782590A (zh) | 一种文件读取方法及装置 | |
CN118567577B (zh) | 基于分布式块存储的数据访问方法、装置、电子设备 | |
CN116955286B (zh) | 一种文件搜索与分类管理方法、系统及装置 | |
CN114356230B (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 |