CN105100146B - 数据存储方法、装置及系统 - Google Patents

数据存储方法、装置及系统 Download PDF

Info

Publication number
CN105100146B
CN105100146B CN201410191627.XA CN201410191627A CN105100146B CN 105100146 B CN105100146 B CN 105100146B CN 201410191627 A CN201410191627 A CN 201410191627A CN 105100146 B CN105100146 B CN 105100146B
Authority
CN
China
Prior art keywords
storage
data
memory node
node
memory
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
CN201410191627.XA
Other languages
English (en)
Other versions
CN105100146A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410191627.XA priority Critical patent/CN105100146B/zh
Publication of CN105100146A publication Critical patent/CN105100146A/zh
Application granted granted Critical
Publication of CN105100146B publication Critical patent/CN105100146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种数据存储方法,包括:接收上传的分片数据,提取所述分片数据的数据标识;获取存储节点的存储状态,根据所述存储状态选取存储节点,根据所述数据标识向存储节点请求分配存储空间;接收所述存储节点返回的与所述数据标识对应的存储地址标识,所述存储地址标识与存储节点为所述数据标识分配的存储单元上的偏移位置对应;将所述分片数据发送至所述存储地址标识对应的存储位置进行存储。此外,还提供了一种数据存储装置和系统。上述数据存储方法、装置及系统能够提高存储效率。

Description

