[go: up one dir, main page]

CN102801784A - 一种分布式数据存储方法及设备 - Google Patents

一种分布式数据存储方法及设备 Download PDF

Info

Publication number
CN102801784A
CN102801784A CN2012102274257A CN201210227425A CN102801784A CN 102801784 A CN102801784 A CN 102801784A CN 2012102274257 A CN2012102274257 A CN 2012102274257A CN 201210227425 A CN201210227425 A CN 201210227425A CN 102801784 A CN102801784 A CN 102801784A
Authority
CN
China
Prior art keywords
data
information
stored
fragment
fragmentation
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
Application number
CN2012102274257A
Other languages
English (en)
Other versions
CN102801784B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210227425.7A priority Critical patent/CN102801784B/zh
Publication of CN102801784A publication Critical patent/CN102801784A/zh
Application granted granted Critical
Publication of CN102801784B publication Critical patent/CN102801784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种分布式数据存储方法及设备。所述方法包括:调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;获取需要存储的数据的大小信息;获取已存储的数据的大小信息;根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息;根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据存储。采用本发明的方法或设备,能够提高分布式数据的存储和读取效率,并且可以不需要保存分片信息,减少服务器的负担,降低硬件成本。

Description

一种分布式数据存储方法及设备
技术领域
本发明涉及数据存储领域,特别是涉及一种分布式数据存储方法及设备。
背景技术
传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,不能满足大规模存储应用的需要。因此,现有技术中采用分布式数据存储方法存储数据。
分布式数据存储,就是将数据分散存储在多台独立的设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息。它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
现有技术中的分布式数据存储方法,其原理主要是:对于某一个文件,将该文件划分为多个分片,将该文件的分片信息以元数据的形式存储在服务器中。分片信息可以包括分片的个数,名称,存储位置等。在读取数据时,客户端需要向存储元数据的服务器发送获取分片信息的请求,根据存储元数据的服务器返回的响应,再确定需要读取的分片。最后根据分片的位置信息,向各分片所在的实际存储节点读取实际的文件数据。
由于一个文件通常被划分为很多个分片,因此,采用现有技术中的分布式数据存储方法,在读取数据时,需要多次发送获取分片信息的请求,在存储数据时,也需要在元数据服务器重复分片信息的保存过程。由于网络具有时延,并且服务器响应也需要耗费一定的时间,所以多次获取分片信息的过程导致现有技术中的分布式数据存储方法在读取数据时,效率低下。此外,由于需要保存分片信息,所以也增加了服务器的负担,硬件成本较高。
发明内容
本发明实施例提供一种分布式数据存储方法及设备,能够提高分布式数据的存储和读取效率,并且可以不需要保存分片信息,减少服务器的负担,降低硬件成本。
为实现上述目的,本发明实施例提供了如下方案:
一方面,本发明实施例提供一种分布式数据存储方法,包括:调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;通过所述数据访问句柄,获取需要存储的数据的大小信息;获取已存储的数据的大小信息,所述已存储的数据的大小信息表示所述需要存储的数据所归属的文件中已经存储的数据占用的存储空间大小;根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据存储。
另一方面,本发明实施例提供另一种分布式数据读取方法,包括:调用客户端提供的读数据接口,通过所述读数据接口获取数据访问句柄;通过所述数据访问句柄,获取需要读取的数据的大小信息;获取已读取的数据的大小信息,所述已读取的数据的大小信息表示所述需要读取的数据所归属的文件中已经读取的数据占用的存储空间大小;根据所述需要读取的数据的大小信息和所述已读取的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要读取的数据占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据读取。
另一方面,本发明实施例提供一种分布式数据存储设备,包括:
写数据接口调用模块,用于调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;数据的大小信息获取模块,用于通过所述数据访问句柄,获取需要存储的数据的大小信息;将所述数据的大小信息发送至分片信息生成模块;存储空间信息获取模块,用于获取已存储的数据的大小信息,将所述已存储的数据的大小信息发送至分片信息生成模块;所述已存储的数据的大小信息表示所述需要存储的数据所归属的文件中已经存储的数据占用的存储空间大小;分片信息生成模块,用于接收所述数据的大小信息获取模块发送的需要存储的数据的大小信息和所述存储空间信息获取模块发送的已存储的数据的大小信息,根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,将所述分片信息发送至分片标识生成模块,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;分片标识生成模块,用于接收所述分片信息生成模块发送的所述分片信息,根据所述分片信息,为每个分片生成唯一的分片标识,将所述分片标识发送至数据存储模块;数据存储模块,用于接收所述分片标识生成模块发送的分片标识,根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据存储。
另一方面,本发明实施例提供另一种分布式数据读取设备,包括:
读数据接口调用模块,用于调用客户端提供的读数据接口,通过所述读数据接口获取数据访问句柄;数据的大小信息获取模块,用于通过所述数据访问句柄,获取需要读取的数据的大小信息;将所述数据的大小信息发送至分片信息生成模块;存储空间信息获取模块,用于获取已读取的数据的大小信息,将所述已读取的数据的大小信息发送至分片信息生成模块;所述已读取的数据的大小信息表示所述需要读取的数据所归属的文件中已经读取的数据占用的存储空间大小;分片信息生成模块,用于接收所述数据的大小信息获取模块发送的需要读取的数据的大小信息和所述存储空间信息获取模块发送的已读取的数据的大小信息,根据所述需要读取的数据的大小信息和所述已读取的数据的大小信息,按照第一预设算法生成分片信息,将所述分片信息发送至分片标识生成模块,所述分片信息至少包括所述需要读取的数据占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;分片标识生成模块,用于接收所述分片信息生成模块发送的所述分片信息,根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识,将所述分片标识发送至数据存储模块;数据读取模块,用于接收所述分片标识生成模块发送的分片标识,根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据读取。
本发明实施例的分布式数据存储方法及设备,通过采用第一预设算法,对存储的数据的分片信息进行计算,但并不对分片信息进行保存,而是直接根据计算出的分片信息将需要存储的数据按照第二预设算法存储至对应的数据存储节点,由于不需要保存分片信息,所以可以减少服务器的负担,降低硬件成本,并且,在进行数据读取时,可以采用相同的算法计算得到分片信息,而不需要多次向元数据服务器发送获取分片信息的请求,可以大大提高分布式系统的存储和读取效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的分布式数据存储方法实施例一的流程图;
图2为本发明中按照第一预设算法生成分片信息的流程图;
图3为本发明的分布式数据存储方法实施例二的流程图;
图4为本发明的分布式数据存储方法实施例三的流程图;
图5为本发明的分布式数据读取方法流程图;
图6为本发明的分布式数据存储设备实施例一的结构图;
图7为本发明的分片信息生成模块的结构图;
图8为本发明的分布式数据存储设备实施例二的结构图;
图9为本发明的分布式数据读取设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明的分布式数据存储方法实施例一的流程图。如图1所示,该方法可以包括:
步骤S101:调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;
一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。
步骤S102:通过所述数据访问句柄,获取需要存储的数据的大小信息;需要存储的数据属于需要存储的文件的全部数据的一部分;
对于一个完整的文件,其自身的数据量通常较大,需要将该文件划分成多个较小的数据块进行存储。例如,对于一个大小为100M的文件,可以从逻辑上划为两个50M的数据块,分两次进行存储。上例中,每次需要存储的数据大小就是50M,需要存储的文件的全部数据就是100M。50M的数据块属于100M的文件的一部分。
步骤S103:获取已写入的数据的大小信息,所述已存储的数据的大小信息表示所述需要存储的数据所归属的文件中已经存储的数据占用的存储空间大小;
由于对某一个文件的存储过程可能划分为对多个数据块的存储过程,所以,在对某一个数据块进行存储之前,需要获取之前已经写入的数据块占用的存储空间信息。从逻辑上,当前需要存储的数据块的逻辑存储位置需要与上一个已经存储的数据块的逻辑存储位置相关联,较为常用的方法是使两者的逻辑存储位置是连续的。
步骤S104:根据所述需要存储的数据的大小信息和所述已存储的数据占用的存储空间信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
分片是对于数据块来说的存储单位。对于一个数据块,可以划分为多个分片进行存储。所以,在对一个数据块进行实际存储时,需要知道该数据块需要划分为几个分片进行存储。并且,需要知道各个分片的存储位置(即每个分片存储的数据在分片中占用的存储空间信息)。例如,一个分片具有的存储空间为5000字节,当前的数据块并不是第一个数据块,之前的数据块已经占用了该分片的前1000字节,那么,当前的数据块就可以占用该分片的后4000字节。
步骤S105:根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;
分片标识生成规则可以有多种。例如,可以用当前正在存储的文件的文件名加后缀的方式生成分片标识。比如当前文件名为A,则可以将该文件的第一个分片命名为A-1,将该文件的第二个分片命名为A-2,依此类推。只要保证每个分片的标识具有唯一性即可。
步骤S106:根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点,进行数据存储。
本步骤中,可以采用现有技术中的方法,根据分片标识为每个分片选择对应的数据存储节点。所述数据存储节点即为实际存储数据的服务器。所述第二预设算法可以是分布式哈希算法。
综上所述,本实施例的分布式数据存储方法,通过采用第一预设算法,对存储的数据的分片信息进行计算,但并不对分片信息进行保存,而是直接根据计算出的分片信息将需要存储的数据按照第二预设算法存储至对应的数据存储节点,由于不需要保存分片信息,所以可以减少服务器的负担,降低硬件成本,并且,在进行数据读取时,可以采用相同的算法计算得到分片信息,而不需要多次向元数据服务器发送获取分片信息的请求,可以大大提高分布式系统的存储和读取效率。
图2为本发明中按照第一预设算法生成分片信息的流程图。如图2所示,该流程包括:
步骤S201:根据公式n=n2-n1计算所述分片个数,其中n2=RoundDown((offset+size+k)/k),n1=RoundDown(offset/k);
RoundDown表示向下取整,offset表示需要存储的数据所归属的文件中已存储的数据占用的存储空间,size表示所述需要存储的数据大小,k表示每个分片的可用存储空间,n表示所述分片个数;
步骤S202:根据公式o1=offset-n1*k计算第一个分片存储的数据在分片中的偏移,o1表示第一个分片存储的数据在分片中的偏移;
其它分片存储的数据在分片中的偏移为零;
步骤S203:根据公式s1=k-o1计算第一个分片存储的数据在分片中占用的存储空间,其中,s1表示第一个分片存储的数据在分片中占用的存储空间;
步骤S204:根据公式sn=size+offset-k*(n2-1),计算最后一个分片存储的数据在分片中占用的存储空间,其中,sn表示最后一个分片存储的数据在分片中占用的存储空间;
其它分片存储的数据在分片中占用的存储空间为k。
下面通过一个具体例子对上述流程进行详细说明。假设需要存储的数据所归属的文件中已存储的数据占用的存储空间为5000(本例中单位均为字节),即offset=5000;需要存储的数据大小为5000,即size=5000;每个分片的可用存储空间为4096,即k=4096。则:
n2=RoundDown((5000+5000+4096)/4096)=Round(3.44)=3
n1=RoundDown(5000/4096)=1
n=n2-n1=2
即可以算得需要的分片个数为2个。
o1=5000-1*4096=4,第一个分片从第4个字节开始写入数据。o2=0,第二个分片从第0个字节开始写入数据。
s1=4096-4=4092,表示第一个分片存储的数据在分片中占用的存储空间为4092。
s2=5000+5000-4096*(3-1)=1808,表示第二个分片存储的数据在分片中占用的存储空间为1808。
图3为本发明的分布式数据存储方法实施例二的流程图。如图3所示,该方法包括:
步骤S301:调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;
步骤S302:通过所述数据访问句柄,获取需要存储的数据的大小信息;需要存储的数据属于需要存储的文件的全部数据的一部分;
步骤S303:获取已存储的数据的大小信息,所述已存储的数据的大小信息表示所述需要存储的数据信息所归属的文件中已经存储的数据占用的存储空间大小;
步骤S304:根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
步骤S305:根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;
步骤S306:根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点;
步骤S307:当所述需要存储的数据需要占用的分片个数为多个时,选择多个数据存储节点服务器,同时发出对于多个分片的写入请求。
本实施例中,通过步骤S307可以实现数据的并发存储。
进一步的,为了能够实现服务器的负载均衡,步骤S307还可以包括:
获取各个数据存储节点服务器的负载信息;
根据所述负载信息,选择负载小于预先设定的阈值的多个数据存储节点服务器,其中,该阈值可以由本领域技术人员根据经验值或者分布式系统的性能需求灵活配置,此处不做特别的限定。
此外,所述方法应用于具有多个数据存储节点服务器的系统时,可以对所述多个数据存储节点服务器采用DHT或P2P方式进行分布式集群管理。
图4为本发明的分布式数据存储方法实施例三的流程图。如图4所示,该方法包括:
步骤S401:调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;
步骤S402:通过所述数据访问句柄,获取需要存储的数据的大小信息;需要存储的数据属于需要存储的文件的全部数据的一部分;
步骤S403:获取已存储的数据的大小信息,所述已存储的数据的大小信息表示所述需要存储的数据信息所归属的文件中已经存储的数据占用的存储空间大小;
步骤S404:根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
步骤S405:根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;
步骤S406:根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点;
步骤S407:当所述需要存储的数据需要占用的分片个数为多个时,选择多个数据存储节点服务器,同时发出对于多个分片的写入请求。
步骤S408:判断所述需要存储的数据需要占用的分片是否全部写入成功;如果是,执行步骤S409;否则,执行步骤S410。
S409:向应用层返回最终的写入字节数;
S410:向应用层返回从已写入的数据占用的存储空间开始成功连续写入的字节数。
本实施例中,即使数据存储过程中某个分片存储失败,仍然可以进行后续的存储过程。
本发明还公开了一种分布式数据读取方法。图5为本发明的分布式数据读取方法流程图。如图5所示,该方法包括:
步骤S501:调用客户端提供的读数据接口,通过所述写数据接口获取数据访问句柄;
步骤S502:通过所述数据访问句柄,获取需要读取的数据的大小信息;需要读取的数据属于需要读取的文件的全部数据的一部分;
步骤S503:获取已读取的数据的大小信息,所述已读取的数据的大小信息表示所述需要读取的数据所归属的文件中已经读取的数据占用的存储空间大小;
步骤S504:根据所述需要读取的数据的大小信息和所述已读取的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要读取的文件数据占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
步骤S505:根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;
步骤S506:根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点,进行数据读取。
本实施例的分布式数据读取方法,通过采用与前述实施例中的分布式数据存储方法相同的第一预设算法,可以对需要读取的文件,自行计算出分片信息,并且,所述分片信息与分布式数据存储时的分片信息相同,进而得到相同的分片标识,再根据该分片标识采用相同的第二预设算法,就可以计算得到数据实际存储在的数据存储节点,进而读取数据。由于本实施例的分布式数据读取方法不必向元数据服务器发送获取分片信息的请求,进而可以避免服务器响应所造成的延时,可以大大提高分布式系统的文件读取效率。
本实施例的分布式数据读取方法,分片信息的生成过程与图2相似,在此不再赘述。
本发明还公开了一种分布式数据存储设备。图6为本发明的分布式数据存储设备实施例一的结构图。如图6所示,该设备包括:
写数据接口调用模块601,用于调用客户端提供的写数据接口,提供数据访问句柄;
文件数据的大小信息获取模块602,用于通过所述数据访问句柄,获取需要存储的数据的大小信息;需要存储的数据属于需要存储的文件的全部数据的一部分;
存储空间信息获取模块603,用于获取已存储的数据的大小信息,所述已存储的数据的大小信息表示所述需要存储的数据信息所归属的文件中已经存储的数据占用的存储空间大小;
分片信息生成模块604,用于根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
分片标识生成模块605,用于根据所述分片信息,为每个分片生成唯一的分片标识;
数据存储模块606,用于根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点,进行数据存储。
图7为本发明的分片信息生成模块的结构图。如图7所示,所述分片信息生成模块,可以包括:
分片个数计算单元701,用于根据公式n=n2-n1计算所述分片个数,其中n2=RoundDown((offset+size+k)/k),n1=RoundDown(offset/k);
RoundDown表示向下取整,offset表示已写入的数据占用的存储空间,size表示需要存储的数据大小,k表示每个分片的可用存储空间,n表示所述分片个数;
第一分片偏移计算单元702,用于根据公式o1=offset-n1*k计算第一个分片存储的数据在分片中的偏移,o1表示第一个分片存储的数据在分片中的偏移;
其它分片存储的数据在分片中的偏移为零;
第一分片存储空间计算单元703,用于根据公式s1=k-o1计算第一个分片存储的数据在分片中占用的存储空间,其中,s1表示第一个分片存储的数据在分片中占用的存储空间;
第二分片存储空间计算单元704,用于根据公式sn=size+offset-k*(n2-1),计算最后一个分片存储的数据在分片中占用的存储空间,其中,sn表示最后一个分片存储的数据在分片中占用的存储空间;
其它分片存储的数据在分片中占用的存储空间为k。
此外,上述实施例中的数据存储模块606可以包括:
并发写入单元,用于当所述需要存储的数据需要占用的分片个数为多个时,选择多个数据存储节点服务器,同时发出对于多个分片的写入请求。
所述并发写入单元包括:
负载信息获取子单元,用于获取各个数据存储节点服务器的负载信息;
数据存储节点服务器选择子单元,用于根据所述负载信息,选择负载较小的多个数据存储节点服务器。
图8为本发明的分布式数据存储设备实施例二的结构图。如图8所示,该设备包括:
写数据接口调用模块601,用于调用客户端提供的写数据接口,提供数据访问句柄;
文件数据的大小信息获取模块602,用于通过所述数据访问句柄,获取需要存储的数据的大小信息;需要存储的数据属于需要存储的文件的全部数据的一部分;
存储空间信息获取模块603,用于获取已存储的数据的大小信息,所述已存储的数据的大小信息表示所述需要存储的数据信息所归属的文件中已经存储的数据占用的存储空间大小;
分片信息生成模块604,用于根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
分片标识生成模块605,用于根据所述分片信息,为每个分片生成唯一的分片标识;
数据存储模块606,用于根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点,进行数据存储。
写入结果判断模块801,用于判断所述需要存储的数据需要占用的分片是否全部写入成功;
第一写入字节反馈模块802,用于当所述写入结果判断模块的判断结果为是时,向应用层返回最终的写入字节数;
第二写入字节反馈模块803,用于当所述写入结果判断模块的判断结果为否时,向应用层返回从已写入的数据占用的存储空间开始成功连续写入的字节数。
本发明还公开了一种分布式数据读取设备。图9为本发明的分布式数据读取设备结构图。如图9所示,该设备包括:
读数据接口调用模块901,用于调用客户端提供的读数据接口,提供数据访问句柄;
文件数据的大小信息获取模块902,用于通过所述数据访问句柄,获取需要读取的数据的大小信息;需要读取的文件数据属于需要读取的文件的全部数据的一部分;
存储空间信息获取模块903,用于获取已读取的数据的大小信息,所述已读取的数据的大小信息表示所述需要读取的文件数据信息所归属的文件中已经读取的数据占用的存储空间大小;
分片信息生成模块904,用于根据所述需要读取的数据的大小信息和所述已读取的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要读取的文件数据占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
分片标识生成模块905,用于根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;
数据读取模块906,用于根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点,进行数据读取。
本实施例的分布式数据读取设备,分片信息生成模块的结构与图7相似,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (13)

