[发明专利]一种在哈希表数据库中处理键值的方法和装置有效
申请号: | 201310300815.7 | 申请日: | 2013-07-17 |
公开(公告)号: | CN103345521A | 公开(公告)日: | 2013-10-09 |
发明(设计)人: | 鹿宝生;周立发;韩占校;王继群 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 马晓亚 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 哈希表 数据库 处理 键值 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体涉及数据库技术领域,尤其涉及一种在哈希表数据库中处理键值的方法和装置。
背景技术
当前,键值对(Key-Value)存储系统成为了数据库技术领域研发和应用的热点。作为传统关系型数据库的重要补充,键值对(Key-Value)存储系统不再支持传统关系型数据库的SQL(Structured Query Language)语句的复杂功能,并放弃了ACID(即,在数据库管理系统中的事务具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))的完整支持,因此,键值对存储系统规避了很大一部分复杂的设计,可以提供明显高于传统关系数据库的数据吞吐能力,具有良好的水平扩展能力,适合运行在一般的廉价PC服务器硬件上,在互联网公司的数据存储已经获得广泛的使用。
图1是键值对(Key-Value)存储模块的基本组织结构示意图。由图1可见,键(Key)和值(Value)是一一对应的,通过哈希表维护对应关系,依据键(Key)获得唯一的对应值(Value)的步骤为:1)对键(Key)取哈希值,获得在哈希表中的唯一节点;2)哈希表中的唯一节点记录了对应值(Value)的存储信息,依据该信息获得值(Value)。
对于持续增加的存储数据而言,键值对(Key-Value)存储系统具有很好的水平扩展能力。图2是对图1中的键值对存储模块进行扩展后的分布式存储架构示意图。在图2中,对于一个存储请求的处理流程为:1)接口路由模块202依据从存储请求方201接收到的存储请求中的Key,按照路由规则,将存储请求转发到相应的键值对存储模块203;2)键值对存储模块203处理存储请求。其中,路由规则可以使用整数取模和一致性哈希等成熟方法,但不限于使用这些成熟方法。
在数据存储的互联网应用场景中,还存在对集合数据的使用。集合数据指的是集合中所包含的一系列具有同样特性并且值不重复的数据。每一个集合和集合中的每一个集合数据,均可以使用一个唯一标识来表示。图3是集合与集合数据的关系示意图,其中,使用key1作为集合标识,使用key2作为集合中的集合数据301的集合数据标识,集合数据301还进一步包括多个属性字段3011,且不同的集合数据具有不同的集合数据标识key2。在互联网应用场景中,典型的集合数据的应用场景例如:
1)QQ好友关系链,此时集合标识key1为某个用户的QQ号码,集合数据标识key2为该用户的QQ好友的QQ号码;
2)微博应用中的粉丝与关注人,此时集合标识key1为某用户的微博帐号,集合数据标识key2为该用户的粉丝或关注人的微博帐号;
3)企业即时通讯中的员工信息,此时集合标识key1为企业帐号,集合数据标识key2为该企业下属的员工帐号。
在互联网应用场景中,对集合数据的使用有两个典型特点:
1)如图3所示,集合数据标识key2所代表的集合数据301,通常是包含多个属性字段3011的列式数据,比如在QQ好友关系链的应用场景中,除了要记录某个用户的QQ号码下的所有QQ好友的QQ号码,还需要记录每个QQ好友的一些基本信息,如昵称、性别、所在地等;
2)在集合下的集合数据是多个属性字段的列式数据的情况下,在某些场合需要按照某特定属性字段进行检索,同样以QQ好友关系链的应用场景为例,通常需要依据某特定属性字段例如“所在地”,快速检索满足相应条件的QQ好友信息。
基于互联网的海量应用(例如上述QQ、微博之类的社交应用),正在不断催生出海量的集合数据,同时又会带来海量的读写量。如何根据互联网应用场景中集合数据自身的特点来存储这些集合数据,以及如何提供高并发的读写服务,是基于互联网的数据存储领域面临的问题。
发明内容
有鉴于此,本发明实施例提供一种改进的在哈希表数据库中处理键值的方法和装置,来解决以上背景技术部分提到的技术问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310300815.7/2.html,转载请声明来源钻瓜专利网。