CN111381769B - 一种分布式数据存储方法及系统 - Google Patents

一种分布式数据存储方法及系统 Download PDF

Info

Publication number
CN111381769B
CN111381769B CN201811640416.4A CN201811640416A CN111381769B CN 111381769 B CN111381769 B CN 111381769B CN 201811640416 A CN201811640416 A CN 201811640416A CN 111381769 B CN111381769 B CN 111381769B
Authority
CN
China
Prior art keywords
disk
data
blocks
block
disc
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
Application number
CN201811640416.4A
Other languages
English (en)
Other versions
CN111381769A (zh
Inventor
徐佳宏
李银
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Ipanel TV Inc
Original Assignee
Shenzhen Ipanel TV Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Ipanel TV Inc filed Critical Shenzhen Ipanel TV Inc
Priority to CN201811640416.4A priority Critical patent/CN111381769B/zh
Publication of CN111381769A publication Critical patent/CN111381769A/zh
Application granted granted Critical
Publication of CN111381769B publication Critical patent/CN111381769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Abstract

本申请提供了一种分布式数据存储方法及系统,应用于服务器集群,服务器集群中包括多个磁盘组,每个磁盘组中包括数据盘和编码盘,每个磁盘划分为多个大小相同的逻辑块,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块;依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中;当所有的数据盘逻辑块都写满或文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。实现了数据在多个服务器中的分布式存储,并降低了数据存储占用的空间。

Description

一种分布式数据存储方法及系统
技术领域
本发明涉及分布式存储技术领域,更具体的,涉及一种分布式数据存储方法及系统。
背景技术
文件系统为对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,文件系统负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
目前有两种主要的文件系统,备份制文件系统和编码制文件系统。其中,典型的备份制文件系统为HDFS(Hadoop Distributed File System,分布式文件系统),HDFS将用户写入的文件首先在服务器生成一个数据节点;这个数据节点存储文件的元数据;然后将这个数据节点的元数据复制几份(一般为3份)到其他数据节点中。保证文件不会单点失效。备份制一份数据需要占用3倍的存储空间。备份制文件系统存在文件存储空间较大,设备成本高的问题。
编码制文件系统为了降低硬件存储的成本,将原始数据存储成1份,再将原始数据编码成原始数据的1/2或者以下进行存储。编码制存储的数据若发生数据丢失,通过原始数据+编码数据即可将丢失的数据进行恢复。通过编码制存储空间的占有比例一般在150%或者以下。RAID卡可以实现编码制文件系统的功能,将文件进行编码存储在RAID卡所管理的磁盘阵列中。为了防止磁盘坏块或磁盘损坏,可以从其他磁盘进行数据恢复,但是RAID的编码制是在一个机器内部实现的,无法在多个机器不同磁盘之间实现编码制。
可见,以上的文件系统无法兼顾降低存储空间和跨机器数据存储。
发明内容
有鉴于此,本发明提供了一种分布式数据存储方法及系统,解决了备份制文件系统数据存储空间过大的问题,并解决了编码制文件系统无法实现跨机器数据存储的问题。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种分布式数据存储方法,应用于服务器集群,服务器集群中包括多个磁盘组,每个磁盘组中包括数据盘和编码盘,每个磁盘划分为多个大小相同的逻辑块,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,所述方法包括:
在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块;
依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中,所述目标文件为本次需要写入的文件;
当所有的数据盘逻辑块都写满或所述目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;
将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
可选的,所述依次将数据写入3个磁盘组块中的数据盘逻辑块中,包括:
对于每一个磁盘组块,当磁盘组块中的数据盘逻辑块中都未写过数据,则按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中;
当磁盘组块中的数据盘逻辑块写过数据,则从上次写数据的结尾位置开始,按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中。
可选的,所述方法还包括:
在所述目标文件的数据的写入过程中,在写入失败的数据盘逻辑块中添加失败标记,并在写入成功的数据盘逻辑块中添加成功标记;
根据每个磁盘组块中本次写文件涉及的数据盘逻辑块中成功标记和失败标记的数量,得到每个磁盘组块的健康度。
可选的,所述将编码数据写入其中一个磁盘组块的编码盘逻辑块中,包括:
将编码数据写入3个磁盘组块中健康度最高的磁盘组块的编码盘逻辑块中。
可选的,所述将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合,包括:
将未写入编码数据的2个磁盘组块放入待回归磁盘组块集合中,并在预设时间后将这两个磁盘组块放回空闲磁盘组块集合中。
可选的,当所述目标文件关闭时,在所述对数据盘逻辑块中存储的数据进行编码之前,所述方法还包括:
当检测到当前存在3个磁盘组块正在使用时,在磁盘组块中没有写入数据的数据盘逻辑块全部写入0。
可选的,所述方法还包括:
当用户启用文件追加方式打开所述目标文件时,获取所述目标文件对应的最后一个磁盘组块;
当所述目标文件对应的最后一个磁盘组块已经写满数据时,从空闲磁盘组块集合中随机选取3个磁盘组块,并将用户追加的文件数据写入选取的3个磁盘组块中;
当所述目标文件对应的最后一个磁盘组块没有写满数据时,从空闲磁盘组块集合中随机选取2个磁盘组块,将所述目标文件对应的最后一个磁盘组块中已写的数据复制到选取的2个磁盘组块中,并将用户追加的文件数据写入这3个磁盘组块中。
可选的,所述方法还包括:
当用户对目标文件进行修改时,从已用磁盘组块集合中获取待修改内容对应的磁盘组块;
从空闲磁盘组块集合中随机选取2个磁盘组块,并将待修改内容对应的磁盘组块中的数据盘逻辑块中的数据复制到这2个磁盘组块中的数据盘逻辑块中,得到3个待修改磁盘组块;
依次对3个待修改磁盘组块中的数据盘逻辑块中的数据进行修改;
当修改完成时,对待修改磁盘组块中的数据盘逻辑块中的数据进行编码,并将编码数据写入3个待修改磁盘组块中健康度最高的磁盘组块的编码盘中。
可选的,所述方法还包括:
在用户读取所述目标文件时,获取所述目标文件的位置信息;
根据所述目标文件的位置信息,获取所述目标文件对应的磁盘组块;
判断用户读取的文件是否处于编辑状态;
若处于编辑状态,在所述目标文件对应的3个逻辑组块中随机选取1个磁盘组块,并读取这个磁盘组块中的数据盘逻辑块中的数据;
若用户读取的文件已经编码,读取所述目标文件对应的磁盘组块中的数据盘逻辑块中的数据。
一种分布式数据存储系统,包括:
磁盘组块选取单元,用于在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块;
数据写入单元,用于依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中,所述目标文件为本次需要写入的文件;
数据编码单元,用于当所有的数据盘逻辑块都写满或所述目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;
磁盘状态更新单元,用于将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
可选的,所述数据写入单元,具体用于当磁盘组块中的数据盘逻辑块中都未写过数据,则按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中;当磁盘组块中的数据盘逻辑块写过数据,则从上次写数据的结尾位置开始,按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中。
可选的,所述系统还包括:
健康度确定单元,用于在所述目标文件的数据的写入过程中,在写入失败的数据盘逻辑块中添加失败标记,并在写入成功的数据盘逻辑块中添加成功标记;根据每个磁盘组块中本次写文件涉及的数据盘逻辑块中成功标记和失败标记的数量,得到每个磁盘组块的健康度。
可选的,所述数据编码单元,具体用于将编码数据写入3个磁盘组块中健康度最高的磁盘组块的编码盘逻辑块中。
可选的,所述磁盘状态更新单元,具体用于将未写入编码数据的2个磁盘组块放入待回归磁盘组块集合中,并在预设时间后将这两个磁盘组块放回空闲磁盘组块集合中。
可选的,所述数据编码单元,还用于当检测到当前存在3个磁盘组块正在使用时,在磁盘组块中没有写入数据的数据盘逻辑块全部写入0。
可选的,所述系统还包括:
追加存储单元,用于当用户启用文件追加方式打开所述目标文件时,获取所述目标文件对应的最后一个磁盘组块;当所述目标文件对应的最后一个磁盘组块已经写满数据时,从空闲磁盘组块集合中随机选取3个磁盘组块,并将用户追加的文件数据写入选取的3个磁盘组块中;当所述目标文件对应的最后一个磁盘组块没有写满数据时,从空闲磁盘组块集合中随机选取2个磁盘组块,将所述目标文件对应的最后一个磁盘组块中已写的数据复制到选取的2个磁盘组块中,并将用户追加的文件数据写入这3个磁盘组块中。
可选的,所述系统还包括:
数据修改单元,用于当用户对目标文件进行修改时,从已用磁盘组块集合中获取待修改内容对应的磁盘组块;从空闲磁盘组块集合中随机选取2个磁盘组块,并将待修改内容对应的磁盘组块中的数据盘逻辑块中的数据复制到这2个磁盘组块中的数据盘逻辑块中,得到3个待修改磁盘组块;依次对3个待修改磁盘组块中的数据盘逻辑块中的数据进行修改;当修改完成时,对待修改磁盘组块中的数据盘逻辑块中的数据进行编码,并将编码数据写入3个待修改磁盘组块中健康度最高的磁盘组块的编码盘中。
可选的,所述系统还包括:
数据读取单元,用于在用户读取所述目标文件时,获取所述目标文件的位置信息;根据所述目标文件的位置信息,获取所述目标文件对应的磁盘组块;判断用户读取的文件是否处于编辑状态;若处于编辑状态,在所述目标文件对应的3个逻辑组块中随机选取1个磁盘组块,并读取这个磁盘组块中的数据盘逻辑块中的数据;若用户读取的文件已经编码,读取所述目标文件对应的磁盘组块中的数据盘逻辑块中的数据。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种分布式数据存储方法及系统,应用于服务器集群,可以实现数据在多个服务器中进行存储,解决了编码服务器集群中包括磁盘组,每个磁盘组中包括数据盘和编码盘,每个磁盘划分为多个大小相同的逻辑块,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块,在3个磁盘组块的数据盘逻辑块中都写入目标文件的数据,保证了文件写入的安全性,当所有的数据盘逻辑块都写满或目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中,最终只将一个磁盘组块中的数据进行存储,数据存储占用的空间少。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种分布式数据存储方法的流程示意图;
图2为本发明实施例公开的一种文件追加写入的方法的流程示意图;
图3为本发明实施例公开的一种文件数据修改的方法的流程示意图;
图4为本发明实施例公开的一种文件数据读取的方法的流程示意图;
图5为本发明实施例公开的一种分布式数据存储系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例公开了一种分布式数据存储方法,应用于服务器集群,服务器集群中包括多个磁盘组,每个磁盘组中包括数据盘和编码盘,如8个数据盘和4个编码盘,其中,每台服务器包括多个磁盘,磁盘组中的所有磁盘不在同一台服务器上,即不同服务器上的磁盘组成一个磁盘组,避免单个服务器失效,如服务器网络断开、死机、硬件故障灯,出现磁盘组无法提供有效服务的问题。磁盘组中的每个磁盘划分为多个大小相同的逻辑块,逻辑块的大小根据系统需要预先进行设定,如1M,2M,4M等。每个逻辑块都有一个唯一的逻辑块号,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,由于磁盘组中包括多个数据盘和多个编码盘,因此,磁盘组块中相应的包括多个数据盘逻辑块和编码盘逻辑块。请参阅图1,该分布式数据存储方法具体包括以下步骤:
S101:在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块;
需要说明的是,在系统中包括:空闲磁盘组块集合、待回归磁盘组块集合和已用磁盘组块集合。其中,空闲磁盘组块集合包括所有没有使用的磁盘组块;待回归磁盘组块集合包括当前临时使用后的磁盘组块的集合,需要等待一段时间后再将其存放到空闲磁盘组块集合中;已用磁盘组块集合包括所有已经存储有文件数据的磁盘组块。
在用户需要写入文件时,若当前已经申请了3个磁盘组块,则直接执行S102,若当前未申请了3个磁盘组块,则从空闲磁盘组块集合中随机选取3个磁盘组块,再执行S102。
S102:依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中,所述目标文件为本次需要写入的文件;
此处采用备份制文件存储机制,将目标文件的数据依次写入3个磁盘组块中的数据盘逻辑块中,3个数据盘逻辑块中写入的数据是一致的,保证了文件写入的安全性,避免出现单点失效的问题。
具体的,在依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中的过程中,对于每一个磁盘组块,当磁盘组块中的数据盘逻辑块中都未写过数据,则按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中;当磁盘组块中的数据盘逻辑块写过数据,则从上次写数据的结尾位置开始,按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中。
例如,磁盘组块中数据盘逻辑块的编号顺序为0~7,则在写数据的时候,当磁盘组块中的数据盘逻辑块中都未写过数据时,先写第0个数据盘逻辑块,然后再写第1个数据盘逻辑块,最后写第7个数据盘逻辑块;当磁盘组块中的数据盘逻辑块写过数据,上次写数据的结尾位置为第3个数据盘逻辑块,则本次写数据时从第4个数据盘开始写数据,再写第5个数据盘逻辑块,最后写第7个数据盘逻辑块。
S103:当所有的数据盘逻辑块都写满或所述目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;
具体的,将编码数据写入其中一个磁盘组块的编码盘逻辑块中,并不需要在3个磁盘组块中全部写入编码数据,即,最终采用编码制文件存储机制只将一个磁盘组块中的编码数据进行存储,数据存储占用的空间少。
其中,可以在3个磁盘组块中随机选取一个磁盘组块作为最终写入编码数据的磁盘组块,为了从3个磁盘组块中选取一个最优的磁盘组块作为最终写入编码数据的磁盘组块,本实施例引入健康度,对磁盘组块进行评价。
具体的,在所述目标文件的数据的写入过程中,在写入失败的数据盘逻辑块中添加失败标记,如0,并在写入成功的数据盘逻辑块中添加成功标记,如1,则写入数据完成后,每个磁盘组块可以得到一组标记,若某个磁盘组块中8个数据盘逻辑块都写入成功,则该磁盘组块的标记为11111111,若某个磁盘组块中编号为2的数据盘逻辑块写入失败,其他数据盘逻辑块均写入成功,则该磁盘组块的标记为11011111。在此基础上,根据每个磁盘组块中本次写文件涉及的数据盘逻辑块中成功标记和失败标记的数量,得到每个磁盘组块的健康度,如将磁盘组块中成功标记的数量作为磁盘组块的健康度,则上述磁盘组块中8个数据盘逻辑块都写入成功时,该磁盘组块的健康度为8,上述磁盘组块中编号为2的数据盘逻辑块写入失败,其他数据盘逻辑块均写入成功时,该磁盘组块的健康度为7。
进而,可以将编码数据写入3个磁盘组块中健康度最高的磁盘组块的编码盘逻辑块中。
还需要说明的是,当3个磁盘组块中的8个数据盘逻辑块没有写满时,向用户反馈该状态,当3个磁盘组块中的8个数据盘逻辑块都写满活文件关闭时,对数据盘逻辑块中存储的数据进行编码。
S104:将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
具体的,将已写入编码数据的磁盘组块放入已用磁盘组块集合,将未写入编码数据的2个磁盘组块放入待回归磁盘组块集合中,并在预设时间后将这两个磁盘组块放回空闲磁盘组块集合中,在下次写数据时可以以覆盖的形式在这两个磁盘组块中再次写入数据。
本实施例公开的一种分布式数据存储方法,应用于服务器集群,可以实现数据在多个服务器中进行存储,解决了编码服务器集群中包括磁盘组,每个磁盘组中包括数据盘和编码盘,每个磁盘划分为多个大小相同的逻辑块,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块,在3个磁盘组块的数据盘逻辑块中都写入目标文件的数据,保证了文件写入的安全性,当所有的数据盘逻辑块都写满或目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中,最终只将一个磁盘组块中的数据进行存储,数据存储占用的空间少。
在用户写文件的过程中,可能会关闭文件,此时,用户调用关闭接口,检测当前是否存在3个磁盘组块正在使用,若当前磁盘组块正在使用,将组块的后面没有被写数据的数据块全部设置为0,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
在实际应用中,还会存在文件追加的情况,用户启动文件追加的方式打开文件,继续写入数据,请参阅图2,本实施例公开了一种文件追加写入的方法,具体包括以下步骤:
S201:当用户启用文件追加方式打开所述目标文件时,获取所述目标文件对应的最后一个磁盘组块;
S202:当所述目标文件对应的最后一个磁盘组块已经写满数据时,从空闲磁盘组块集合中随机选取3个磁盘组块,并将用户追加的文件数据写入选取的3个磁盘组块中;
S203:当所述目标文件对应的最后一个磁盘组块没有写满数据时,从空闲磁盘组块集合中随机选取2个磁盘组块,将所述目标文件对应的最后一个磁盘组块中已写的数据复制到选取的2个磁盘组块中,并将用户追加的文件数据写入这3个磁盘组块中。
其中,将用户追加的文件数据写入3个磁盘组块的方式与上述实施例中写文件的方式相同,即依次将追加的文件的数据写入3个磁盘组块中的数据盘逻辑块中,当所有的数据盘逻辑块都写满或所述目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中,将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
为了进一步对上述文件追加写入的方法进行详细介绍,下面引入一个具体示例。
示例1(文件追加写入)
1)用户模块启用文件追加方式打开文件,调用到数据处理模块。
2)数据处理模块从索引模块中获取该文件的最后一个磁盘组块。若该磁盘组块已经写满了数据,那么从索引模块中获取3个新的磁盘组块,供文件追加写入。若该磁盘组块在上次关闭的时候只写了一部分数据,索引模块将这个已经写了一部分的磁盘组块返回给数据处理模块,同时在空闲磁盘组块集合中随机选取两个磁盘组块,放入到已经使用的磁盘组块集合中,同时返回给数据处理模块。
3)数据处理模块得到了一个已经写了部分数据的磁盘组块,两个空白的磁盘组块。
数据处理模块将写了一部分数据的组块中的所有数据读取出来,写入到两个空白磁盘组块的对应的磁盘块中。编码部分不用读取,修改数据后,编码数据属于无效数据,不能再进行编码。
4)按照前面所述写入用户追加文件的数据;若用户数据写入后,将这个磁盘组块写完后,这3个组块选择一个健康度最好的磁盘组块;
5)对数据盘逻辑块中的数据进行编码,写入到健康度最好的磁盘组块对应的编码盘逻辑块中;
6)汇报给索引模块。索引模块保留已经写入编码数据的磁盘组块,将剩下的两个磁盘组块放入到待回归磁盘组块集合中,设定一个预设时间,当预设时间之后,将这两个磁盘组块回收到空闲磁盘组块集合中。
在实际应用中,还会存在对已编码的数据进行修改的情况,请参阅图3,本实施例公开了一种文件数据修改的方法,具体包括以下步骤:
S301:当用户对目标文件进行修改时,从已用磁盘组块集合中获取待修改内容对应的磁盘组块;
S302:从空闲磁盘组块集合中随机选取2个磁盘组块,并将待修改内容对应的磁盘组块中的数据盘逻辑块中的数据复制到这2个磁盘组块中的数据盘逻辑块中,得到3个待修改磁盘组块;
S303:依次对3个待修改磁盘组块中的数据盘逻辑块中的数据进行修改;
S304:当修改完成时,对待修改磁盘组块中的数据盘逻辑块中的数据进行编码,并将编码数据写入3个待修改磁盘组块中健康度最高的磁盘组块的编码盘中。
为了进一步对上述文件数据修改的方法进行详细介绍,下面引入一个具体示例。
示例2(修改已经编码的数据)
这里说的修改已经编码数据的流程,是指出了像上面文件追加写数据的流程外,还有另外一种特殊的情况。
文件打开的时候从前面或中间的某一个位置开始修改文件内容;修改内容可能在一个磁盘组块的内部完成,可能需要修改好几个磁盘组块。
1)确定需要修改文件属于哪个磁盘组块的数据。磁盘管理模块请求索引模块修改对应的磁盘组块;
2)索引模块首先从已用磁盘组块集合中得到这个磁盘组块;再从空闲磁盘组块集合中获取两个空的磁盘组块,并将这两个空闲的磁盘组块放入到已用磁盘组块集合中,然后一起返回给数据管理模块。
3)数据管理模块首先连接这3个磁盘组块的数据块对应的磁盘。
4)数据管理模块将已经编码存储的磁盘组块中的数据块中的数据全部读取出来,存放到另外两个空白的磁盘组块中;
5)修改这个组块中的数据,写入方法参见前面描述,首先修改第一个磁盘组块的数据;然后修改第二个磁盘组块中的数据;再然后修改第三个磁盘组块中的数据。
6)若这个组块的数据修改完毕,选择这3个磁盘组块中其中一个健康度最好的磁盘作为最后的编码磁盘组块。
7)连接这个被选择的磁盘组块对应的编码盘逻辑块对应的磁盘。
8)对数据进行编码,存储到该磁盘组块中的编码盘逻辑块;
9)保存该磁盘组块,并汇报给索引模块;
9)索引模块将没有保存编码的磁盘组块从已用磁盘组块集合中移除,存储到待回顾磁盘组块集合中,并设定超时时间进行回收,回收到空闲磁盘组块集合中。
10)若用户还需要修改该文件的后续磁盘组块;继续改流程中的1)。直到文件关闭。
11)若修改文件的最后一个块。按照追加方式的流程处理,但是数据的处理是需要对现有数据进行覆盖写的。
13)若文件已经超过了现在的文件大小范围,则按照新建文件并写入文件的流程处理。
在实际应用中,还会存在对已存储的文件数据进行读取的情况,请参阅图4,本实施例公开了一种文件数据读取的方法,具体包括以下步骤:
S401:在用户读取所述目标文件时,获取所述目标文件的位置信息;
S402:根据所述目标文件的位置信息,获取所述目标文件对应的磁盘组块;
S403:判断用户读取的文件是否处于编辑状态;
若处于编辑状态,S404:在所述目标文件对应的3个逻辑组块中随机选取1个磁盘组块,并读取这个磁盘组块中的数据盘逻辑块中的数据;
若用户读取的文件已经编码,S405:读取所述目标文件对应的磁盘组块中的数据盘逻辑块中的数据。
为了进一步对上述文件数据读取的方法进行详细介绍,下面引入一个具体示例。
示例3(文件数据读取)
在文件写的任何时候,文件都可以从磁盘读取文件的内容。
1)打开文件读取文件开始;
2)数据处理模块将该文件位置进行处理,从索引模块中获取该文件对应位置的磁盘组块。
3)索引模块检查已用磁盘模块集合中这个模块是否处于编辑状态;若处于编辑状态,索引模块把3个磁盘组块一起返回给数据处理模块。数据处理模块可以随机选择一个可以正常读取数据的磁盘,并读取数据,返回给用户模块;
若这个磁盘组块已经编码;只需要将这个磁盘组块返回给数据处理模块;数据处理模块连接磁盘组块,并读取这个磁盘组块中的数据返回给用户模块。
其中,若索引模块在已用磁盘组块集合中找到3个备份的磁盘组块。说明这个文件对应的这个磁盘组正在修改。返回3个备份磁盘组块,表示这3个磁盘组块的数据是一致的,可以从任何一个磁盘组块读取内容。若任意一个磁盘块读取失败,可以从另外一个磁盘组块中读取,不会影响业务。
当一个磁盘组块的编码数据已经存储后,另外两个磁盘组块会被回收,为了防止用户读取磁盘组块的时候立即被回收导致的读取失败问题,先将这两个磁盘放到待回收磁盘组块集合中。用户读取数据的时候,会先查询到3个磁盘组块;当读取完毕后,3个磁盘组块会立即丢弃,下次需要读取另外的数据,会重新获取磁盘组块并读取数据。
其中,若索引模块在已用磁盘组块集合中找到一个磁盘组块,说明这个是编码后的磁盘组块,用户写入的数据已经完成。数据处理模块直接从这个磁盘组块中读取数据;若这个磁盘组块中的数据读取失败,则启用解码方法将数据进行恢复,将恢复后的数据返回给用户模块。用户读取数据后可能会修改磁盘组块中的内容,所以在读取磁盘组块的时候首先确认该磁盘没有被写,然后读取这个块的内容;若读取磁盘的时候发现已经被写,需要重新向索引模块获取这个磁盘组块。
这里的编码和解码,编码会将文件内容进行得到编码数据;解码是将编码数据解码进行还原。
这里磁盘组块是否被写,是当只获取到了一个组块的情况下,读和写必须是互斥的。当存在用户写的时候,读取这个磁盘组块会失效;其原因在于这个组块中的数据已经被修改了。对应的编码盘逻辑块中的数据就失效。否则编码盘逻辑块的数据是有效的,就算一个磁盘组块读取不出来,编码盘逻辑块中的数据也可以正常恢复对应的磁盘数据。
基于上述实施例公开的分布式数据存储方法,本实施例对应公开了一种分布式数据存储系统,应用于服务器集群,服务器集群中包括多个磁盘组,每个磁盘组中包括数据盘和编码盘,其中,每台服务器包括多个磁盘,磁盘组中的所有磁盘不在同一台服务器上,即不同服务器上的磁盘组成一个磁盘组。磁盘组中的每个磁盘划分为多个大小相同的逻辑块。每个逻辑块都有一个唯一的逻辑块号,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,由于磁盘组中包括多个数据盘和多个编码盘,因此,磁盘组块中相应的包括多个数据盘逻辑块和编码盘逻辑块。请参阅图5,该分布式数据存储系统包括:
磁盘组块选取单元501,用于在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块;
数据写入单元502,用于依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中,所述目标文件为本次需要写入的文件;
数据编码单元503,用于当所有的数据盘逻辑块都写满或所述目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;
磁盘状态更新单元504,用于将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
可选的,所述数据写入单元,具体用于当磁盘组块中的数据盘逻辑块中都未写过数据,则按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中;当磁盘组块中的数据盘逻辑块写过数据,则从上次写数据的结尾位置开始,按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中。
可选的,所述系统还包括:
健康度确定单元,用于在所述目标文件的数据的写入过程中,在写入失败的数据盘逻辑块中添加失败标记,并在写入成功的数据盘逻辑块中添加成功标记;根据每个磁盘组块中本次写文件涉及的数据盘逻辑块中成功标记和失败标记的数量,得到每个磁盘组块的健康度。
可选的,所述数据编码单元,具体用于将编码数据写入3个磁盘组块中健康度最高的磁盘组块的编码盘逻辑块中。
可选的,所述磁盘状态更新单元,具体用于将未写入编码数据的2个磁盘组块放入待回归磁盘组块集合中,并在预设时间后将这两个磁盘组块放回空闲磁盘组块集合中。
可选的,所述数据编码单元,还用于当检测到当前存在3个磁盘组块正在使用时,在磁盘组块中没有写入数据的数据盘逻辑块全部写入0。
可选的,所述系统还包括:
追加存储单元,用于当用户启用文件追加方式打开所述目标文件时,获取所述目标文件对应的最后一个磁盘组块;当所述目标文件对应的最后一个磁盘组块已经写满数据时,从空闲磁盘组块集合中随机选取3个磁盘组块,并将用户追加的文件数据写入选取的3个磁盘组块中;当所述目标文件对应的最后一个磁盘组块没有写满数据时,从空闲磁盘组块集合中随机选取2个磁盘组块,将所述目标文件对应的最后一个磁盘组块中已写的数据复制到选取的2个磁盘组块中,并将用户追加的文件数据写入这3个磁盘组块中。
可选的,所述系统还包括:
数据修改单元,用于当用户对目标文件进行修改时,从已用磁盘组块集合中获取待修改内容对应的磁盘组块;从空闲磁盘组块集合中随机选取2个磁盘组块,并将待修改内容对应的磁盘组块中的数据盘逻辑块中的数据复制到这2个磁盘组块中的数据盘逻辑块中,得到3个待修改磁盘组块;依次对3个待修改磁盘组块中的数据盘逻辑块中的数据进行修改;当修改完成时,对待修改磁盘组块中的数据盘逻辑块中的数据进行编码,并将编码数据写入3个待修改磁盘组块中健康度最高的磁盘组块的编码盘中。
可选的,所述系统还包括:
数据读取单元,用于在用户读取所述目标文件时,获取所述目标文件的位置信息;根据所述目标文件的位置信息,获取所述目标文件对应的磁盘组块;判断用户读取的文件是否处于编辑状态;若处于编辑状态,在所述目标文件对应的3个逻辑组块中随机选取1个磁盘组块,并读取这个磁盘组块中的数据盘逻辑块中的数据;若用户读取的文件已经编码,读取所述目标文件对应的磁盘组块中的数据盘逻辑块中的数据。
本实施例公开的一种分布式数据存储系统,应用于服务器集群,可以实现数据在多个服务器中进行存储,解决了编码服务器集群中包括磁盘组,每个磁盘组中包括数据盘和编码盘,每个磁盘划分为多个大小相同的逻辑块,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块,在3个磁盘组块的数据盘逻辑块中都写入目标文件的数据,保证了文件写入的安全性,当所有的数据盘逻辑块都写满或目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中,最终只将这个磁盘中的数据进行存储,数据存储占用的空间少。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种分布式数据存储方法,其特征在于,应用于服务器集群,服务器集群中包括多个磁盘组,每个磁盘组由所述服务器集群中不同服务器的磁盘组成,每个磁盘组中包括数据盘和编码盘,每个磁盘划分为多个大小相同的逻辑块,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,所述方法包括:
在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块,所述空闲磁盘组块集合包括未使用的磁盘组块;
依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中,所述目标文件为本次需要写入的文件;
当所有的数据盘逻辑块都写满或所述目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;
将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
2.根据权利要求1所述的方法,其特征在于,所述依次将数据写入3个磁盘组块中的数据盘逻辑块中,包括:
对于每一个磁盘组块,当磁盘组块中的数据盘逻辑块中都未写过数据,则按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中;
当磁盘组块中的数据盘逻辑块写过数据,则从上次写数据的结尾位置开始,按数据盘逻辑块的编号的顺序将所述目标文件的数据写入数据盘逻辑块中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标文件的数据的写入过程中,在写入失败的数据盘逻辑块中添加失败标记,并在写入成功的数据盘逻辑块中添加成功标记;
根据每个磁盘组块中本次写文件涉及的数据盘逻辑块中成功标记和失败标记的数量,得到每个磁盘组块的健康度。
4.根据权利要求3所述的方法,其特征在于,所述将编码数据写入其中一个磁盘组块的编码盘逻辑块中,包括:
将编码数据写入3个磁盘组块中健康度最高的磁盘组块的编码盘逻辑块中。
5.根据权利要求1所述的方法,其特征在于,所述将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合,包括:
将未写入编码数据的2个磁盘组块放入待回归磁盘组块集合中,并在预设时间后将这两个磁盘组块放回空闲磁盘组块集合中。
6.根据权利要求1所述的方法,其特征在于,当所述目标文件关闭时,在所述对数据盘逻辑块中存储的数据进行编码之前,所述方法还包括:
当检测到当前存在3个磁盘组块正在使用时,在磁盘组块中没有写入数据的数据盘逻辑块全部写入0。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当用户启用文件追加方式打开所述目标文件时,获取所述目标文件对应的最后一个磁盘组块;
当所述目标文件对应的最后一个磁盘组块已经写满数据时,从空闲磁盘组块集合中随机选取3个磁盘组块,并将用户追加的文件数据写入选取的3个磁盘组块中;
当所述目标文件对应的最后一个磁盘组块没有写满数据时,从空闲磁盘组块集合中随机选取2个磁盘组块,将所述目标文件对应的最后一个磁盘组块中已写的数据复制到选取的2个磁盘组块中,并将用户追加的文件数据写入这3个磁盘组块中。
8.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当用户对目标文件进行修改时,从已用磁盘组块集合中获取待修改内容对应的磁盘组块;
从空闲磁盘组块集合中随机选取2个磁盘组块,并将待修改内容对应的磁盘组块中的数据盘逻辑块中的数据复制到这2个磁盘组块中的数据盘逻辑块中,得到3个待修改磁盘组块;
依次对3个待修改磁盘组块中的数据盘逻辑块中的数据进行修改;
当修改完成时,对待修改磁盘组块中的数据盘逻辑块中的数据进行编码,并将编码数据写入3个待修改磁盘组块中健康度最高的磁盘组块的编码盘中。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在用户读取所述目标文件时,获取所述目标文件的位置信息;
根据所述目标文件的位置信息,获取所述目标文件对应的磁盘组块;
判断用户读取的文件是否处于编辑状态;
若处于编辑状态,在所述目标文件对应的3个逻辑组块中随机选取1个磁盘组块,并读取这个磁盘组块中的数据盘逻辑块中的数据;
若用户读取的文件已经编码,读取所述目标文件对应的磁盘组块中的数据盘逻辑块中的数据。
10.一种分布式数据存储系统,其特征在于,应用于服务器集群,服务器集群中包括多个磁盘组,每个磁盘组由所述服务器集群中不同服务器的磁盘组成,每个磁盘组中包括数据盘和编码盘,每个磁盘划分为多个大小相同的逻辑块,磁盘组中所有磁盘中具有相同逻辑块号的逻辑块组成磁盘组块,包括:
磁盘组块选取单元,用于在写文件时,从空闲磁盘组块集合中随机选取3个磁盘组块,所述空闲磁盘组块集合包括未使用的磁盘组块;
数据写入单元,用于依次将目标文件的数据写入3个磁盘组块中的数据盘逻辑块中,所述目标文件为本次需要写入的文件;
数据编码单元,用于当所有的数据盘逻辑块都写满或所述目标文件关闭时,对数据盘逻辑块中存储的数据进行编码,并将编码数据写入其中一个磁盘组块的编码盘逻辑块中;
磁盘状态更新单元,用于将未写入编码数据的2个磁盘组块放回空闲磁盘组块集合。
CN201811640416.4A 2018-12-29 2018-12-29 一种分布式数据存储方法及系统 Active CN111381769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811640416.4A CN111381769B (zh) 2018-12-29 2018-12-29 一种分布式数据存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811640416.4A CN111381769B (zh) 2018-12-29 2018-12-29 一种分布式数据存储方法及系统