数据存储方法、装置及系统
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据存储方法、装置及系统。
背景技术
现有的网络存储技术通常以分片数据的形式存储文件或其他数据,即将较小的文件或较大文件分片后得到的分片数据存储在多个存储节点上。例如谷歌公司的GFS(GoogleFile System,谷歌文件系统),即通过对分片数据的进行哈希后,根据哈希值定位到相应的存储节点,然后将分片数据发送至该存储节点存储。
然而,该数据存储方法由于是根据分片数据的哈希值选择存储节点(基本等同于随机选取),使得在某些存储节点带宽不够或存储负载较高或存储空间不足时,存储效率较低,即时重新选择存储节点,而重新选择的过程也导致存储效率较低。
发明内容
基于此,有必要提供一种能够提高存储效率的数据存储方法。
一种数据存储方法,包括:
接收上传的分片数据,提取所述分片数据的数据标识;
获取存储节点的存储状态,根据所述存储状态选取存储节点,根据所述数据标识向存储节点请求分配存储空间;
接收所述存储节点返回的与所述数据标识对应的存储地址标识,所述存储地址标识与存储节点为所述数据标识分配的存储单元上的偏移位置对应;
将所述分片数据发送至所述存储地址标识对应的存储位置进行存储。
此外,还有必要提供一种能够提高存储效率的数据存储装置。
一种数据存储装置,包括:
数据接收模块,用于接收上传的分片数据,提取所述分片数据的数据标识;
存储节点选择模块,用于获取存储节点的存储状态,根据所述存储状态选取存储节点,根据所述数据标识向存储节点请求分配存储空间;
存储地址获取模块,用于接收所述存储节点返回的与所述数据标识对应的存储地址标识,所述存储地址标识与存储节点为所述数据标识分配的存储单元上的偏移位置对应;
数据存储模块,用于将所述分片数据发送至所述存储地址标识对应的存储位置进行存储。
此外,还有必要提供一种能够提高存储效率的数据存储系统。
一种数据存储系统,包括门面节点和存储节点,其中:
门面节点用于接收上传的分片数据,获取存储节点的存储状态,根据所述存储状态选取存储节点,向所述存储节点发送存储空间分配请求;
存储节点用于为所述存储空间分配请求分配存储单元,并获取所述存储单元上的空闲的存储位置的偏移量,根据所述分配的存储单元和偏移量生成存储地址标识,返回所述门面节点。
门面节点用于将所述分片数据发送至所述存储地址标识对应的存储节点;
存储节点用于根据所述存储地址标识存储所述分片数据。
此外,还有必要提供一种能够提高存储效率的数据存储方法。
一种数据存储方法,包括:
门面节点接收上传的分片数据,获取存储节点的存储状态,根据所述存储状态选取存储节点,向所述存储节点发送存储空间分配请求;
存储节点用于为所述存储空间分配请求分配存储单元,并获取所述存储单元上的空闲的存储位置的偏移量,根据所述分配的存储单元和偏移量生成存储地址标识,返回所述门面节点。
所述门面节点将所述分片数据发送至所述存储地址标识对应的存储节点;
所述存储节点根据所述存储地址标识存储所述分片数据。
上述数据存储方法及装置中,门面节点在选择存储节点时,根据存储节点的存储状态进行选择,也就是说总是会选择存储速度较快的或剩余存储空间较大的存储节点进行存储,使得存储效率得到提高。
同时,由于同一时间存储节点的存储状态不会发生突发性的改变,使得在存储大文件的多个连续的分片数据时,通常会存储在同一个存储节点上,因此在存储节点搬迁或存储节点上的数据进行迁移时,涉及到的关联的存储节点的数量较小,从而降低了搬迁成本。
附图说明
图1为一个实施例中一种数据存储系统的架构图;
图2为一个实施例中一种数据存储方法的流程图;
图3为一个实施例中存储节点的内部架构示意图;
图4为一个实施例中获取存储状态的过程示意图;
图5为一个实施例中分配存储单元的过程示意图;
图6为一个实施例中创建索引的过程示意图;
图7为一个实施例中存储和下载过程的时序图;
图8为另一个实施例中一种数据存储系统的架构图;
图9为一个实施例中一种数据存储装置的结构示意图;
图10为一个实施例中数据存储方法的流程图;
图11为一个实施例中运行上述数据存储方法的服务器硬件环境图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
具体的,在本实施例中,为了能够提高存储效率,特提出了一种数据存储方法,该方法的实现可依赖计算机程序,可运行于基于冯诺依曼体系的计算机系统上。如图1所示,该计算机系统可以是图2所示的文件管理系统中的门面节点。
图1展示了一种文件管理系统,包括门面节点10和存储节点20,可提供数据存储和数据下载服务。门面节点10可与终端30连接,终端30可向门面节点10上传文件或下载文件。门面节点10则将终端30上传的数据转发至存储节点20。存储节点20包含有多个存储单元,如图1中存储节点24包含存储单元24A至存储单元24C,存储节点可将数据存储在存储单元中。
存储节点20上的存储单元可以是独立的磁盘、磁带或存储服务器硬件实体,也可以是与同一磁盘上的不同存储区域对应的逻辑存储块。例如,在一个应用场景中,可以独立的磁盘(例如1TB大小的硬盘)作为存储单元,每块磁盘即为一个存储单元。在另一个应用场景中,则可在大型的存储服务器上划分多个1TB的逻辑存储块,每个1TB的逻辑存储块即为存储空间大小为1TB的存储单元。
需要说明的是,门面节点10可以是单一的服务器硬件实体设备,也可以是多个服务器构成的服务器集群,该服务器集群中的服务器可分别实现门面节点的多个逻辑功能,单一服务器场景中的函数调用即可通过多服务器之间的通信实现。
具体的,如图2所示,该方法包括:
步骤S102:接收上传的分片数据,提取分片数据的数据标识。
分片数据可以是较小的独立的文件,也可以是文件片段。例如,若预先设置4kb大小的数据段为一个分片数据,则一个大小只有3kb的文档文件为一个分片数据,而一个大小为4mb的mp3音频文件则可被划分为1000个大小为4kb的分片数据。
在本实施例中,分片数据的数据标识可以是文件名或文件的摘要编码。如前例中,接收用户上传的该3kb的文档文件后,可将该文件的文件名加入上传时间戳的字段,然后将加入了上传时间戳字段的文件名作为该3kb文档文件的数据标识。下载时,用户即可通过文件名以及上传时间来确定其曾经上传的是哪一个文档文件。而对于4mb的mp3文件,则可在其文件名中加入在划分后得到的每个分片数据的编号,例如:
dgf8s6f58fg56@00001
dgf8s6f58fg56@00002
dgf8s6f58fg56@00003
……
dgf8s6f58fg56@01000
dgf8s6f58fg56为该mp3文件的摘要编码,00001至00009等相应的编号即为该分片数据在整个mp3文件中的位置。
步骤S104:获取存储节点的存储状态,根据存储状态选取存储节点,根据数据标识向存储节点请求分配存储空间。
如图1所示,存储节点可以有多个,门面节点在选择存储节点时需要进行负载均衡,选择最合适的存储节点存储分片数据。
在本实施例中,存储状态包括存储节点的I/O负载和/或剩余存储空间大小。
根据存储状态选取存储节点的步骤则包括:根据存储节点的I/O负载和/或剩余存储空间大小选取存储节点。
例如,在一个应用场景中,如图3所示,图中的存储Set即为存储节点。该存储节点包括一个master节点和多个实际存储数据的server(逻辑或物理上均可),每个server即为一个存储单元。数据存入该存储节点中的server中或数据由server取出时,需要由master节点来转发数据,因此master节点记录有该存储节点的I/O负载信息(连接数、数据I/O流量与带宽等)。且该master节点管理该多个server,并通过实时监控记录有每个server的剩余存储空间大小。
在本应用场景中,如图4和图5所示,门面节点则可实时拉取存储节点中的master节点中记录的I/O负载信息、剩余存储空间大小等存储状态,然后选择I/O负载较小,剩余存储空间较大的存储节点。具体的,可将I/O负载和剩余存储空间量化后乘以相应的权重系数加权求和后进行比较,然后选择合适的存储节点。
优选的,对于连续的属于同一文件的分片数据,则优先选择同一存储节点进行存储。如前例中,4mb的mp3文件被分为1000份,则索引节点在为分片数据选择存储节点时,由于该1000份分片数据的数据标识可拥有相同的前缀(该前缀对应同一文件),则可将拥有相同前缀的数据标识的分片数据分配到同一存储节点当中。使得在进行存储节点对应的硬件设备搬迁时,其中存储的文件的完整性得到保证,而不需要与其他存储节点产生关联。
门面节点选择合适的存储节点之后,即可向选取的存储节点发送存储空间分配请求,存储节点接收到存储空间分配请求后即可为该存储空间分配请求对应的数据标识分配存储空间。
步骤S106:接收存储节点返回的与数据标识对应的存储地址标识,存储地址标识与存储节点为数据标识分配的存储单元上的偏移位置对应。
优选的,存储节点可选择剩余存储空间最大的存储单元进行分配。优选的,对于连续的属于同一文件的分片数据,则优先选择同一存储单元进行存储。也就是说,尽量保证文件在某个存储单元中的整体性,从而在数据迁移时,可快速定位文件的所有分片数据,提高效率。
存储节点选定了剩余存储空间最大的存储单元之后,即可获取其剩余存储空间的起始位置,该起始位置即为可存储数据的空闲存储空间的偏移量。之后,存储节点即可根据其自身的节点标识,其选定的剩余存储空间最大的存储单元的单元标识以及前述的偏移量生成存储地址标识。即生成的存储地址标识可以包括与存储节点对应的节点标识字段、与存储单元对应的单元标识字段以及偏移量字段。
参考前例的应用场景和图4所示内容,由master节点接收门面节点发出的存储空间分配请求,并在所辖的server中选择剩余空间最大的server来进行存储。master节点在找出剩余空间最大的server后,则可获取该server上空闲存储空间在该server的存储地址上的起始位置作为偏移量。
例如,若master节点的节点标识为其域名:datastoreset213,master节点选定的剩余存储空间最大的存储单元的单元标识为其存储器编号:server2,该存储单元上空闲存储空间的偏移量:30930212392,则生成的存储地址标识即可以设置为:datastoreset213@server2@30930212392。
存储节点生成存储地址标识之后,即可将其返回给门面节点,通知门面节点可向该地址写入数据。优选的,存储节点可将该存储地址标识对应的存储位置加锁。加锁之后,存储节点则不会将该存储地址标识对应的存储位置分配给其他的存储空间分配请求。例如,若预设的分片数据大小最大为4kb,则可将选定的存储单元上以前述的偏移量为起始,长度为4kb大小的存储块加锁,该位置的4kb大小的存储块则不会被分配给其他存储空间分配请求。
步骤S108:将分片数据发送至存储地址标识对应的存储位置进行存储。
在本实施例中,提取存储地址标识中的节点标识字段,获取与节点标识字段对应的存储节点,将分片数据发送至存储节点,由存储节点存储到与存储地址标识中的单元标识字段和偏移量字段对应的存储位置。
如前例中,若存储节点返回的存储地址标识为:
datastoreset213@server2@30930212392
则可将分片数据发送给datastoreset213对应的存储节点,存储节点接收到分片数据之后则可将其存储到server2上的30930212392位置处。
需要说明的是,也可以根据需要设置域名服务器,用于映射存储节点的节点标识与IP地址。如上例中,若门面节点根据存储地址标识提取到节点标识字段为datastoreset213,则可通过设置的域名服务器查询到该字符串对应的IP地址,然后通过该IP地址将分片数据发送至相应的存储节点。
进一步的,存储节点将接收到的分片数据存储到相应位置后,还可将分片数据对应的存储块解锁。如前例中,若对存储块解锁,则可执行后续的下载和删除操作。
在本实施例中,接收存储节点返回的与数据标识对应的存储地址标识之后还可生成数据标识与存储地址标识对应的索引并存储。
如图6所示,参考图4的说明存储set即为存储节点,chid即为分配的存储地址标识中的节点标识字段和单元标识字段,fid即为空闲存储空间在存储单元上的偏移量(offside),Idx-master即为创建的索引。在本实施例中,由于索引的数据量较大,因此可将索引存储在独立的索引逻辑服务器上。
而在进行数据下载时,则可根据该索引定位分片数据,其过程可具体为:
接收数据下载请求,提取相应的数据标识,根据索引查找与数据标识对应的存储地址标识;读取与存储地址标识对应的数据,并将其返回给与数据下载请求对应的终端。
进一步的,读取与存储地址标识对应的数据的步骤可具体为:
向存储地址标识中的节点标识字段对应的存储节点发送数据拉取请求;接收存储节点返回的由该存储节点根据存储地址标识中包含的单元标识字段和偏移量字段读取的分片数据。
例如,用户希望下载前述的上传的mp3音乐,则可向门面节点发起数据下载请求。门面节点通过数据库查询可得到该用户前述上传的mp3音乐文件的哈希值为dgf8s6f58fg56,且该文件已被划分成1000个分片数据,则门面节点依次从dgf8s6f58fg56@00001开始拉取,在索引中查询到dgf8s6f58fg56@00001到dgf8s6f58fg56@01000对应的存储地址标识,然后向查询到的存储地址标识对应的存储节点发起数据拉取请求,存储节点则可提取其中包含的单元标识字段和相应的偏移量字段,根据单元标识字段和偏移量字段读取数据后返回给门面节点。门面节点即可将接收到的数据整合后以数据流的形式返回给用户使用的终端。
在另一个实施例中,也可直接使用整个文件的文件名或摘要编码作为数据标识。例如可使用dgf8s6f58fg56作为数据标识,而该数据标识在索引中对应1000个存储地址标识,该1000个存储地址标识则分别对应该mp3文件被分片得到的1000个连续的分片数据的存储地址。在下载该mp3文件时,则可通过索引查找到与该dgf8s6f58fg56数据标识对应的1000个存储地址标识,再根据该1000个存储地址标识分别拉取分片数据。
如图7所示,图7展示了终端上传文件进行存储和终端访问门面节点上传文件进行存储和下载文件数据的时序过程。
优选的,存储节点分配为存储分配请求分配了的存储地址标识之后,还可分配与该存储地址标识对应的备份存储位置。
如图4中,存储节点(即图4中的存储set)中的每个server节点均可具有主备存储设备,当master节点在将分片数据写入存储地址标识对应的server节点时,可向每个server节点的所有主备存储设备写入同一分片数据的拷贝。主备存储设备的容量可设置为一致,master节点在写入时,可根据存储地址标识中的偏移量字段在不同的主备存储设备中写入。
在本实施例中,读取与存储地址标识对应的数据的步骤还包括:
由存储节点根据偏移量字段读取单元标识字段对应的主存储单元上的分片数据,若读取失败,则根据偏移量字段读取单元标识字段对应的备存储单元上的分片数据。
也就是说,若主存储单元由于设备故障损坏导致数据遗失,仍然可以通过备存储单元得到存储的数据,且主存储单元和备存储单元的数据是同步的,在存储时一并存储,修改时一并修改,删除时一并删除,,不会出现数据冲突的情况。
需要说明的是,门面节点10并不限于独立的服务器设备。在一个实施例中,如图8所示,门面节点10可包括数据上传节点12、索引管理节点14以及数据下载节点16。数据上传节点12则用于处理文件上传业务;索引管理节点则用于更新和维护索引;数据下载节点16则用于处理文件下载业务。数据上传节点12、索引管理节点14以及数据下载节点16各自又可以对应不同的服务器集群。在其他实施例中,还可根据门面节点10的功能进一步地细分服务器,从而使得门面节点处理业务的负载得到分散。
在一个实施例中,一种数据存储装置,如图9所示,包括:数据接收模块102、存储节点选择模块104、存储地址获取模块106以及数据存储模块108,其中:
数据接收模块102,用于接收上传的分片数据,提取所述分片数据的数据标识。
存储节点选择模块104,用于获取存储节点的存储状态,根据存储状态选取存储节点,根据数据标识向存储节点请求分配存储空间。
存储地址获取模块106,用于接收存储节点返回的与数据标识对应的存储地址标识,存储地址标识与存储节点为数据标识分配的存储单元上的偏移位置对应。
数据存储模块108,用于将分片数据发送至存储地址标识对应的存储位置进行存储。
在本实施例中,存储状态包括存储节点的I/O负载和/或剩余存储空间大小;
存储节点选择模块104还用于根据存储节点的I/O负载和/或剩余存储空间大小选取存储节点。
在本实施例中,存储地址标识包括与存储节点对应的节点标识字段、与存储单元对应的单元标识字段以及偏移量字段。
在本实施例中,如图9所示,数据存储装置还包括索引生成模块110,用于生成数据标识与存储地址标识对应的索引并存储。
在本实施例中,如图9所示,数据存储装置还包括数据拉取模块112,用于接收数据下载请求,提取相应的数据标识,根据索引查找与数据标识对应的存储地址标识;读取与存储地址标识对应的数据,并将其返回给与数据下载请求对应的终端。
在本实施例中,数据拉取模块112还用于向存储地址标识中的节点标识字段对应的存储节点发送数据拉取请求;接收存储节点返回的由该存储节点根据存储地址标识中包含的单元标识字段和偏移量字段读取的分片数据。
在本实施例中,数据存储模块108还用于提取存储地址标识中的节点标识字段,获取与节点标识字段对应的存储节点,将分片数据发送至存储节点,由存储节点存储到与存储地址标识中的单元标识字段和偏移量字段对应的存储位置。
一种数据存储系统,如图1所示,包括门面节点10和存储节点20,其中:
门面节点10用于接收上传的分片数据,获取存储节点的存储状态,根据存储状态选取存储节点,向存储节点发送存储空间分配请求;
存储节点20用于为存储空间分配请求分配存储单元,并获取存储单元上的空闲的存储位置的偏移量,根据分配的存储单元和偏移量生成存储地址标识,返回门面节点。
门面节点10用于将分片数据发送至存储地址标识对应的存储节点;
存储节点20用于根据存储地址标识存储分片数据。
一种数据存储方法,如图10所示,包括:
步骤S202,门面节点接收上传的分片数据,获取存储节点的存储状态,根据存储状态选取存储节点,向存储节点发送存储空间分配请求;
步骤S204,存储节点用于为存储空间分配请求分配存储单元,并获取存储单元上的空闲的存储位置的偏移量,根据分配的存储单元和偏移量生成存储地址标识,返回门面节点。
步骤S206,门面节点将分片数据发送至存储地址标识对应的存储节点;
步骤S208,存储节点根据存储地址标识存储分片数据。
上述数据存储方法及装置中,门面节点在选择存储节点时,根据存储节点的存储状态进行选择,也就是说总是会选择存储速度较快的或剩余存储空间较大的存储节点进行存储,使得存储效率得到提高。
同时,由于同一时间存储节点的存储状态不会发生突发性的改变,使得在存储大文件的多个连续的分片数据时,通常会存储在同一个存储节点上,因此在存储节点搬迁或存储节点上的数据进行迁移时,涉及到的关联的存储节点的数量较小,从而降低了搬迁成本。
在一个实施例中,如图11所示,提供了一种可运行前述数据处理方法的服务器结构示意图,该业务节点结构可应用于运行计算机程序的服务器上。该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(如前述的数据接收模块102、存储节点选择模块104、存储地址获取模块106以及数据存储模块108),每个模块可以包括对业务节点中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述图2所示实施例中所述的步骤可以基于该图11所示的服务器结构。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (14)