1.一种分布式数据存储方法,其特征在于,包括:
调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;
通过所述数据访问句柄,获取需要存储的数据的大小信息;
获取已存储的数据的大小信息,所述已存储的数据的大小信息表示所述需要存储的数据所归属的文件中已经存储的数据占用的存储空间大小;
根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;
根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据存储。
2.根据权利要求1所述的方法,其特征在于,所述按照第一预设算法生成分片信息,包括:
根据公式n=n2-n1计算所述分片个数,其中n2=RoundDown((offset+size+k)/k),n1=RoundDown(offset/k);
RoundDown表示向下取整,offset表示已存储的数据占用的存储空间,size表示需要存储的数据大小,k表示每个分片的可用存储空间,n表示所述分片个数;
根据公式o1=offset-n1*k计算第一个分片存储的数据在分片中的偏移,o1表示第一个分片存储的数据在分片中的偏移;
其它分片存储的数据在分片中的偏移为零;
根据公式s1=k-o1计算第一个分片存储的数据在分片中占用的存储空间,其中,s1表示第一个分片存储的数据在分片中占用的存储空间;
根据公式sn=size+offset-k*(n2-1),计算最后一个分片存储的数据在分片中占用的存储空间,其中,sn表示最后一个分片存储的数据在分片中占用的存储空间;
其它分片存储的数据在分片中占用的存储空间为k。
3.根据权利要求1或2任一项所述的方法,其特征在于,所述为每个分片选择对应的数据存储节点进行数据存储包括:
当所述需要存储的数据需要占用的分片个数为多个时,获取各个数据存储节点服务器的负载信息;根据所述负载信息,选择负载小于预先设定的阈值的多个数据存储节点服务器,以进行数据的并发存储。
4.根据权利要求1或2任一项所述的方法,其特征在于,所述第二预设算法包括:分布式哈希算法。
5.根据权利要求1或2任一项所述的方法,其特征在于,所述方法还包括:
判断所述需要存储的数据需要占用的分片是否全部写入成功;
如果是,则向应用层返回最终的写入字节数;
否则,向应用层返回从已写入的数据占用的存储空间开始成功连续写入的字节数。
6.一种分布式数据读取方法,其特征在于,包括:
调用客户端提供的读数据接口,通过所述读数据接口获取数据访问句柄;
通过所述数据访问句柄,获取需要读取的数据的大小信息;
获取已读取的数据的大小信息,所述已读取的数据的大小信息表示所述需要读取的数据所归属的文件中已经读取的数据占用的存储空间大小;
根据所述需要读取的数据的大小信息和所述已读取的数据的大小信息,按照第一预设算法生成分片信息,所述分片信息至少包括所述需要读取的数据占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识;
根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据读取。
7.根据权利要求6所述的方法,其特征在于,所述按照第一预设算法生成分片信息,包括:
根据公式n=n2-n1计算所述分片个数,其中n2=RoundDown((offset+size+k)/k),n1=RoundDown(offset/k);
RoundDown表示向下取整,offset表示已读取的数据占用的存储空间,size表示需要读取的数据大小,k表示每个分片的可用存储空间,n表示所述分片个数;
根据公式o1=offset-n1*k计算第一个分片存储的数据在分片中的偏移,o1表示第一个分片存储的数据在分片中的偏移;
其它分片存储的数据在分片中的偏移为零;
根据公式s1=k-o1计算第一个分片存储的数据在分片中占用的存储空间,其中,s1表示第一个分片存储的数据在分片中占用的存储空间;
根据公式sn=size+offset-k*(n2-1),计算最后一个分片存储的数据在分片中占用的存储空间,其中,sn表示最后一个分片存储的数据在分片中占用的存储空间;
其它分片存储的数据在分片中占用的存储空间为k。
8.一种分布式数据存储设备,其特征在于,包括:
写数据接口调用模块,用于调用客户端提供的写数据接口,通过所述写数据接口获取数据访问句柄;
数据的大小信息获取模块,用于通过所述数据访问句柄,获取需要存储的数据的大小信息;将所述数据的大小信息发送至分片信息生成模块;
存储空间信息获取模块,用于获取已存储的数据的大小信息,将所述已存储的数据的大小信息发送至分片信息生成模块;所述已存储的数据的大小信息表示所述需要存储的数据所归属的文件中已经存储的数据占用的存储空间大小;
分片信息生成模块,用于接收所述数据的大小信息获取模块发送的需要存储的数据的大小信息和所述存储空间信息获取模块发送的已存储的数据的大小信息,根据所述需要存储的数据的大小信息和所述已存储的数据的大小信息,按照第一预设算法生成分片信息,将所述分片信息发送至分片标识生成模块,所述分片信息至少包括所述需要存储的数据需要占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
分片标识生成模块,用于接收所述分片信息生成模块发送的所述分片信息,根据所述分片信息,为每个分片生成唯一的分片标识,将所述分片标识发送至数据存储模块;
数据存储模块,用于接收所述分片标识生成模块发送的分片标识,根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据存储。
9.根据权利要求8所述的设备,其特征在于,所述分片信息生成模块包括:
分片个数计算单元,用于根据公式n=n2-n1计算所述分片个数,其中n2=RoundDown((offset+size+k)/k),n 1=RoundDown(offset/k);
RoundDown表示向下取整,offset表示已写入的数据占用的存储空间,size表示需要写入的数据大小,k表示每个分片的可用存储空间,n表示所述分片个数;
第一分片偏移计算单元,用于根据公式o1=offset-n1*k计算第一个分片存储的数据在分片中的偏移,o1表示第一个分片存储的数据在分片中的偏移;并将其它分片存储的数据在分片中的偏移设置为零;
第一分片存储空间计算单元,用于根据公式s1=k-o1计算第一个分片存储的数据在分片中占用的存储空间,其中,s1表示第一个分片存储的数据在分片中占用的存储空间;
第二分片存储空间计算单元,用于根据公式sn=size+offset-k*(n2-1),计算最后一个分片存储的数据在分片中占用的存储空间,其中,sn表示最后一个分片存储的数据在分片中占用的存储空间;其中,其它分片存储的数据在分片中占用的存储空间为k。
10.根据权利要求8或9所述的设备,其特征在于,所述数据存储模块包括:
并发写入单元,用于当所述需要存储的数据需要占用的分片个数为多个时,获取各个数据存储节点服务器的负载信息;根据所述负载信息,选择负载小于预先设定的阈值的多个数据存储节点服务器,以进行数据的并发存储。
11.根据权利要求8或9所述的设备,其特征在于,所述设备还包括:
写入结果判断模块,用于判断所述需要存储的数据需要占用的分片是否全部写入成功;
第一写入字节反馈模块,用于当所述写入结果判断模块的判断结果为是时,向应用层返回最终的写入字节数;
第二写入字节反馈模块,用于当所述写入结果判断模块的判断结果为否时,向应用层返回从已写入的数据占用的存储空间开始成功连续写入的字节数。
12.一种分布式数据读取设备,其特征在于,包括:
读数据接口调用模块,用于调用客户端提供的读数据接口,通过所述读数据接口获取数据访问句柄;
数据的大小信息获取模块,用于通过所述数据访问句柄,获取需要读取的数据的大小信息;将所述数据的大小信息发送至分片信息生成模块;
存储空间信息获取模块,用于获取已读取的数据的大小信息,将所述已读取的数据的大小信息发送至分片信息生成模块;所述已读取的数据的大小信息表示所述需要读取的数据所归属的文件中已经读取的数据占用的存储空间大小;
分片信息生成模块,用于接收所述数据的大小信息获取模块发送的需要读取的数据的大小信息和所述存储空间信息获取模块发送的已读取的数据的大小信息,根据所述需要读取的数据的大小信息和所述已读取的数据的大小信息,按照第一预设算法生成分片信息,将所述分片信息发送至分片标识生成模块,所述分片信息至少包括所述需要读取的数据占用的分片个数信息以及每个分片存储的数据在分片中占用的存储空间信息;
分片标识生成模块,用于接收所述分片信息生成模块发送的所述分片信息,根据所述分片信息,按照分片标识生成规则为每个分片生成唯一的分片标识,将所述分片标识发送至数据存储模块;
数据读取模块,用于接收所述分片标识生成模块发送的分片标识,根据所述分片标识,按照第二预设算法,为每个分片选择对应的数据存储节点进行数据读取。
13.根据权利要求12所述的设备,其特征在于,所述分片信息生成模块,包括:
分片个数计算单元,用于根据公式n=n2-n1计算所述分片个数,其中n2=RoundDown((offset+size+k)/k),n1=RoundDown(offset/k);
RoundDown表示向下取整,offset表示已读取的数据占用的存储空间,size表示需要读取的数据大小,k表示每个分片的可用存储空间,n表示所述分片个数;
第一分片偏移计算单元,用于根据公式o1=offset-n1*k计算第一个分片存储的数据在分片中的偏移,o1表示第一个分片存储的数据在分片中的偏移;并将其它分片存储的数据在分片中的偏移设置为零;
第一分片存储空间计算单元,用于根据公式s1=k-o1计算第一个分片存储的数据在分片中占用的存储空间,其中,s1表示第一个分片存储的数据在分片中占用的存储空间;
第二分片存储空间计算单元,用于根据公式sn=size+offset-k*(n2-1),计算最后一个分片存储的数据在分片中占用的存储空间,其中,sn表示最后一个分片存储的数据在分片中占用的存储空间;其中,其它分片存储的数据在分片中占用的存储空间为k。
CN201210227425.7A 2012-07-03 2012-07-03 一种分布式数据存储方法及设备 Active CN102801784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210227425.7A CN102801784B (zh) 2012-07-03 2012-07-03 一种分布式数据存储方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210227425.7A CN102801784B (zh) 2012-07-03 2012-07-03 一种分布式数据存储方法及设备

