CN102201986A - 非关系型数据库Cassandra中分区路由方法 - Google Patents

非关系型数据库Cassandra中分区路由方法 Download PDF

Info

Publication number
CN102201986A
CN102201986A CN2011101187952A CN201110118795A CN102201986A CN 102201986 A CN102201986 A CN 102201986A CN 2011101187952 A CN2011101187952 A CN 2011101187952A CN 201110118795 A CN201110118795 A CN 201110118795A CN 102201986 A CN102201986 A CN 102201986A
Authority
CN
China
Prior art keywords
node
routing
distance
relational database
cassandra
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.)
Pending
Application number
CN2011101187952A
Other languages
English (en)
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.)
SUZHOU LIANGJIANG TECHNOLOGY Co Ltd
Original Assignee
SUZHOU LIANGJIANG TECHNOLOGY 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 SUZHOU LIANGJIANG TECHNOLOGY Co Ltd filed Critical SUZHOU LIANGJIANG TECHNOLOGY Co Ltd
Priority to CN2011101187952A priority Critical patent/CN102201986A/zh
Publication of CN102201986A publication Critical patent/CN102201986A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种非关系型数据库Cassandra中分区路由方法。所述非关系型数据库Cassandra一个数据中心中每个节点在一定空间内随机被分配一个ID值,该ID值在本数据中心内是唯一的,这个ID在本代表其在环上的位置;每个节点都存储一张路由表,路由表内记录有按照离本节点的距离所选定的多个其他节点的IP信息;进行路由搜索时,根据节点间的距离由近到远进行递归查找,所述节点间的距离是通过对两节点的ID进行异或运算得到。本发明通过对现有路由方法进行改进,以异或算法为距离度量基础,有效提高了非关系型数据库Cassandra中的数据查询效率。

Description