Publications (2)

Publication Number Publication Date
CN111381769A CN111381769A (zh) 2020-07-07
CN111381769B true CN111381769B (zh) 2023-11-14

Family

ID=71215975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811640416.4A Active CN111381769B (zh) 2018-12-29 2018-12-29 一种分布式数据存储方法及系统

Country Status (1)

Country Link
CN (1) CN111381769B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339330A (zh) * 2021-11-25 2022-04-12 浙江大华技术股份有限公司 网络硬盘录像写入方法、装置、电子装置和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06230902A (ja) * 1993-02-05 1994-08-19 Hitachi Ltd サーバシステム
CN102024016A (zh) * 2010-11-04 2011-04-20 天津曙光计算机产业有限公司 一种分布式文件系统快速数据恢复的方法
CN102609365A (zh) * 2012-02-15 2012-07-25 合一网络技术(北京)有限公司 一种虚拟磁盘系统和基于虚拟磁盘系统的文件存储方法
CN102737130A (zh) * 2012-06-21 2012-10-17 广州从兴电子开发有限公司 处理hdfs元数据的方法及系统
CN103092765A (zh) * 2012-12-31 2013-05-08 记忆科技(深圳)有限公司 固态存储系统、装置及数据写入方法
CN104615380A (zh) * 2015-01-13 2015-05-13 浪潮电子信息产业股份有限公司 一种基于分组编码的磁盘阵列构建方法
CN106462545A (zh) * 2014-03-31 2017-02-22 亚马逊科技公司 可缩放文件存储服务

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473707B2 (en) * 2008-03-27 2013-06-25 Open Invention Network, Llc Method for achieving sequential I/O performance from a random workload
US8984241B2 (en) * 2010-07-07 2015-03-17 Nexenta Systems, Inc. Heterogeneous redundant storage array
US8631272B2 (en) * 2011-03-04 2014-01-14 Microsoft Corporation Duplicate-aware disk arrays

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06230902A (ja) * 1993-02-05 1994-08-19 Hitachi Ltd サーバシステム
CN102024016A (zh) * 2010-11-04 2011-04-20 天津曙光计算机产业有限公司 一种分布式文件系统快速数据恢复的方法
CN102609365A (zh) * 2012-02-15 2012-07-25 合一网络技术(北京)有限公司 一种虚拟磁盘系统和基于虚拟磁盘系统的文件存储方法
CN102737130A (zh) * 2012-06-21 2012-10-17 广州从兴电子开发有限公司 处理hdfs元数据的方法及系统
CN103092765A (zh) * 2012-12-31 2013-05-08 记忆科技(深圳)有限公司 固态存储系统、装置及数据写入方法
CN106462545A (zh) * 2014-03-31 2017-02-22 亚马逊科技公司 可缩放文件存储服务
CN104615380A (zh) * 2015-01-13 2015-05-13 浪潮电子信息产业股份有限公司 一种基于分组编码的磁盘阵列构建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种高性能高可靠的混合客户端缓存系统;李楚;冯丹;王芳;;计算机研究与发展(11);82-92 *