Publications (2)

Publication Number Publication Date
CN102801784A true CN102801784A (zh) 2012-11-28
CN102801784B CN102801784B (zh) 2015-11-25

Family

ID=47200744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210227425.7A Active CN102801784B (zh) 2012-07-03 2012-07-03 一种分布式数据存储方法及设备

Country Status (1)

Country Link
CN (1) CN102801784B (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103825945A (zh) * 2014-02-25 2014-05-28 华为技术有限公司 一种分片存储方法及用户终端
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN103927265A (zh) * 2013-01-04 2014-07-16 深圳市龙视传媒有限公司 一种内容分级存储装置、内容获取方法及内容获取装置
WO2015100627A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种分布式文件存储系统中的数据处理方法及设备
CN105159836A (zh) * 2015-08-03 2015-12-16 联想(北京)有限公司 一种信息处理方法及电子设备
CN105471930A (zh) * 2014-07-28 2016-04-06 浙江大华技术股份有限公司 一种读取分布式数据的方法、系统和设备
CN106557706A (zh) * 2016-11-30 2017-04-05 广东欧珀移动通信有限公司 数据存储方法、装置及移动终端
CN104298574B (zh) * 2014-09-16 2017-07-04 南京斯坦德云科技股份有限公司 一种数据高速存储处理系统
CN106980693A (zh) * 2017-04-01 2017-07-25 广东浪潮大数据研究有限公司 一种文件读取的方法以及装置
CN108845769A (zh) * 2018-06-19 2018-11-20 郑州云海信息技术有限公司 一种数据落盘定位的方法、装置和计算机可读存储介质
CN108846022A (zh) * 2018-05-24 2018-11-20 沈阳东软医疗系统有限公司 文件存储方法、文件转换方法、装置、设备及存储介质
CN109286477A (zh) * 2018-10-30 2019-01-29 佛山市瑞德物联科技有限公司 一种支持乱序传输的数据传输方法
WO2019033368A1 (zh) * 2017-08-17 2019-02-21 深圳市优品壹电子有限公司 数据存储方法及装置
CN109412755A (zh) * 2018-11-05 2019-03-01 东方网力科技股份有限公司 一种多媒体数据处理方法、装置及存储介质
CN109413190A (zh) * 2018-11-05 2019-03-01 腾讯科技(深圳)有限公司 文件获取方法、装置、电子设备及存储介质
CN110399394A (zh) * 2018-04-16 2019-11-01 北京京东尚科信息技术有限公司 计算节点的数据遍历方法、装置及计算节点
CN110430274A (zh) * 2019-08-09 2019-11-08 西藏宁算科技集团有限公司 一种基于云存储的文件下载方法及系统
CN110442558A (zh) * 2019-07-30 2019-11-12 深信服科技股份有限公司 数据处理方法、分片服务器、存储介质及装置
CN111464661A (zh) * 2020-06-17 2020-07-28 北京金迅瑞博网络技术有限公司 负载均衡方法、装置、代理设备、缓存设备及服务节点
CN112524116A (zh) * 2020-11-12 2021-03-19 江苏徐工工程机械研究院有限公司 一种液压活塞杆及其表面复合功能涂层和制备方法
CN113778948A (zh) * 2021-09-01 2021-12-10 中国人民银行清算总中心 消息持久化存储方法及装置
CN114840608A (zh) * 2022-07-04 2022-08-02 深圳市茗格科技有限公司 分布式数据访问方法、设备及存储介质
CN114936010A (zh) * 2022-07-20 2022-08-23 阿里巴巴(中国)有限公司 数据处理方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673271A (zh) * 2008-09-09 2010-03-17 青岛海信传媒网络技术有限公司 分布式文件系统及其文件分片方法
US20110022640A1 (en) * 2009-07-21 2011-01-27 International Business Machines Corporation Web distributed storage system
CN101996217A (zh) * 2009-08-24 2011-03-30 华为技术有限公司 一种存储数据的方法及其存储设备
CN102194014A (zh) * 2011-06-28 2011-09-21 无锡永中软件有限公司 文档存储方法和文档恢复方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673271A (zh) * 2008-09-09 2010-03-17 青岛海信传媒网络技术有限公司 分布式文件系统及其文件分片方法
US20110022640A1 (en) * 2009-07-21 2011-01-27 International Business Machines Corporation Web distributed storage system
CN101996217A (zh) * 2009-08-24 2011-03-30 华为技术有限公司 一种存储数据的方法及其存储设备
CN102194014A (zh) * 2011-06-28 2011-09-21 无锡永中软件有限公司 文档存储方法和文档恢复方法

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN103927265B (zh) * 2013-01-04 2017-09-01 深圳市龙视传媒有限公司 一种内容分级存储装置、内容获取方法及内容获取装置
CN103927265A (zh) * 2013-01-04 2014-07-16 深圳市龙视传媒有限公司 一种内容分级存储装置、内容获取方法及内容获取装置
WO2015100627A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种分布式文件存储系统中的数据处理方法及设备
US10127233B2 (en) 2013-12-31 2018-11-13 Huawei Technologies Co., Ltd. Data processing method and device in distributed file storage system
CN104272274B (zh) * 2013-12-31 2017-06-09 华为技术有限公司 一种分布式文件存储系统中的数据处理方法及设备
CN103825945A (zh) * 2014-02-25 2014-05-28 华为技术有限公司 一种分片存储方法及用户终端
CN103825945B (zh) * 2014-02-25 2018-05-11 华为技术有限公司 一种分片存储方法及用户终端
CN105471930A (zh) * 2014-07-28 2016-04-06 浙江大华技术股份有限公司 一种读取分布式数据的方法、系统和设备
CN105471930B (zh) * 2014-07-28 2019-03-26 浙江大华技术股份有限公司 一种读取分布式数据的方法、系统和设备
CN104298574B (zh) * 2014-09-16 2017-07-04 南京斯坦德云科技股份有限公司 一种数据高速存储处理系统
CN105159836B (zh) * 2015-08-03 2019-01-08 北京联想核芯科技有限公司 一种信息处理方法及电子设备
CN105159836A (zh) * 2015-08-03 2015-12-16 联想(北京)有限公司 一种信息处理方法及电子设备
CN106557706A (zh) * 2016-11-30 2017-04-05 广东欧珀移动通信有限公司 数据存储方法、装置及移动终端
CN106557706B (zh) * 2016-11-30 2019-09-13 Oppo广东移动通信有限公司 数据存储方法、装置及移动终端
CN106980693A (zh) * 2017-04-01 2017-07-25 广东浪潮大数据研究有限公司 一种文件读取的方法以及装置
WO2019033368A1 (zh) * 2017-08-17 2019-02-21 深圳市优品壹电子有限公司 数据存储方法及装置
CN110399394A (zh) * 2018-04-16 2019-11-01 北京京东尚科信息技术有限公司 计算节点的数据遍历方法、装置及计算节点
CN108846022A (zh) * 2018-05-24 2018-11-20 沈阳东软医疗系统有限公司 文件存储方法、文件转换方法、装置、设备及存储介质
CN108845769A (zh) * 2018-06-19 2018-11-20 郑州云海信息技术有限公司 一种数据落盘定位的方法、装置和计算机可读存储介质
CN109286477A (zh) * 2018-10-30 2019-01-29 佛山市瑞德物联科技有限公司 一种支持乱序传输的数据传输方法
CN109412755B (zh) * 2018-11-05 2021-11-23 东方网力科技股份有限公司 一种多媒体数据处理方法、装置及存储介质
CN109412755A (zh) * 2018-11-05 2019-03-01 东方网力科技股份有限公司 一种多媒体数据处理方法、装置及存储介质
CN109413190B (zh) * 2018-11-05 2020-09-04 腾讯科技(深圳)有限公司 文件获取方法、装置、电子设备及存储介质
CN109413190A (zh) * 2018-11-05 2019-03-01 腾讯科技(深圳)有限公司 文件获取方法、装置、电子设备及存储介质
CN110442558A (zh) * 2019-07-30 2019-11-12 深信服科技股份有限公司 数据处理方法、分片服务器、存储介质及装置
CN110442558B (zh) * 2019-07-30 2023-12-29 深信服科技股份有限公司 数据处理方法、分片服务器、存储介质及装置
CN110430274A (zh) * 2019-08-09 2019-11-08 西藏宁算科技集团有限公司 一种基于云存储的文件下载方法及系统
WO2021253889A1 (zh) * 2020-06-17 2021-12-23 北京金迅瑞博网络技术有限公司 负载均衡方法、装置、代理设备、缓存设备及服务节点
CN111464661A (zh) * 2020-06-17 2020-07-28 北京金迅瑞博网络技术有限公司 负载均衡方法、装置、代理设备、缓存设备及服务节点
CN112524116A (zh) * 2020-11-12 2021-03-19 江苏徐工工程机械研究院有限公司 一种液压活塞杆及其表面复合功能涂层和制备方法
CN112524116B (zh) * 2020-11-12 2023-05-05 江苏徐工工程机械研究院有限公司 一种液压活塞杆及其表面复合功能涂层和制备方法
CN113778948A (zh) * 2021-09-01 2021-12-10 中国人民银行清算总中心 消息持久化存储方法及装置
CN114840608A (zh) * 2022-07-04 2022-08-02 深圳市茗格科技有限公司 分布式数据访问方法、设备及存储介质
CN114936010A (zh) * 2022-07-20 2022-08-23 阿里巴巴(中国)有限公司 数据处理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN102801784B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN102801784B (zh) 一种分布式数据存储方法及设备
CN105933376B (zh) 一种数据操作方法,服务器及存储系统
CN102968498B (zh) 数据处理方法及装置
CN111723073B (zh) 数据存储处理方法、装置、处理系统以及存储介质
CN109040227B (zh) 基于区块链的业务请求响应方法、装置和计算机设备
CN104166628B (zh) 管理内存的方法、装置和系统
CN111460474B (zh) 去中心化的预言机实现方法、装置、存储器和计算机
CN110019125A (zh) 数据库管理的方法和装置
CN106385377B (zh) 一种信息处理方法和系统
CN110825698A (zh) 元数据管理方法及相关装置
CN111343235A (zh) 数据处理方法和装置、访问系统、电子设备和存储介质
US10581997B2 (en) Techniques for storing or accessing a key-value item
CN111064776B (zh) 区块链中区块的生成方法、记账节点及存储介质
CN116842012A (zh) 一种Redis集群的分片存储方法、装置、设备及存储介质
CN103500108B (zh) 系统内存访问方法、节点控制器和多处理器系统
CN103106147A (zh) 内存分配方法及系统
CN108965450B (zh) 业务请求响应方法、装置、计算机设备和存储介质
CN117435129A (zh) 存储集群扩容方法、装置、计算机设备和存储介质
CN104461705A (zh) 一种业务访问的方法及存储控制器、集群存储系统
CN102970349A (zh) 一种dht网络的存储负载均衡方法
CN104219163A (zh) 一种基于动态副本法和虚拟节点法的节点动态前移的负载均衡方法
CN104202435B (zh) 数据拖取的方法和装置
WO2012171363A1 (zh) 分布式缓存系统中的数据操作方法和装置
CN103218430B (zh) 控制数据写入的方法、系统及设备
CN105447141A (zh) 一种数据处理的方法及节点

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant