CN111506253A - 一种分布式存储***及其存储方法 - Google Patents
一种分布式存储***及其存储方法 Download PDFInfo
- Publication number
- CN111506253A CN111506253A CN201910095775.4A CN201910095775A CN111506253A CN 111506253 A CN111506253 A CN 111506253A CN 201910095775 A CN201910095775 A CN 201910095775A CN 111506253 A CN111506253 A CN 111506253A
- Authority
- CN
- China
- Prior art keywords
- metadata
- memory
- storage unit
- unit
- disk storage
- 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/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]
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储***及其存储方法,所述分布式存储***主要包括:元数据管理单元,设置于内存,用于根据数据热度阈值获取内存中的冷元数据,发送至元数据写入单元;所述元数据写入单元,设置于内存,用于将所述冷元数据写入磁盘存储单元;所述磁盘存储单元,用于响应元数据访问请求,并根据预设时间间隔对所存储的元数据创建快照。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种分布式存储***及其存储方法。
背景技术
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data aboutdata),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。由于元数据能够协助数据检索,其访问频率较高,因此,对元数据进行存储时多是将其保存在内存中,以提高元数据的访问效率。
然而,随着元数据数量的不断增加,设备物理内存的容量已无法支持对所有元数据的内存存储。为了解决设备内存的容量上限问题,目前常用的一种方式是将内存中的部分元数据转移至磁盘中,以此缓解内存的容量问题,如Hadoop HDFS Archive提供了将文件元数据存放到内存之外的方法,即通过Archive可以将多个文件的元数据归档为一个文件,存储到磁盘。然而该方式在选择要转移的元数据时,需要人工确定元数据,并且对于归档后的文件元数据不能修改。这种方式对于需要访问磁盘中存储的元数据,不仅会影响访问速率,对于访问频率高的元数据还会降低磁盘的使用寿命。
此外,在文件数据存储方式中还存在一种SuperCache的缓存方式,即用内存保存读过的磁盘数据,如此,将访问频率高的数据存储在内存中,将访问频率低的数据存储在磁盘中,以提升文件的读取速率。然而,该方式在进程或设备故障时,并不能有效保护内存中的数据,导致文件数据丢失。由此可见,目前亟需提供一种元数据存储方案,以确保元数据的高访问速率以及对***故障的高容错率。
发明内容
鉴于上述问题,本发明实施例提出了一种分布式存储***及其存储方法,主要目的在于克服物理内存的容量瓶颈,提升存储***的元数据访问速率以及容错率。
为达到上述目的,本发明实施例主要提供如下技术方案:
一方面,本发明实施例提供一种分布式存储***,该***具体包括:
元数据管理单元,设置于内存,用于根据数据热度阈值获取内存中的冷元数据,发送至元数据写入单元;
所述元数据写入单元,设置于内存,用于将所述冷元数据写入磁盘存储单元;
所述磁盘存储单元,用于响应元数据访问请求,并根据预设时间间隔对所存储的元数据创建快照。
另一方面,本发明实施例提供一种分布式存储***的存储方法,该方法包括:
根据元数据写入请求,判断内存的可用存储空间是否小于阈值;
若小于所述阈值,则利用元数据管理单元将内存中的冷元数据移动至元数据写入单元;
根据预置时间间隔,将元数据写入单元中的冷元数据通过预置接口批量写入磁盘存储单元,所述磁盘存储单元用于响应元数据访问请求的存储区域。
另一方面,本发明实施例提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的分布式存储***的存储方法。
另一方面,本发明实施例提供一种电子设备,所述电子设备中包括处理器和存储器;存储器,用于存储程序;处理器,耦合至所述存储器,用于运行所述程序,以执行上述分布式存储***的存储方法。
借由上述技术方案,本发明实施例提供的一种分布式存储***及其存储方法,是以内存作为元数据的主要存储与访问载体,当内存空间不足或达到预设值时,从内存中筛选一部分热度低的元数据,并异步存储至磁盘中的磁盘存储单元内,由磁盘存储单元向这些元数据提供快速访问的响应能力。以此,在确保对大量元数据具有存储能力的同时,将访问频率高的元数据保留在内存中,减少对磁盘中存储的元数据进行访问,使得这种混合存储***的访问速率接近于纯内存存储***的访问速率。此外,由于向磁盘存储单元存储元数据采用的是异步写入方式,为了在***故障时确保内存与磁盘中恢复的元数据与故障前所存储的元数据保持一致,该磁盘存储单元能够基于内存的检查点机制创建快照,在进行数据恢复时可以实现对磁盘存储单元中的元数据进行同步恢复,从而确保了内存与磁盘中存储的元数据不会因为***故障而丢失,提高该混合存储***的容错率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了纯内存存储元数据的***组成框图;
图2示出了本发明实施例提出的一种分布式存储***的组成框图;
图3示出了本发明实施例提出的另一种分布式存储***的组成框图;
图4示出了本发明实施例提出的一种分布式存储***中磁盘存储单元创建快照的方法流程图;
图5示出了本发明实施例提出的另一种分布式存储***的组成框图;
图6示出了本发明实施例提出的一种分布式存储***的存储方法的流程图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
在说明本发明实施例提供了一种分布式存储***之前,先简单介绍一下在纯内存模式下的存储***中对元数据访问与恢复的流程。如图1所示,上半部分为存储***中的内存数据结构,下半部分为存储***中的磁盘所存储的对应于内存中的一些数据。对于元数据而言,由于需要进行频繁的访问操作,包括增、删、改、查操作,为了在内存中实现快速的访问操作,通常会将元数据保存在一个map数据结构里,即将元数据的key存储为一组数据(uri),将对应的value存储为另一组数据(file)。在接收到元数据访问请求后,就可以直接从内存的map中查找,即根据访问请求中的key值查找是否存在对应的key,若存在,再获取对应的value值。在考虑到***进程或者设备挂掉的情况,如果元数据只保存在于内存中会存在无法恢复的问题,即在进程挂掉的时候这些元数据将会丢失,无法恢复。因此在实际实现中,对于会修改内存中元数据状态的写操作来说,会先把这个操作作为redo日志(即图中的op1,op2…等)记录到磁盘上,然后再修改内存中的元数据。如此,在进程重启时,通过读取磁盘上的日志,对写操作重复执行(replay)就可以把内存中的元数据状态恢复到最新。但是,由于日志在不断变长,如果每次挂掉都要从第一条日志恢复,需要的时间会越来越长,最终会长到不能接受。为了加速进程在挂掉后的恢复过程,通常会周期性的把内存中元数据的一个映像保存到磁盘,即图1中的CPT(checkpoint)。之后,在重启恢复时,只需要直接加载磁盘上最新的CPT,然后只replay这个CPT之后的日志即可。
以上说明的是纯内存存储***下对元数据访问的实现方式,在该方式的基础上,本发明实施例提供一种分布式存储***,该存储***提出了一种由内存与磁盘共同存储的混合存储方式,从而有效解决内存容量有限的问题。具体如图2所示,所述存储***包括:元数据管理单元1、元数据写入单元2和磁盘存储单元3。
从图中可以看出,元数据管理单元1与元数据写入单元2是设置在内存中的,其中,元数据管理单元1用于根据预置热度策略获取内存中的冷元数据,将冷元数据发送至元数据写入单元2。在实际应用中,元数据管理单元1在获取内存中的冷元数据时,一般是在内存的存储空间不足的情况下,筛选内存中访问频率不高的元数据作为冷元数据,所采用的预置热度策略可根据实际应用需求而设置,如常用的LRU缓存(Least Recently Used Cache)算法等。
之后,由元数据写入单元2将所获得的冷元数据写入磁盘存储单元3。
需要说明的是,本实施例中的元数据写入单元2在向磁盘存储单元3写入冷元数据时,其优选的写入方式为异步写入方式,将冷元数据异步写入磁盘存储单元3是因为元数据在被频繁访问时,有可能对其元数据进行多次修改,如果是实时写入磁盘,在修改元数据时,就需要对磁盘进行频繁访问,而通过异步写入,由于元数据写入单元2还是设置在内存中,在修改元数据时,其实际操作依然是在内存中执行,减少了对磁盘的访问。
最后,由设置在磁盘中的磁盘存储单元3接收从内存中淘汰的元数据,并进行数据存储,需要说明的是,该磁盘存储单元3采用的是支持元数据快速访问的存储格式,如diskstore格式,即该磁盘存储单元3能够对数据访问请求进行快速响应,以使得该混合存储***的访问速率整体上能够接近纯内存存储模式的访问速率。
此外,由于本发明实施例中的元数据写入单元2采用的是异步写入方式,而内存中的检查点机制(checkpoint机制)在数据恢复过程中不能够恢复磁盘存储单元3中的元数据。因此,要确保***故障时混合存储***中的元数据不丢失,本发明实施例中的磁盘存储单元3还设置有快照功能,该快照功能类似于内存中的检查点机制的功能,能够根据预设时间间隔记录磁盘存储单元3中所存储的元数据状态,以便在***恢复过程中通过快照还原磁盘存储单元3在某一时刻存储的元数据。而为了确保内存与磁盘中数据的一致性,磁盘存储单元3在创建快照时,其预设时间间隔的优选实现方式是基于内存的检查点机制执行的,即内存每生成一个CPT,磁盘存储单元3都会对应的创建一个快照(Snapshot),并且在创建之前,需要将元数据写入单元2中的元数据清空,也就是全部转移存储至磁盘存储单元3中。
进一步的,基于上述图2所示的分布式存储***,本发明实施例还提出了一种分布式存储***,如图3所示,该***是基于对元数据访问请求处理的优化设置,即在该***中增加设置了元数据访问单元4,具体如图3所示:
元数据访问单元4,也设置在内存中,用于判断磁盘存储单元3中是否存在元数据访问请求中的待访问元数据。根据元数据在内存中的map数据结构,若待访问元数据不存在与内存中,则该元数据访问单元4通过获取元数据访问请求中待访问元数据的key,能够快速判断该key是否存在于磁盘存储单元3中。
在本发明实施例对元数据访问请求的处理过程中,访问元数据的流程是先访问内存,若在内存中查找到该元数据访问请求对应的待访问元数据则直接执行相应的访问操作,而如果未查找到,则访问元数据访问单元4,由元数据访问单元4判断该待访问元数据是否存在于磁盘存储单元3中,若元数据访问单元4反馈的结果是不存在,则说明该待访问元数据不存在,反之,则说明该磁盘存储单元3中可能存在该待访问元数据,此时,元数据访问单元4将通过预置接口访问磁盘存储单元3,查找该待访问元数据,若找到则反馈已找到,若未找到,则反馈该待访问元数据不存在。
一般地,元数据访问请求所包含的具体操作包括但不限于对待访问元数据的增加操作(add)、删除操作(delete)、修改操作(update)、查找操作(find)中的一种或多种操作。针对具体的操作逻辑如下:
1、增加操作(add)
查找内存中的元数据,若存在待访问元数据,则直接返回已存在,add失败;如果不存在,则访问元数据访问单元4,获取其判断结果,若判断结果为不存在,则直接在内存中add该待访问元数据(即写入该元数据的key与value的值),add成功;若判断结果为存在,则通过预置接口在磁盘存储单元3中查找该待访问元数据,若找到,返回已存在,add失败,若未找到则在内存中add该待访问元数据,add成功。
2、删除操作(delete)
查找内存中的元数据,若存在该待访问元数据,则将内存中的元数据删除,delete成功;若不存在,则访问元数据访问单元4,获取其判断结果,若判断结果为不存在,则直接返回不存在,delete失败;若判断结果为存在,则通过预置接口在磁盘存储单元3查找该待访问元数据,若找到,则删除该元数据,delete成功,若未找到,则返回不存在,delete失败。
3、修改操作(update)
查找内存中的元数据,若存在该待访问元数据,则跟新元数据中对应的value值,update成功;若不存在,则访问元数据访问单元4,获取其判断结果,若判断结果为不存在,则直接返回不存在,update失败;若判断结果为存在,则通过预置接口在磁盘存储单元3查找该待访问元数据,若找到,则更新该元数据中对应的value值,update成功;若未找到,则返回不存在,update失败。
4、查找操作(find)
查找内存中的元数据,若存在待访问元数据,则直接返回元数据中的value值;如果不存在,则访问元数据访问单元4,获取其判断结果,若判断结果为不存在,则直接返回未查到的结果;若判断结果为存在,则通过预置接口在磁盘存储单元3查找该待访问元数据,若找到,返回元数据中的value值;若未找到,则返回未查到的结果。
通过上述对元数据访问请求的处理流程的说明可以看出,利用元数据访问单元4可以有效阻止实现上并不存在待访问元数据的访问请求,对磁盘的进一步访问,从而减少对磁盘的访问次数。
进一步的,对于图3所示的分布式存储***,在实际应用中,还可以将设置在内存中的元数据访问单元4与元数据写入单元2合并为同一个单元来实现上述的功能,如使用RocksDB格式的磁盘作为该分布式存储***中的磁盘时,可以通过RocksDB磁盘的内部功能实现完成上述元数据访问单元4与元数据写入单元2的功能。
以下,针对图3所示的分布式存储***,说明磁盘存储单元3在基于内存的检查点机制创建快照的具体流程。
在该分布式存储***中,元数据要存储到磁盘中,都需要先写入元数据写入单元2中,由元数据写入单元2异步写入磁盘存储单元3。此时,对于写入磁盘的访问请求,当内存中的元数据被写入到元数据写入单元2中时,***就会认为以完成写入操作,并反馈结果,因此,该访问请求的处理实际发生在内存中,能够实现结果的快速反馈,从用户感知的角度看,其提高了元数据写入的处理速率。但是,实际上要写入的元数据是异步写入磁盘中,即反馈结果与实际写入磁盘存之间存在一定的时间差,而在该时间段内,元数据写入单元2中的元数据是不被保护的,一旦发生***故障或进程崩溃,将直接导致该部分元数据丢失,且无法恢复,为解决该问题,本发明实施例为磁盘存储单元3设计了快照功能,通过该快照功能,能够记录下磁盘存储单元3在某一时刻的状态,并以此进行数据恢复,然而,快照仅是恢复磁盘存储单元3中的元数据,而对于元数据写入单元2中的数据如何进行保护,在本发明实施例中,是通过结合内存的checkpoint机制与磁盘存储单元3的快照功能进行保护的,通过一套严格的操作流程来实现内存与磁盘中元数据的一致且不会丢失。具体的步骤如图4所示,包括:
101、根据所述处理的元数据修改操作,在磁盘中写入对应的修改操作日志。
其中,元数据修改操作包括对内存、元数据写入单元2以及磁盘存储单元3中的元数据进行value值修改的操作,或者是元数据的增加操作。与纯内存模式的处理方式相同,都需要在磁盘中记录一条对应的修改操作日志,即图3中的Op内容。
在完成修改操作日志的记录后,再执行对应的元数据修改操作。
102、根据修改操作日志,将当前处理中的元数据访问请求处理完成后,暂停未处理的元数据访问请求。
存储***在需要执行checkpoint机制生成CPT数据时,根据最新记录的修改操作日志,将当前处理中的元数据访问请求处理完成,也就是对修改操作日志所对应的元数据修改操作执行完成之后,对于其他未处理的元数据访问请求则暂停处理。
需要说明的是,本发明实施例中,checkpoint机制与快照是同时执行的。
103、基于内存的执行检查点机制接收元数据写入单元写入的冷元数据,生成元数据落盘信息。
本步骤的目的在于清空元数据写入单元2中存储的元数据,确保其中的元数据已保存至磁盘存储单元3中。从而在创建快照之前,保证所有的元数据存储在内存与磁盘存储单元3中。需要说明的是,本发明实施例中的内存是指用于存储元数据的key-value值的区域,即图3中的uri与file所构成的存储区域。
在清空元数据写入单元2并将内容存储到磁盘存储单元3之后,会对应生成元数据落盘信息,该信息为开始制作CPT数据以及snapshot数据的信号。
需要说明的是,内存的执行检查点机制是分布式存储***针对内存所存储的数据,在磁盘中进行定期的备份,以得到内存映像数据,该内存映像数据中记录的是某一时间点内存中所存储的元数据信息。
104、根据元数据落盘信息创建快照,生成对应内存映像数据的快照数据。
该步骤是针对磁盘存储单元3中的元数据,生成快照数据(snapshot数据)。并且,在创建快照的时间点与内存执行检查点机制的时间点相同步,即生成一个CPT数据的同时会生成对应的一个snapshot数据。
在得到CPT数据和snapshot数据后,将其保存至磁盘中的指定位置,同时恢复元数据写入单元2中对未处理的元数据访问请求的处理过程。
根据上述步骤的操作,可以实现对该分布式存储***中的元数据进行周期性的备份记录,当发生***故障时,只需获取最近的记录数据(CPT数据和snapshot数据)就可以还原***在对应记录数据时刻的元数据状态,再根据记录数据对应的修改操作日志就恢复***故障前的元数据状态,其具体的数据恢复流程包括:
首先,根据接收到的元数据恢复请求,从磁盘中获取对应的修改操作日志、内存映像数据以及快照数据。
该元数据恢复请求中的记录恢复点可以是自动选择磁盘中记录的最新内存映像数据以及快照数据,也可以是由用户人工选择的某一时刻记录的数据。
第二,利用内存映像数据恢复内存中的元数据。
第三,利用快照数据恢复磁盘存储单元3中的元数据。
以上两步可以同时执行,两者之间不限定其逻辑先后关系。
最后,执行修改操作日志之后记录的元数据修改操作。
例如,恢复的图3中Op3日志对应时刻的元数据状态,通过CPT2恢复内存中的元数据,通过Snapshot2恢复磁盘存储单元3中的元数据,之后,通过顺序执行日志Op4与Op5中记录的元数据修改操作就可以得到***当前存储元数据的状态。
根据上述的数据恢复流程,本发明实施例所提出的分布式存储***还包括有获取单元5与恢复单元6,用于实现上述的数据恢复流程,其对应的***组成框图如图5所示:
其中,所述获取单元5用于根据接收到的元数据恢复请求,从磁盘中获取对应的修改操作日志、内存映像数据以及快照数据。
所述恢复单元6用于,利用所述获取单元5得到的内存映像数据恢复内存中的元数据,以及利用所述获取单元5得到的快照数据恢复磁盘存储单元3中的元数据;
此外,所述元数据访问单元4还用于,执行所述修改操作日志之后记录的元数据修改操作,以确保元数据的状态与***故障之前的状态一致。
进一步的,在本发明实施例中,元数据管理单元1除了能够将内存中的冷元数据移动至元数据写入单元2中,当磁盘存储单元3或元数据写入单元2中的元数据中存在热元数据时,也可以将其再移动至内存中。
以上,针对本发明提出的分布式存储***进行了详细说明,其相对于与纯内存存储***解决了存储空间存在上限的问题,而相对于已有的混合存储***而言,本发明实施例则是通过元数据管理单元1将热的元数据保留在内存中,通过元数据访问单元4减少对磁盘中不存在的元数据的访问操作,这些都使得本***能够实现将大部分的元数据访问请求在内存中得到处理,而通过元数据写入单元2的异步写入操作,以及磁盘存储单元3的快速访问响应能力,也提高了***对访问磁盘中元数据的响应速率。更重要的是,通过磁盘存储单元3的快照功能可以确保本***在***故障或设备崩溃时能够准确恢复元数据的状态,不会导致元数据丢失。
基于上述提供的内存加存盘存储结构的分布式存储***,通过该***中各个单元模块的配合操作,就可以实现对大量元数据的高效存储,对此,本发明实施例还提供了一种分布式存储***的存储方法,其具体步骤如图6所示,包括:
201、根据元数据写入请求,判断内存的可用存储空间是否小于阈值。
本发明实施例是针对需要在内存中新增元数据的情况下,判断内存的可用存储空间是否充足,具体可以通过设置一个阈值进行判断,若可用存储空间大于或等于该阈值,则认为可用存储空间充足,此时可直接将该元数据写入内存中,而若小于该阈值,则任务没有充足的可用存储空间,此时将执行步骤202。
其中,该元数据写入请求可以是外部输入的元数据写入请求,也可以是存储***中由磁盘存储单元写入内存的元数据写入请求。
202、利用元数据管理单元将内存中的冷元数据移动至元数据写入单元。
本步骤具体可通过LRUCache等算法计算内存中已有元数据的访问频率,将访问频率高的确定为热元数据,访问频率低的确定为冷元数据。根据冷元数据的热度排序,执行末位淘汰,将冷元数据转移至元数据写入单元,以确保内存中有足够的可用存储空间来写入新的元数据。
203、根据预置时间间隔,将元数据写入单元中的冷元数据通过预置接口写入磁盘存储单元。
其中,预置时间间隔可以由用户自定义设置,通过所设置的是时间间隔实现元数据写入单元的异步写入功能,以此减少对磁盘的访问次数。
需要说明的是,该磁盘存储单元是设置在磁盘中的用于快速响应元数据访问请求的存储区域。因此,即使所访问的元数据存储在磁盘中,通过该磁盘存储单元,***也能够快速响应,提高***的访问响应速率。
进一步的,在该存储***中的内存执行checkpoint机制,生成CPT数据的同时,磁盘存储单元将创建快照,生成与CPT数据相对应的snapshot数据。通过CPT数据与snapshot数据记录该存储***在当前时刻的元数据存储状态,以实现在***故障恢复过程中不会丢失元数据的目的。
在本发明实施例中,CPT数据用于恢复内存中的元数据状态,snapshot数据用于恢复磁盘存储单元中的元数据状态。而对于元数据写入单元,由于其是异步写入,其中会存储有部分元数据,要确保这部分数据不丢失,本实施例是通过对CPT数据与snapshot数据的生成步骤进行严格限定实现的,具体过程包括:
首先,在对内存执行检查点机制,生成内存映像数据时,根据磁盘存储单元处理的元数据修改操作,在磁盘中写入对应的修改操作日志,根据所述修改操作日志,将当前处理中的元数据访问请求处理完成,暂停未处理的元数据访问请求。
之后,将元数据写入单元中的冷元数据写入磁盘存储单元,生成元数据落盘信息。以此,确保在元数据写入单元中不存储元数据。
最后,根据元数据落盘信息对磁盘存储单元中的元数据创建快照,得到对应内存映像数据的快照数据。
根据该过程可以看出,本实施例是在存储***执行checkpoint机制与快照功能前,先清空元数据写入单元中存储的元数据,将这些元数据存储到磁盘存储单元后再进行快照,得到snapshot数据。如此,在恢复过程中就不会存在因为元数据写入单元中存储有元数据而导致数据丢失的问题。
基于上述的CPT数据与snapshot数据,在对***进行元数据恢复时,其具体的恢复过程包括:
首先,根据接收到的元数据恢复请求,从磁盘中获取对应的修改操作日志、内存映像数据(CPT数据)以及快照数据(snapshot数据)。
其次,利用内存映像数据恢复内存中的元数据。
第三,利用快照数据恢复磁盘存储单元中的元数据。
最后,执行修改操作日志之后记录的元数据修改操作。
该过程在上述分布式存储***的实施例中以做详细说明,针对具体过程,此处不再赘述。
进一步的,上述实施例所执行的步骤是基于向该存储***中写入新的元数据时所执行的过程,而对于***在处理元数据访问请求时,并不全是写入新的元数据,也可以是删除元数据、或修改已存储的元数据,或查找等访问请求,因此,在上述实施例基础上,本发明的分布式存储***在处理元数据访问请求时,就需要对该元数据访问请求中的待访问元数据在内存与磁盘中读取,以判断其是否已存在,其具体读取流程包括:
第一,在内存中查找元数据,该元数据为元数据访问请求中的待访问元数据。若查找到,则确定该元数据存在于内存中,可以直接执行对应的访问操作。
第二,若未在内存中查找到,则利用内存中的元数据访问单元判断磁盘存储单元中是否存在该元数据。
第三,若确定存储于磁盘存储单元中,则通过预置接口访问磁盘存储单元,查找该元数据并反馈查找结果,该查找结果有可能是查找到该元数据,也可能是未查找到该元数据。
第四,若确定在内存与磁盘存储单元中都不存在该元数据,则确定该待访问元数据不存在,当元数据访问请求中的操作为增加操作时,则确定该访问元数据为需要写入的元数据。
进一步的,对应的元数据删除请求的处理过程为:根据元数据删除请求,在内存中查找该元数据;若查找到,则直接删除该元数据;若未查找到,利用内存中的元数据访问单元判断所述元数据是否存储在磁盘中;若存储在磁盘中,则通过预置接口访问所述磁盘存储单元,查找并删除所述元数据;若未存储在磁盘中,或未在磁盘中查找到所述元数据,则反馈不存在所述元数据的结果。
进一步的,对应的元数据修改请求的处理过程为:根据元数据修改请求,在内存中查找该元数据;若查找到,则直接修改该元数据;若未查找到,则利用内存中的元数据访问单元判断所述元数据是否存储在磁盘中;若存储在磁盘中,则通过预置接口访问所述磁盘存储单元,查找并修改所述元数据,即查找到执行修改操作,未查找到则返回不存在所述元数据的结果;若未存储在磁盘中,则反馈不存在所述元数据的结果。
进一步的,对应的元数据查找请求的处理过程为:根据元数据查找请求,在内存中查找所述元数据;若未查找到,利用内存中的元数据访问单元判断所述元数据是否存储在磁盘中;若存储在磁盘中,则通过预置接口访问所述磁盘存储单元,查找所述元数据;若未存储在磁盘中,或未在磁盘中查找到所述元数据,则反馈不存在所述元数据的结果。
综上所述,本发明实施例所采用的分布式存储***及其存储方法,通过在纯内存存储***的基础上增加元数据管理单元、元数据写入单元、磁盘存储单元、以及元数据访问单元,实现了将内存中存储的元数据按照热度排序将冷的元数据异步写入磁盘中,使得***在处理元数据访问请求时可以将大部分的请求在内存中处理,减少对磁盘的访问,此外,通过对磁盘存储单元设置快照功能,实现其对元数据的故障恢复能力,并且通过与内存中的checkpoint机制的配合使用,也确保可***在故障时不会丢失元数据写入单元中的元数据,提高***的容错能力。
进一步的,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的分布式存储***的存储方法。
进一步的,本发明实施例还提供了一种电子设备,该电子设备中至少包括处理器和存储器,其中,存储器用于存储程序,处理器耦合至该存储器,用于运行所述程序,以执行上述分布式***的存储方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述分布式存储***及其存储方法中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (17)
1.一种分布式存储***,其特征在于,包括:
元数据管理单元,设置于内存,用于根据数据热度阈值获取内存中的冷元数据,发送至元数据写入单元;
所述元数据写入单元,设置于内存,用于将所述冷元数据写入磁盘存储单元;
所述磁盘存储单元,用于响应元数据访问请求,并根据预设时间间隔对所存储的元数据创建快照。
2.根据权利要求1所述的***,其特征在于,所述元数据写入单元还用于,向所述磁盘存储单元异步写入所述冷元数据。
3.根据权利要求1所述的***,其特征在于,还包括:
元数据访问单元,用于判断所述磁盘存储单元中是否存在元数据访问请求中的待访问元数据。
4.根据权利要求3所述的***,其特征在于,所述元数据访问单元还用于:
在所述元数据访问请求对应的待访问元数据未存储在内存中时,判断所述磁盘存储单元中是否存在所述待访问元数据;
若存在,则通过预置接口访问所述磁盘存储单元,查找所述待访问元数据;
若不存在,则反馈不存在所述待访问元数据。
5.根据权利要求4所述的***,其特征在于,所述元数据访问请求至少包括对待访问元数据的增加、删除、修改以及查找操作中的任一种或多种操作。
6.根据权利要求1-5中任一项所述的***,其特征在于,所述磁盘存储单元在根据预设时间间隔对所存储的元数据创建快照时,还用于:
基于内存的执行检查点机制接收所述元数据写入单元写入的冷元数据,生成元数据落盘信息,所述检查点机制用于在磁盘中存储内存映像数据;
根据所述元数据落盘信息创建快照,得到对应所述内存映像数据的快照数据,所述快照数据记录了磁盘存储单元中存储的元数据。
7.根据权利要求6所述的***,其特征在于,所述磁盘存储单元还用于:
在基于内存的执行检查点机制接收所述元数据写入单元写入的冷元数据之前,根据所处理的元数据修改操作,在磁盘中写入对应的修改操作日志;
根据所述修改操作日志,将当前处理中的元数据访问请求处理完成之后,暂停未处理的元数据访问请求。
8.根据权利要求6所述的***,其特征在于,还包括:
获取单元,用于根据接收到的元数据恢复请求,从磁盘中获取对应的修改操作日志、内存映像数据以及快照数据;
恢复单元,用于利用所述内存映像数据恢复内存中的元数据,以及利用所述快照数据恢复磁盘存储单元中的元数据;
所述元数据访问单元还用于,执行所述修改操作日志之后记录的元数据修改操作。
9.一种分布式存储***的存储方法,其特征在于,包括:
根据元数据写入请求,判断内存的可用存储空间是否小于阈值;
若小于所述阈值,则利用元数据管理单元将内存中的冷元数据移动至元数据写入单元;
根据预置时间间隔,将元数据写入单元中的冷元数据通过预置接口写入磁盘存储单元。
10.根据权利要求9所述的方法,其特征在于,还包括:
由所述磁盘存储单元创建快照,所述快照用于在***故障恢复过程中恢复所述磁盘存储单元中存储的元数据。
11.根据权利要求10所述的方法,其特征在于,由所述磁盘存储单元创建快照具体包括:
在对内存执行检查点机制,生成内存映像数据时,将所述元数据写入单元中的冷元数据写入所述磁盘存储单元,生成元数据落盘信息;
根据所述元数据落盘信息对所述磁盘存储单元中的元数据创建快照,得到对应所述内存映像数据的快照数据。
12.根据权利要求11所述的方法,其特征在于,在将所述元数据写入单元中的冷元数据写入所述磁盘存储单元之前,还包括:
根据所述磁盘存储单元处理的元数据修改操作,在磁盘中写入对应的修改操作日志;
根据所述修改操作日志,将当前处理中的元数据访问请求处理完成,暂停未处理的元数据访问请求。
13.根据权利要求11所述的方法,其特征在于,还包括:
根据接收到的元数据恢复请求,从磁盘中获取对应的修改操作日志、内存映像数据以及快照数据;
利用所述内存映像数据恢复内存中的元数据;
利用所述快照数据恢复磁盘存储单元中的元数据;
执行所述修改操作日志之后记录的元数据修改操作。
14.根据权利要求9-13中任一项所述的方法,其特征在于,所述方法还包括:
根据元数据访问请求在内存中查找所述元数据访问请求中的待访问元数据;
若未查找到,则利用内存中的元数据访问单元判断所述磁盘存储单元中是否存在所述元数据;
若存在,则通过预置接口访问所述磁盘存储单元,查找所述元数据;
若在所述内存与磁盘存储单元中都不存在所述元数据,则反馈不存在所述元数据。
15.根据权利要求14所述的方法,其特征在于,所述元数据访问请求至少包括对待访问元数据的增加、删除、修改以及查找操作中的任一种或多种操作。
16.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求9-15中任一项所述的分布式存储***的存储方法。
17.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于运行所述程序,以执行如权利要求9-15中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910095775.4A CN111506253B (zh) | 2019-01-31 | 2019-01-31 | 一种分布式存储***及其存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910095775.4A CN111506253B (zh) | 2019-01-31 | 2019-01-31 | 一种分布式存储***及其存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506253A true CN111506253A (zh) | 2020-08-07 |
CN111506253B CN111506253B (zh) | 2023-06-20 |
Family
ID=71868956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910095775.4A Active CN111506253B (zh) | 2019-01-31 | 2019-01-31 | 一种分布式存储***及其存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506253B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416253A (zh) * | 2020-11-25 | 2021-02-26 | 新华三云计算技术有限公司 | 一种基于分布式存储的存储区域动态调整方法及装置 |
CN112667149A (zh) * | 2020-12-04 | 2021-04-16 | 北京浪潮数据技术有限公司 | 一种数据热度感知方法、装置、设备及介质 |
CN114153385A (zh) * | 2021-11-12 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种分布式存储写缓冲数据分步下刷方法、装置及介质 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储***及网络数据读取和写入方法 |
TWI788084B (zh) * | 2021-11-03 | 2022-12-21 | 財團法人資訊工業策進會 | 運算裝置以及資料備份方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件***的元数据存储***和管理方法 |
CN104657461A (zh) * | 2015-02-10 | 2015-05-27 | 北京航空航天大学 | 基于内存与ssd协作式的文件***元数据搜索缓存方法 |
CN104735110A (zh) * | 2013-12-23 | 2015-06-24 | 中国电信股份有限公司 | 元数据管理方法和*** |
CN104933133A (zh) * | 2015-06-12 | 2015-09-23 | 中国科学院计算技术研究所 | 分布式文件***中的元数据快照存储和访问方法 |
US20160283329A1 (en) * | 2015-03-27 | 2016-09-29 | Emc Corporation | Virtual point in time access between snapshots |
CN106126658A (zh) * | 2016-06-28 | 2016-11-16 | 电子科技大学 | 一种基于虚拟存储器快照的数据库检查点构建方法 |
CN108572888A (zh) * | 2017-03-14 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 磁盘快照创建方法和磁盘快照创建装置 |
CN109144413A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种元数据管理方法及装置 |
CN109213772A (zh) * | 2018-09-12 | 2019-01-15 | 华东师范大学 | 数据存储方法及NVMe存储*** |
CN109240612A (zh) * | 2018-08-29 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种海量元数据缓存加速的方法 |
-
2019
- 2019-01-31 CN CN201910095775.4A patent/CN111506253B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件***的元数据存储***和管理方法 |
CN104735110A (zh) * | 2013-12-23 | 2015-06-24 | 中国电信股份有限公司 | 元数据管理方法和*** |
CN104657461A (zh) * | 2015-02-10 | 2015-05-27 | 北京航空航天大学 | 基于内存与ssd协作式的文件***元数据搜索缓存方法 |
US20160283329A1 (en) * | 2015-03-27 | 2016-09-29 | Emc Corporation | Virtual point in time access between snapshots |
CN104933133A (zh) * | 2015-06-12 | 2015-09-23 | 中国科学院计算技术研究所 | 分布式文件***中的元数据快照存储和访问方法 |
CN106126658A (zh) * | 2016-06-28 | 2016-11-16 | 电子科技大学 | 一种基于虚拟存储器快照的数据库检查点构建方法 |
CN108572888A (zh) * | 2017-03-14 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 磁盘快照创建方法和磁盘快照创建装置 |
CN109144413A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种元数据管理方法及装置 |
CN109240612A (zh) * | 2018-08-29 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种海量元数据缓存加速的方法 |
CN109213772A (zh) * | 2018-09-12 | 2019-01-15 | 华东师范大学 | 数据存储方法及NVMe存储*** |
Non-Patent Citations (2)
Title |
---|
JANE GREENBERG: "\"Big Metadata,Smart Metadata,and Metadata Capital:Toward Greater Synergy Between Data Science and Metadata\"" * |
蔡涛;牛德姣;刘扬宽;李帅;鞠时光;: "NVMMDS――一种面向非易失存储器的元数据管理方法" * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416253A (zh) * | 2020-11-25 | 2021-02-26 | 新华三云计算技术有限公司 | 一种基于分布式存储的存储区域动态调整方法及装置 |
CN112667149A (zh) * | 2020-12-04 | 2021-04-16 | 北京浪潮数据技术有限公司 | 一种数据热度感知方法、装置、设备及介质 |
CN112667149B (zh) * | 2020-12-04 | 2023-12-29 | 北京浪潮数据技术有限公司 | 一种数据热度感知方法、装置、设备及介质 |
TWI788084B (zh) * | 2021-11-03 | 2022-12-21 | 財團法人資訊工業策進會 | 運算裝置以及資料備份方法 |
CN114153385A (zh) * | 2021-11-12 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种分布式存储写缓冲数据分步下刷方法、装置及介质 |
CN114153385B (zh) * | 2021-11-12 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 一种分布式存储写缓冲数据分步下刷方法、装置及介质 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储***及网络数据读取和写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111506253B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10157109B2 (en) | Method for restoring files from a continuous recovery system | |
EP3098715B1 (en) | System and method for object-based continuous data protection | |
CN111506253B (zh) | 一种分布式存储***及其存储方法 | |
US10705919B2 (en) | Data backup using metadata mapping | |
EP3125120B1 (en) | System and method for consistency verification of replicated data in a recovery system | |
US8924355B1 (en) | Checkpoint restart | |
US11119978B2 (en) | Snapshot version control | |
EP3101545B1 (en) | System and method for generating backups of a protected system from a recovery system | |
US20170083412A1 (en) | System and method for generating backups of a protected system from a recovery system | |
EP2879040B1 (en) | Data storage method, data storage apparatus, and storage device | |
CN108431783B (zh) | 访问请求处理方法、装置及计算机*** | |
US10628298B1 (en) | Resumable garbage collection | |
JP2006268139A (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
US10977143B2 (en) | Mirrored write ahead logs for data storage system | |
US10509767B2 (en) | Systems and methods for managing snapshots of a file system volume | |
CN113885809B (zh) | 数据管理***及方法 | |
CN116483284B (zh) | 一种读写虚拟硬盘的方法、装置、介质及电子设备 | |
EP3264254A1 (en) | System and method for a simulation of a block storage system on an object storage system | |
US10452496B2 (en) | System and method for managing storage transaction requests | |
CN115421856A (zh) | 一种数据恢复方法及装置 | |
CN115658391A (zh) | 基于QianBase MPP数据库的WAL机制的备份恢复方法 | |
WO2018077092A1 (zh) | 应用于分布式文件***的存盘方法、装置及分布式文件*** | |
CN108241557A (zh) | Hdfs中数据备份的方法 | |
CN114546340B (zh) | 用于对象存储的桶回收站实现方法、装置、设备及介质 | |
CN111158858B (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 |