非关系型数据库Cassandra中分区路由方法
技术领域
本发明涉及一种路由方法,尤其涉及一种非关系型数据库Cassandra中分区路由方法。
背景技术
Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。)Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。和其他数据库比较,Cassandra具有三个突出特点:
模式灵活 :使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。
真正的可扩展性 :Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。
多数据中心识别 :你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。
Cassandra分区路由方法的依据为Chord协议,更确切的说,Cassandra分区路由方法采用的算法是Chord协议的简化版实现。Chord是在2001年由麻省理工学院提出,其核心思想就是要解决在P2P应用中遇到的基本问题:如何在P2P网络中找到存在特定数据的节点。在Cassandra中,一个数据中心往往是由成千上万台廉价服务器组成,每台服务器被称为一个节点。在每台服务器中,数据都是以Key-value对存放,所以读操作就是按照请求的Key值去庞大的数据中心查找存在该key值对应的value的节点的过程。Cassandra具体路由算法如下:
系统中每个节点在一定空间内随机被分配一个ID值,代表其在环上的位置。每个节点都存储一张路由表,表内顺时针按照离本节点2、4、8、16、32.……2i的距离选定log2N个其他节点的IP信息来记录 。其每个节点存储的路由表格式如图2所示。如图1所示,一个具体的查询过程如下:
一个Key值的读请求从客户端到某个节点,该节点作为代理节点,对请求数据的Key值进行一致性哈希运算,得要一个键值,按照这个键值,根据集群组建时定下的复制策略来确定保存这个数据的n个节点的ID号,以查找其中一个节点为例,先从该代理节点的路由表中,找一个和该哈希得到的键值距离最近、并且存活在网络中的节点next(注:此距离即为key值哈希得到的键值和节点ID之间的差)。如果该节点的id巧合和上述根据请求Key值哈希得到的键值相等,那么你已经找到所要的节点。如果不相等,则到next进行递归查找。一般或需要经过多次查询才能找到数据所在的节点。这个次数是可以被证明小于等于log2N的。这就是Cassandra所用到的基本的路由思想。
现有Cassandra中分区路由方法的缺点是算法灵活性不足,比较死板,路由效率并不高,而且节点间如果存在大量路由信息,也会降低系统效率。存在此缺点的原因是,在Cassandra路由算法中,如图2所示,每个节点的路由表中第三列中只记录一个节点的信息,导致路由效率不高;而且,按照其第二列距离来说,此距离是由减法得到的,这里也有可以提升的空间。
发明内容
本发明所要解决的技术问题在于克服现有Cassandra中分区路由方法的缺点,提供一种具有更高效率的非关系型数据库Cassandra中分区路由方法。
本发明的思路是将Kad算法的思想引入现有Cassandra分区路由方法中,对现有分区路由方法进行改进,从而提高路由效率。
Kad(Kademlia,通常简称为Kad)是美国纽约大学的PetarP.Maymounkov和David Mazieres在2002年发布的一项研究结果。Kad算法是一种分布式哈希表(DHT)技术,不过和其他DHT实现技术比较,如chord等,Kad通过独特的以异或算法为距离度量基础,建立了一个全新的DHT拓扑算法,相比于其他算法,可以大大提高路由查询速度。具体而言,本发明采用以下技术方案:
一种非关系型数据库Cassandra中分区路由方法,所述非关系型数据库Cassandra一个数据中心中每个节点在一定空间内随机被分配一个ID值,该ID值在本数据中心内是唯一的,这个ID在本代表其在环上的位置;每个节点都存储一张路由表,路由表内记录有按照离本节点的距离所选定的多个其他节点的IP信息;进行路由搜索时,根据节点间的距离由近到远进行递归查找,所述节点间的距离是通过对两节点的ID进行异或运算得到。
进一步地,所述路由表中保存有与本节点距离为                                                
Figure 2011101187952100002DEST_PATH_IMAGE001
的节点信息,
Figure 923391DEST_PATH_IMAGE002
Figure 2011101187952100002DEST_PATH_IMAGE003
为预先设定的整数。
本发明将Kad算法的思想引入现有Cassandra分区路由方法中,以异或算法(XOR)为节点间距离的度量基础,并对路由表进行了修改。相比现有路由方法,本发明具有以下优点:
一.方便进行网络划分,节点按照二进制中每一bit的0或1建成一棵二叉树;
二.使每个节点保持的路由信息更丰富,同样是将整个网络按照划分成log2N份,在Cassandra原来的方法中中,是保持log2N个路由节点,但在本发明中,则是保存了log2N个队列,这样就保存了更多的节点,使得命中率更高。每个队列长度为配置值
Figure 692501DEST_PATH_IMAGE003
Figure 319923DEST_PATH_IMAGE003
是根据网络状态设置的常数),记录网络中对应节点区域的多个节点,并且根据活跃时间对这些节点进行换入换出。
附图说明
图1为现有Cassandra分区路由方法的流程图;
图2为现有Cassandra分区路由方法的路由表结构;
图3为本发明的路由表结构;
图4为本发明路由方法与现有路由方法的效率对比结果。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明:
本发明中,所述非关系型数据库Cassandra中每个节点在一定空间内随机被分配一个ID值,代表其在环上的位置;每个节点都存储一张路由表,路由表的结构如图3所示,我们可以将图3所示的路由表和现有技术的路由表(图2)进行比较。针对于每一个节点,在图2的路由表中,在与本节点减法对应距离的范围内只存放一个节点,(第二列表示与本节点的对应距离,第三例表示存储的节点)。而在本发明的路由表中,在与本节点对应的距离范围内,存放着若干个节点。其中,节点间的距离是通过对两节点的ID进行异或运算得到。在进行路由搜索时,按照以下步骤:
步骤1、接收到查询请求的节点将查询请求中的key值进行哈希,得到的哈希值即为所要查找目标节点的ID;
步骤2、将目标节点ID与本节点ID进行异或运算得到两节点的距离,查找路由表,看路由表对应的距离范围那一行第三列上,有无目标节点,如存在,直接返回目标节点;如不存在,则转步骤3;
步骤3、将该距离范围内那一行的第三列所存放的所有节点ID与目标节点ID异或,找出异或值最小的那个节点,以该节点为本节点执行步骤2,依次递归查找,直到返回目标节点。
具体而言,假设ID值为x的节点要查找ID值为y的节点,则按照以下的递归操作步骤进行路由查找:
第一步、将key值进行哈希,这个哈希函数可以具体应用时再定义。哈希得到的数值就是目标节点y。所以,过程演变成从x节点查找y节点。
第二步、对x、y异或计算出x与y的距离dis,即dis=x XOR y,XOR表示异或。根据dis属于的[2n,2n+1),求出n;在节点x的路由表中第n行中第三列中比较有无目标节点,如果存在,则将返回目标节点此该目标节点的信息,包括IP等。如果不存在,则将此行第三列中所有节点ID与目标节点ID进行异或,找出与目标节点异或值最小的那个节点z。
第三步、如果第二步中没有找到目标节点y,则路由到第二步最后得到的节点z进行从第二步开始的递归查找,直到查询出目标节点y,并返回。
为了验证本发明的有益效果,模拟了一个数据中心,其中有64个节点,每个节点各自存有Key-value对,并假设在某一随机节点查询某一key值,此需要路由到目标节点去取值。分别采用本发明方法与现有方法进行路由查找,并对比两种方法找到目标节点所需经过的路由节点数。最终得到的对比结果如附图4(截取了实验的一部分数据)所示,其中,第二列表示本节点即发起查找请求的节点,第三列表示要查找的目标节点,第四列和第五列表示依据改进前后算法,路由过程经过的节点。在十次实验中,原本算法需路由节点数44(将该表中第四列中所用显示到的节点相加)个,而本发明(即图中的改进算法)只需路由节点数33(将该表中第五列中所用显示到的节点相加)个。由此,相比现有方法,本发明的路由效率提升了25%。