1.一种数据存储方法,应用于门面节点,所述方法包括:
接收上传的分片数据,提取所述分片数据的数据标识;
获取存储节点中的master节点所记录的存储节点的存储状态,根据所述存储状态选取存储节点以进行负载均衡;根据所述数据标识向选取的存储节点请求分配存储空间;
接收所述存储节点返回的与所述数据标识对应的存储地址标识,所述存储地址标识对应的存储位置被加锁,所述存储地址标识与存储节点为所述数据标识分配的存储单元上的偏移位置对应;其中,所述存储节点为所述数据标识分配的存储单元是存储节点中剩余存储空间最大的存储单元;
将所述分片数据发送至所述存储地址标识对应的存储位置进行存储,所述存储位置在所述分片数据被存储至所述存储位置后被解锁。
2.根据权利要求1所述的数据存储方法,其特征在于,所述存储地址标识包括与所述存储节点对应的节点标识字段、与所述存储单元对应的单元标识字段以及偏移量字段;
所述接收所述存储节点返回的与所述数据标识对应的存储地址标识之后还包括:
生成所述数据标识与所述存储地址标识对应的索引并存储。
3.根据权利要求2所述的数据存储方法,其特征在于,所述方法还包括:
接收数据下载请求,提取相应的数据标识,根据所述索引查找与所述数据标识对应的存储地址标识;
读取与所述存储地址标识对应的数据,并将其返回给与所述数据下载请求对应的终端。
4.根据权利要求3所述的数据存储方法,其特征在于,所述读取与所述存储地址标识对应的数据的步骤为:
向所述存储地址标识中的节点标识字段对应的存储节点发送数据拉取请求;
接收所述存储节点返回的由该存储节点根据所述存储地址标识中包含的单元标识字段和偏移量字段读取的分片数据。
5.根据权利要求2所述的数据存储方法,其特征在于,所述将所述分片数据发送至所述存储地址标识对应的存储位置进行存储的步骤为:
提取所述存储地址标识中的节点标识字段,获取与所述节点标识字段对应的存储节点,将所述分片数据发送至所述存储节点,由所述存储节点存储到与所述存储地址标识中的单元标识字段和偏移量字段对应的存储位置。
6.根据权利要求1所述的数据存储方法,其特征在于,所述存储状态包括所述存储节点的I/O负载和/或剩余存储空间大小;
所述根据所述存储状态选取存储节点以进行负载均衡的步骤包括:
根据所述存储节点的I/O负载和/或剩余存储空间大小选取存储节点。
7.一种数据存储装置,包括:
数据接收模块,用于接收上传的分片数据,提取所述分片数据的数据标识;
存储节点选择模块,用于获取存储节点中的master节点所记录的存储节点的存储状态,根据所述存储状态选取存储节点以进行负载均衡;根据所述数据标识向选取的存储节点请求分配存储空间;
存储地址获取模块,用于接收所述存储节点返回的与所述数据标识对应的存储地址标识,所述存储地址标识对应的存储位置被加锁,所述存储地址标识与存储节点为所述数据标识分配的存储单元上的偏移位置对应;其中,所述存储节点为所述数据标识分配的存储单元是存储节点中剩余存储空间最大的存储单元;
数据存储模块,用于将所述分片数据发送至所述存储地址标识对应的存储位置进行存储,所述存储位置在所述分片数据被存储至所述存储位置后被解锁。
8.根据权利要求7所述的数据存储装置,其特征在于,所述存储地址标识包括与所述存储节点对应的节点标识字段、与所述存储单元对应的单元标识字段以及偏移量字段;
所述装置还包括索引生成模块,用于生成所述数据标识与所述存储地址标识对应的索引并存储。
9.根据权利要求8所述的数据存储装置,其特征在于,所述装置还包括数据拉取模块,用于接收数据下载请求,提取相应的数据标识,根据所述索引查找与所述数据标识对应的存储地址标识;读取与所述存储地址标识对应的数据,并将其返回给与所述数据下载请求对应的终端。
10.根据权利要求9所述的数据存储装置,其特征在于,所述数据拉取模块还用于向所述存储地址标识中的节点标识字段对应的存储节点发送数据拉取请求;接收所述存储节点返回的由该存储节点根据所述存储地址标识中包含的单元标识字段和偏移量字段读取的分片数据。
11.根据权利要求8所述的数据存储装置,其特征在于,所述数据存储模块还用于提取所述存储地址标识中的节点标识字段,获取与所述节点标识字段对应的存储节点,将所述分片数据发送至所述存储节点,由所述存储节点存储到与所述存储地址标识中的单元标识字段和偏移量字段对应的存储位置。
12.根据权利要求7所述的数据存储装置,其特征在于,所述存储状态包括所述存储节点的I/O负载和/或剩余存储空间大小;
所述存储节点选择模块还用于根据所述存储节点的I/O负载和/或剩余存储空间大小选取存储节点。
13.一种数据存储系统,其特征在于,包括门面节点和存储节点,其中:
门面节点用于接收上传的分片数据,获取存储节点中的master节点所记录的存储节点的存储状态,根据所述存储状态选取存储节点以进行负载均衡;向选取的存储节点发送存储空间分配请求;
存储节点用于为所述存储空间分配请求分配存储单元,并获取所述存储单元上的空闲的存储位置的偏移量,根据所述分配的存储单元和偏移量生成存储地址标识,返回所述门面节点;所述存储节点还用于将所述存储地址标识对应的存储位置加锁;其中,所述存储单元是存储节点中剩余存储空间最大的存储单元;
门面节点用于将所述分片数据发送至所述存储地址标识对应的存储节点;
存储节点用于根据所述存储地址标识存储所述分片数据,在所述分片数据被存储至所述存储位置后将所述存储位置解锁。
14.一种数据存储方法,包括:
门面节点接收上传的分片数据,获取存储节点中的master节点所记录的存储节点的存储状态,根据所述存储状态选取存储节点以进行负载均衡;向选取的存储节点发送存储空间分配请求;
存储节点用于为所述存储空间分配请求分配存储单元,并获取所述存储单元上的空闲的存储位置的偏移量,根据所述分配的存储单元和偏移量生成存储地址标识,返回所述门面节点;将所述存储地址标识对应的存储位置加锁;其中,所述存储单元是存储节点中剩余存储空间最大的存储单元;
所述门面节点将所述分片数据发送至所述存储地址标识对应的存储节点;
所述存储节点根据所述存储地址标识存储所述分片数据,在所述分片数据被存储至所述存储位置后将所述存储位置解锁。
CN201410191627.XA 2014-05-07 2014-05-07 数据存储方法、装置及系统 Active CN105100146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410191627.XA CN105100146B (zh) 2014-05-07 2014-05-07 数据存储方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410191627.XA CN105100146B (zh) 2014-05-07 2014-05-07 数据存储方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105100146A CN105100146A (zh) 2015-11-25
CN105100146B true CN105100146B (zh) 2018-07-20

