一种数据的分发方法及装置的制造方法_2

文档序号:8500068阅读:来源:国知局
与所述服务器之间的对应关系W及所述 实例数据与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的 一分表中。
[0062] 所述的装置,还包括:
[0063] 建立单元25,建立所述实例数据与所述服务器之间的对应关系W及所述实例数据 与所述分表之间的对应关系。
[0064] 所述建立单元25包括;
[00化]生成单元,对所述实例数据ID,进行hash算法,生成哈希值;
[0066] 第一建立单元,建立所述哈希值与所述服务器的标识之间的对应关系;
[0067] 第二建立单元,建立所述哈希值与所述分表的标识之间的对应关系。
[0068] W下描述本发明的另一实施例。
[0069] 该实施例利用哈希算法,将数据分到一服务器的一分表中。
[0070] 首先描述本实施例的应用场景。有多个服务器(也可W称为;数据库服务主机), 每个服务器上有多个分表。一个实例对应多个分表(也可W称为;元数据表),一个实例数 据可W分布在多个服务器上。一个实例为一个类型的数据,例如为直播数据的描述文件。
[0071] W下为对分表内容进行举例。
[0072] 所有数据内容存储在表中,都是经过压缩的。W下是解压缩部分内容的样例:
[0073] 〈entry〉
[0074] <id〉urn:uuid:bel0aKl-c8^-cef2-850a-81afde0ccd71</id〉
[0075] 〈titletype= "text"〉文本文件的标题〈/title〉
[0076] <summarytype= "text"〉摘要,描述 </summary〉
[0077] 〈contenttype= "text"〉内容,详情〈/content〉
[007引 <t:terms〉关键词A,关键词B</t:terms〉
[0079] <t:tid>l</1:tid>
[0080] <t:client)10000</t:client)
[0081] <t:sta1:us〉l</t:sta1:us〉
[008引 <t:dir〉K/t:dir〉
[0083] <published>2011-08-03T09:23:47+08:00</published>
[0084] <updated〉2011-08-03T10:27: :M+08:00</updated>
[0085] <t:;rtype1 油el="资源类型"〉10</t:;rtype〉
[0086] 〈media:group〉
[0087] 〈media:content
[0088] url= "httpV/apidatacenter.com/12/6a/126ae7f3-05e0-b85d-ba7a-0561x7d a539c/test.txt"filesize= "11110"t:name= "bin"/〉
[0089] 〈/media:group〉
[0090] </entry)
[0091] 所述数据的分发方法包括:
[0092] 首先,假设有几十万个客户端向服务器发送视频信息,视频信息可能是对某个视 频的介绍,例如为视频的描述文件。服务器来不及对所有描述文件进行处理,所W先将该些 描述文件保存下来,记录到队列中。此时,可W向客户端反馈成功的响应。
[0093] 然后,服务器从队列中依次读取描述文件,根据数据资源ID采用哈希方式将数据 分配到各服务器的各分表中。
[0094] 在配置文件中可W定义好服务器标识与哈希值的对应关系。该样,通过哈希值可 确定服务器。
[0095] 并且,不同服务器对应的哈希值的数量级可W不同。例如,哈希值在0-lW的范围 内对应的是服务器1,哈希值在1W-2W的范围内对应的是服务器2。该样,通过哈希值的数 量级可W确定服务器。
[0096] W下描述哈希值的生成方法。
[0097] 1.如果key值(此处KEY值是实例数据的资源ID经过hash后取的前16位。) 前0-12为数字,中间只允许一个为任意(非空、非换行)字符,后0-12为数字。则将匹配 到前部分数字md5加密后截取4位,再十六进制转十进制。
[009引 2.如果keyl6位中只包含数字字母,则截取key前4位,再十六进制转十进制。
[0099] 3.将key值md5后截取前4位,再十六进制转十进制。
[0100]
【主权项】
1. 一种数据的分发方法,其特征在于,包括: 接收至少一条实例数据; 将至少一条所述实例数据记录在队列中; 从所述队列中依次获取至少一条所述实例数据; 将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储 在所述服务器的所述分表中。
2. 根据权利要求1所述的方法,其特征在于,所述将至少一条所述实例数据分发到至 少一个服务器的一分表中的步骤包括: 根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述 分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。
3. 根据权利要求2所述的方法,其特征在于,所述根据所述实例数据的ID与所述服务 器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系,将至少一条所述 实例数据分发到至少一个服务器的一分表中的步骤之前,所述方法还包括: 建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述 分表之间的对应关系。
4. 根据权利要求3所述的方法,其特征在于,所述建立所述实例数据的ID与所述服务 器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系的步骤包括: 对所述实例数据的ID,进行哈希hash算法,生成所述实例数据的ID的哈希值; 建立所述哈希值与所述服务器的标识之间的对应关系; 建立所述哈希值与所述分表的标识之间的对应关系。
5. 根据权利要求4所述的方法,其特征在于,所述建立所述哈希值与所述服务器的标 识之间的对应关系的步骤包括: 根据哈希值的数量级,建立所述哈希值与所述服务器的标识之间的对应关系。
6. 根据权利要求1所述的方法,其特征在于, 所述一条实例数据为一视频文件的一描述文件。
7.-种数据的分发装置,其特征在于,包括: 接收单元,接收至少一条实例数据; 记录单元,将至少一条所述实例数据记录在队列中; 获取单元,从所述队列中依次获取至少一条所述实例数据; 分发单元,将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实 例数据存储在所述服务器的所述分表中。
8. 根据权利要求7所述的装置,其特征在于,所述分发单元具体为: 根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述 分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。
9. 根据权利要求7所述的装置,其特征在于,还包括: 建立单元,建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据 的ID与所述分表之间的对应关系。
10. 根据权利要求9所述的装置,其特征在于,所述建立单元包括: 生成单元,对所述实例数据的ID,进行哈希hash算法,生成ID的哈希值; 第一建立单元,建立所述哈希值与所述服务器的标识之间的对应关系; 第二建立单元,建立所述哈希值与所述分表的标识之间的对应关系。
【专利摘要】本发明公开了一种数据的分发方法及装置。所述数据的分发方法,包括:接收至少一条实例数据;将至少一条所述实例数据记录在队列中;从所述队列中依次获取至少一条所述实例数据;将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。本发明将数据分发给多个服务器进行数据分散存储,使数据均匀的分布在集群数据服务器中,解决了海量大数据的存储与快速读取的问题,能够减少主服务器的工作负荷,提高后续对数据的处理速度。
【IPC分类】H04N21-231, H04N21-262, H04N21-232
【公开号】CN104822076
【申请号】CN201510176021
【发明人】杨乾磊
【申请人】天脉聚源(北京)传媒科技有限公司
【公开日】2015年8月5日
【申请日】2015年4月14日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1