Claims (3)

1.一种非关系型数据库Cassandra中分区路由方法,所述非关系型数据库Cassandra一个数据中心中每个节点在一定空间内随机被分配一个ID值,该ID值在本数据中心内是唯一的,这个ID代表其在环上的位置;每个节点都存储一张路由表,路由表内记录有按照离本节点的距离所选定的多个其他节点的IP信息;进行路由搜索时,根据节点间的距离由近到远进行递归查找,其特征在于,所述节点间的距离是通过对两节点的ID进行异或运算得到。
2.如权利要求1所述非关系型数据库Cassandra中分区路由方法,其特征在于,所述路由表中保存有与本节点距离为                                                
Figure 2011101187952100001DEST_PATH_IMAGE001
的节点信息,
Figure 684317DEST_PATH_IMAGE002
Figure 2011101187952100001DEST_PATH_IMAGE003
为预先设定的整数。
3.如权利要求2所述非关系型数据库Cassandra中分区路由方法,其特征在于,该方法包括以下步骤:
步骤1、接收到查询请求的节点将查询请求中的key值进行哈希,得到的哈希值即为所要查找目标节点的ID;
步骤2、将目标节点ID与本节点ID进行异或运算得到两节点的距离,查找路由表,看路由表对应的距离范围那一行第三列上,有无目标节点,如存在,直接返回目标节点;如不存在,则转步骤3;
步骤3、将该距离范围内那一行的第三列所存放的所有节点ID与目标节点ID异或,找出异或值最小的那个节点,以该节点为本节点执行步骤2,依次递归查找,直到返回目标节点。
CN2011101187952A 2011-05-10 2011-05-10 非关系型数据库Cassandra中分区路由方法 Pending CN102201986A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101187952A CN102201986A (zh) 2011-05-10 2011-05-10 非关系型数据库Cassandra中分区路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101187952A CN102201986A (zh) 2011-05-10 2011-05-10 非关系型数据库Cassandra中分区路由方法

Publications (1)

Publication Number Publication Date
CN102201986A true CN102201986A (zh) 2011-09-28

Family

ID=44662387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101187952A Pending CN102201986A (zh) 2011-05-10 2011-05-10 非关系型数据库Cassandra中分区路由方法

Country Status (1)