Also Published As

Publication number Publication date
CN111381769A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN106407040B (zh) 一种远程数据复制方法及系统
US20160006461A1 (en) Method and device for implementation data redundancy
AU2013274626A1 (en) Erasure coding and replication in storage clusters
CN103780638A (zh) 数据同步方法及系统
US7975171B2 (en) Automated file recovery based on subsystem error detection results
CN110389858B (zh) 存储设备的故障恢复方法和设备
CN106708653B (zh) 一种基于纠删码与多副本的混合税务大数据安全保护方法
CN103577121A (zh) 一种基于nand flash的高可靠线性文件存取方法
CN102929750A (zh) 非易失性介质肮脏区段跟踪
CN102955720A (zh) 一种提高ext文件系统稳定性的方法
CN105302665B (zh) 一种改进的写时拷贝快照方法及系统
US10467074B2 (en) Conditional journal for storage class memory devices
CN107133132B (zh) 数据发送方法、数据接收方法和存储设备
CN102385537B (zh) 一种多副本存储系统的磁盘故障处理方法
CN101815983A (zh) 用于防止硬盘驱动文件系统的损坏的方法和系统
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
CN110597779A (zh) 一种分布式文件系统中的数据读写方法及相关装置
CN110941514A (zh) 一种数据备份方法、恢复方法、计算机设备和存储介质
TWI737189B (zh) 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置
CN111381769B (zh) 一种分布式数据存储方法及系统
CN111435286B (zh) 一种数据存储方法、装置和系统
CN106933707B (zh) 基于raid技术的数据存储设备数据恢复方法及系统
WO2019037587A1 (zh) 一种数据恢复方法及装置
CN111459399A (zh) 一种数据写入方法、数据读取方法及装置
EP3244316B1 (en) Method and apparatus for performing data recovery in redundant storage system

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