Family

ID=54579682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410191627.XA Active CN105100146B (zh) 2014-05-07 2014-05-07 数据存储方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105100146B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783728B (zh) * 2016-08-31 2021-07-23 百度在线网络技术(北京)有限公司 数据存储方法、装置和设备
CN106657213B (zh) * 2016-09-14 2020-04-07 深圳峰创智诚科技有限公司 文件传输方法和装置
CN107872489B (zh) * 2016-09-28 2020-06-05 杭州海康威视数字技术股份有限公司 一种文件切片上传方法、装置及云存储系统
CN106557706B (zh) * 2016-11-30 2019-09-13 Oppo广东移动通信有限公司 数据存储方法、装置及移动终端
CN106708975B (zh) * 2016-12-06 2019-10-15 上海艾融软件股份有限公司 商品库存信息的处理方法及系统
CN106814971B (zh) * 2016-12-20 2020-09-29 中国银联股份有限公司 一种异构存储方法及异构存储平台
CN108810055B (zh) * 2017-05-04 2022-03-29 贵州白山云科技股份有限公司 一种大文件传输方法及装置
WO2019080015A1 (zh) * 2017-10-25 2019-05-02 华为技术有限公司 一种数据读写方法、装置和存储服务器
CN108038239B (zh) * 2017-12-27 2020-06-23 中科鼎富(北京)科技发展有限公司 一种异构数据源规范化处理方法、装置及服务器
CN108563771B (zh) * 2018-04-20 2020-06-09 中国科学院合肥物质科学研究院 基于区块链的大文件管理系统及方法
CN109088913B (zh) * 2018-06-29 2021-05-11 华为技术有限公司 请求数据的方法和负载均衡服务器
CN110851525B (zh) * 2018-07-24 2022-08-26 华为云计算技术有限公司 一种数据分片方法、相关设备及计算机存储介质
CN110798492B (zh) * 2018-08-02 2022-08-09 杭州海康威视数字技术股份有限公司 数据存储方法及装置、数据处理系统
CN109542961B (zh) * 2018-10-19 2024-05-03 中国平安财产保险股份有限公司 数据存储方法、装置、计算机设备和存储介质
CN111352577B (zh) * 2018-12-24 2023-03-14 杭州海康威视系统技术有限公司 一种对象存储方法及装置
CN109829093A (zh) * 2018-12-29 2019-05-31 深圳云天励飞技术有限公司 一种搜索的方法及装置
CN109857710B (zh) * 2019-01-04 2023-10-27 平安科技(深圳)有限公司 文件存储方法及终端设备
CN110290171A (zh) * 2019-05-15 2019-09-27 陈菡 一种数据管理方法及装置、电子设备
CN112394876B (zh) * 2019-08-14 2024-02-23 深圳市特思威尔科技有限公司 大文件存储/读取方法、存储/读取装置和计算机设备
CN111277634B (zh) * 2020-01-14 2021-12-21 北京金山云网络技术有限公司 一种数据id分配方法、装置、系统以及服务器
CN113612705B (zh) * 2021-08-02 2023-08-22 广西电网有限责任公司 基于哈希算法分片及重组的电网监控系统数据传输方法
CN117725258A (zh) * 2023-12-19 2024-03-19 北京中电兴发科技有限公司 基于空间和时间均衡安防视频存储规划和定位读写的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1195274C (zh) * 2003-01-25 2005-03-30 华中科技大学 基于集群视频服务器的节目源分片分布式存储方法
CN101447928B (zh) * 2008-12-31 2011-09-14 华为技术有限公司 分片信息处理的方法和装置
CN103116552B (zh) * 2013-03-18 2017-03-15 华为技术有限公司 用于在分布式存储系统中分配存储空间的方法和装置
CN103702235A (zh) * 2013-12-24 2014-04-02 乐视网信息技术(北京)股份有限公司 内容传送网络的数据处理方法与系统