Country Link
CN (1) CN102201986A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737131A (zh) * 2012-06-21 2012-10-17 广州从兴电子开发有限公司 一种针对数据库重做日志的处理方法及系统
CN102737130A (zh) * 2012-06-21 2012-10-17 广州从兴电子开发有限公司 处理hdfs元数据的方法及系统
CN103020202A (zh) * 2012-12-06 2013-04-03 河海大学 一种基于字符串的复杂动态数据关系化解方法
CN103514201A (zh) * 2012-06-27 2014-01-15 阿里巴巴集团控股有限公司 一种非关系型数据库的数据查询方法和装置
CN103838770A (zh) * 2012-11-26 2014-06-04 中国移动通信集团北京有限公司 一种数据逻辑分区的方法和系统
CN106789632A (zh) * 2017-02-25 2017-05-31 郑州云海信息技术有限公司 一种大规模分布式存储系统的节点路由的方法
CN107463577A (zh) * 2016-06-06 2017-12-12 华为软件技术有限公司 一种数据存储系统以及数据查找方法
CN107491544A (zh) * 2017-08-25 2017-12-19 上海德拓信息技术股份有限公司 一种增强非关系型数据库分析能力的数据处理平台
CN109213760A (zh) * 2018-08-02 2019-01-15 南瑞集团有限公司 非关系数据存储的高负载业务存储及检索方法
CN111324633A (zh) * 2020-02-18 2020-06-23 杭州复杂美科技有限公司 一种区块链交易分布式缓存方法和系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1691619A (zh) * 2004-04-27 2005-11-02 国家数字交换系统工程技术研究中心 自组织网络的实现方法
CN101064649A (zh) * 2007-02-02 2007-10-31 华为技术有限公司 选举超级节点、搜索网络节点或资源的方法、装置及系统
CN101867527A (zh) * 2010-07-06 2010-10-20 重庆大学 基于物理位置的分层Chord路由方法
CN101997755A (zh) * 2009-08-28 2011-03-30 中国移动通信集团公司 映射信息交换的方法及映射节点

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1691619A (zh) * 2004-04-27 2005-11-02 国家数字交换系统工程技术研究中心 自组织网络的实现方法
CN101064649A (zh) * 2007-02-02 2007-10-31 华为技术有限公司 选举超级节点、搜索网络节点或资源的方法、装置及系统
CN101997755A (zh) * 2009-08-28 2011-03-30 中国移动通信集团公司 映射信息交换的方法及映射节点
CN101867527A (zh) * 2010-07-06 2010-10-20 重庆大学 基于物理位置的分层Chord路由方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《电脑知识与技术》 20101031 刘欣 "Cassandra数据库安全性分析与改进" 第9929-9931页 1-3 第6卷, 第35期 *
《程序员》 20100630 范凯 "NoSQL数据库综述" 第76-78页 1-3 , 第6期 *
刘欣: ""Cassandra数据库安全性分析与改进"", 《电脑知识与技术》 *
范凯: ""NoSQL数据库综述"", 《程序员》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737130A (zh) * 2012-06-21 2012-10-17 广州从兴电子开发有限公司 处理hdfs元数据的方法及系统
CN102737131A (zh) * 2012-06-21 2012-10-17 广州从兴电子开发有限公司 一种针对数据库重做日志的处理方法及系统
CN103514201A (zh) * 2012-06-27 2014-01-15 阿里巴巴集团控股有限公司 一种非关系型数据库的数据查询方法和装置
CN103838770A (zh) * 2012-11-26 2014-06-04 中国移动通信集团北京有限公司 一种数据逻辑分区的方法和系统
CN103020202A (zh) * 2012-12-06 2013-04-03 河海大学 一种基于字符串的复杂动态数据关系化解方法
CN103020202B (zh) * 2012-12-06 2015-10-28 河海大学 一种基于字符串的复杂动态数据关系化解方法
CN107463577B (zh) * 2016-06-06 2021-01-29 华为技术有限公司 一种数据存储系统以及数据查找方法
CN107463577A (zh) * 2016-06-06 2017-12-12 华为软件技术有限公司 一种数据存储系统以及数据查找方法
CN106789632A (zh) * 2017-02-25 2017-05-31 郑州云海信息技术有限公司 一种大规模分布式存储系统的节点路由的方法
CN107491544B (zh) * 2017-08-25 2020-12-29 上海德拓信息技术股份有限公司 一种增强非关系型数据库分析能力的数据处理平台
CN107491544A (zh) * 2017-08-25 2017-12-19 上海德拓信息技术股份有限公司 一种增强非关系型数据库分析能力的数据处理平台
CN109213760A (zh) * 2018-08-02 2019-01-15 南瑞集团有限公司 非关系数据存储的高负载业务存储及检索方法
CN109213760B (zh) * 2018-08-02 2021-10-22 南瑞集团有限公司 非关系数据存储的高负载业务存储及检索方法
CN111324633A (zh) * 2020-02-18 2020-06-23 杭州复杂美科技有限公司 一种区块链交易分布式缓存方法和系统、设备及存储介质

Similar Documents

Publication Publication Date Title
CN102201986A (zh) 非关系型数据库Cassandra中分区路由方法
JP5551270B2 (ja) ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
US7478120B1 (en) System and method for providing a peer indexing service
Ding et al. An efficient quad-tree based index structure for cloud data management
US7177867B2 (en) Method and apparatus for providing scalable resource discovery
JP2008533564A (ja) データ管理のための方法および装置
CN101753610A (zh) 分布式网络构造方法、装置和系统以及任务处理方法
Xu et al. Energy‐efficient big data storage and retrieval for wireless sensor networks with nonuniform node distribution
Hong et al. Efficient R-tree based indexing scheme for server-centric cloud storage system
Malensek et al. Expressive query support for multidimensional data in distributed hash tables
US20080097971A1 (en) Peer-to-peer based secondary key search method and system for cluster database
Trifa et al. A novel replication technique to attenuate churn effects
CN100536422C (zh) 对等网络及其网络资源查询方法
CN102378407A (zh) 一种物联网中的对象名字解析系统及其解析方法
Galluccio et al. Georoy: A location-aware enhancement to Viceroy peer-to-peer algorithm
CN107908713A (zh) 一种基于Redis集群的分布式动态杜鹃过滤系统及其过滤方法
Toda et al. Autonomous and distributed construction of locality aware skip graph
March et al. Multi-attribute range queries on read-only DHT
Baldoni et al. A self-organizing crash-resilient topology management system for content-based publish/subscribe
Liu et al. Design and optimization for distributed indexing scheme in switch-centric cloud storage system
CN115297131B (zh) 一种基于一致性哈希的敏感数据分布式储存方法
Villaça et al. HCube: Routing and similarity search in data centers
CN113179336B (zh) 面向亿量级大规模集群的分布式对等网络系统
Luo et al. Multi-dimensional hashing for fast network information processing in SDN
Knoll et al. A P2P-Framework for Context-based Information

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110928