Also Published As

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

Similar Documents

Publication Publication Date Title
CN105100146B (zh) 数据存储方法、装置及系统
US10509701B2 (en) Performing data backups using snapshots
CN108011929A (zh) 数据请求处理方法、装置、计算机设备和存储介质
CN106294352B (zh) 一种文件处理方法、装置和文件系统
CN106649403B (zh) 文件存储中的索引实现方法和系统
CN105025053A (zh) 基于云存储技术的分布式文件的上传方法及其系统
CN109542861B (zh) 一种文件管理方法、装置和系统
CN105824723B (zh) 一种对公有云存储账户的数据进行备份的方法及系统
US20170250863A1 (en) Centralized configuration data in a distributed file system
CN106775446A (zh) 基于固态硬盘加速的分布式文件系统小文件访问方法
CN107026876A (zh) 一种文件数据访问系统及方法
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
CN106326239A (zh) 分布式文件系统及其文件元信息管理方法
CN106960011A (zh) 分布式文件系统元数据管理系统及方法
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
CN103823807A (zh) 一种去除重复数据的方法、装置及系统
CN108073723A (zh) 一种用于分布式集群存储上的文件自精简方法及设备
CN111090618A (zh) 一种数据读取方法、系统及设备
CN101727503A (zh) 一种创建磁盘文件系统的方法
US7792966B2 (en) Zone control weights
CN109189341A (zh) 分布式存储系统的目录负载均衡方法、装置、设备及介质
WO2020215580A1 (zh) 一种分布式全局数据去重方法和装置
CN111190537A (zh) 一种追加写场景下顺序存储磁盘管理的方法及系统
CN107181773A (zh) 分布式存储系统的数据存储及数据管理方法、设备
CN110569291B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190807

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.