CN103020078A - 分布式实时数据库数据层次索引方法 - Google Patents

分布式实时数据库数据层次索引方法 Download PDF

Info

Publication number
CN103020078A
CN103020078A CN2011102861497A CN201110286149A CN103020078A CN 103020078 A CN103020078 A CN 103020078A CN 2011102861497 A CN2011102861497 A CN 2011102861497A CN 201110286149 A CN201110286149 A CN 201110286149A CN 103020078 A CN103020078 A CN 103020078A
Authority
CN
China
Prior art keywords
data
hash
label point
data storage
node
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
CN2011102861497A
Other languages
English (en)
Other versions
CN103020078B (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.)
CHINA REALTIME DATABASE CO LTD
State Grid Corp of China SGCC
Original Assignee
CHINA REALTIME DATABASE Co Ltd
State Grid Corp of China SGCC
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 CHINA REALTIME DATABASE Co Ltd, State Grid Corp of China SGCC filed Critical CHINA REALTIME DATABASE Co Ltd
Priority to CN201110286149.7A priority Critical patent/CN103020078B/zh
Publication of CN103020078A publication Critical patent/CN103020078A/zh
Application granted granted Critical
Publication of CN103020078B publication Critical patent/CN103020078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明属于分布式实时数据库领域,提供了一种分布式环境下的实时数据库层次索引方法,该方法在实现实时数据库分布式的条件下,将数据存储服务器对应哈希键值,并首尾相连构成环形哈希空间,并建立数据层次索引方法,保证了实时数据库数据的高效存储和检索。

Description

分布式实时数据库数据层次索引方法
技术领域
本发明属于分布式实时数据库领域,特别是涉及一种分布式实时数据库数据的层次索引方法。
背景技术
随着计算机技术的发展以及自动化水平的提高,出现了很多对数据的存取和管理具有时间约束的应用,例如电力***调度、工业控制、证券交易、航空航天等等。这些应用通常需要实时对监控设备进行采样以了解***运行最新状况,因而采集频率非常高,达到每秒25、50甚至100帧;同时,指定时间内的所有数据必须完整保存,从而需要维护海量的数据;并且要求在指定的时刻或时间范围内对数据进行采集、处理并作出正确响应,具有明显的时效性。如此海量、实时、高频的数据,传统的关系型数据库无论是存储还是检索都显得捉襟见肘,很难满足这些应用的需求。近年来,实时数据库的出现使得这些应用需求的实现成为可能。实时数据库是专门设计用来处理具有时间序列特性的数据库管理***,该***用于对上述领域实时、高频、海量数据进行存储管理。同时,为了提高***的扩展性、容错性以及存储检索速度,将实时数据库***分布式化。
整个分布式实时数据库***主要由两类节点,其一是中心控制服务器,整个***只有一个,主要存储***相关元数据,如每个数据存储服务器节点信息,数据分片信息,访问控制信息等;其二是数据存储服务器,整个***可以有多个,可以分步在不同的计算机,它主要用于分布式实时数据库数据的存储。客户端对数据的存储和检索首先向中心控制服务器发送请求,查询实际数据所在的数据存储服务器,然后再跟具体的数据存储服务器通信,实现数据的真正存储和检索。因而实际数据库数据的传输在客户端和数据存储服务器之间进行。
而在分布式实时数据库***中,索引技术的好坏直接影响着数据库的存储检索速度,本发明正是为了实现一种分布式环境下高效的实时数据库索引而开发实现的。
发明内容
本发明的目的是提供一种分布式环境下的实时数据库层次索引方法,该方法在实现实时数据库分布式的条件下,保证了实时数据库数据的高效存储和检索。
为了解决上述技术问题,本发明至少包括中心控制服务器、数据存储服务器,并首先构造了一个环形哈希空间,该空间构造方法如下:
将数据存储服务器通过一定哈希算法映射到n位的哈希键值,也即0~2^n-1次方的数值空间,然后将该空间首(0)尾(2^n-1)相连,构成环形哈希空间。
步骤A:***初始化,将数据存储服务器的特征标识码通过哈希算法映射到环形哈希空间,对应的哈希环空间值为该数据存储服务器节点的标识;
步骤B:***添加标签点,客户端发送加点请求给中心控制服务器,中心控制服务器根据请求标签点特征标识码计算该点名MD5值,通过与步骤1相同的哈希算法将该MD5值映射到环形哈希空间,并且按顺时针方向寻找数据存储服务器节点,第一个成功节点即为该标签点存放位置;******数据或查询数据时,向中心控制服务器发送请求,查找并确定标签点存放的数据存储服务器;
步骤C:客户端发送增加标签点、存储或检索数据请求,
请求增加标签点,对标签点特征标识码做哈希将待添加的标签点映射到标签点哈希表中;
存储或检索数据,数据存储服务器对标签点名做哈希,取得标签点信息,从而获取B+树索引根节点所在位置。
步骤D:确定存储或检索的标签点数据数据实际存放位置
从B+树根节点开始,对比每个索引节点索引的时间范围,确定遍历下一层索引节点的指针,层次搜索B+树索引节点,确定请求存储或检索数据的实际***或存放的数据节点位置。
本发明方法的有益效果是,可以在实现实时数据库分布式功能的条件下,保证实时数据库数据存储和检索的效率。同时,对每个标签点建立单独的B+树数据索引,标签点索引具有高度的独立性,从而使得分布式实时数据库每个数据存储服务器之间具有高度的自治性。
附图说明
附图1是支撑本发明方法的分布式实时数据库框架结构实例。
附图2是分布式实时数据库DataServer和TAG点在Hash环上的映射。
附图3是DataServer端TAG点PointHashTable以及TAG点内部数据的B+树索引结构。
具体实施方式
本发明中引用英文名称对应中文解释如下:
NameServer:中心控制服务器
DataServer:数据存储服务器
Client:客户端
TAG点:标签点
PointHashTable:标签点哈希表
PointConfigItem:标签点结构信息,标签点哈希表中单点的结构信息
PointName:PointConfigItem中的一个数据项,标签点名
PointID:PointConfigItem中的一个数据项,标签点名
RawHist:PointConfigItem中的一个数据项,指向真正的B+树根节点
Root:B+树根节点
IndexNode:B+树索引节点结构
DataNode:B+树数据节点结构
StartTime:某个节点存放(DataNode)或索引(IndexNode)数据的开始时间
EndTime:某个节点存放(DataNode)或索引(IndexNode)数据的结束时间。
本发明具体实施方式如下:包括中心控制服务器、数据存储服务器,并首先构造了一个环形哈希空间,该空间构造方法如下:
将数据存储服务器通过一定哈希算法映射到n位的哈希键值,也即0~2^n-1次方的数值空间,然后将该空间首(0)尾(2^n-1)相连,构成环形哈希空间。
步骤A:***初始化,首先对所有数据存储服务器根据特征标识码(如数据存储服务器的地址和端口),通过相应哈希算法将该特征码映射到环形哈希空间,对应到哈希环空间的某个值,作为该数据存储服务器节点的标识;
步骤B:***添加标签点的过程中,客户端发送加点请求给中心控制服务器,中心控制服务器根据请求标签点特征标识码(如点名,点ID)计算该点名MD5值,通过相同的哈希算法将该MD5值映射到环形哈希空间,并且按顺时针方向(哈希键值增大方向)寻找数据存储服务器节点,第一个成功节点即为该标签点存放位置;******数据或查询数据时,首先向中心控制服务器发送请求,查找相应标签点在哪个数据存储服务器,此为本方法层次索引第一层:确定标签点存放的数据存储服务器;
步骤C:在每个数据存储服务器内部,维护着一张存储每个标签点结构信息的标签点哈希表,记录着本数据存储服务器维护的所有标签点的点结构信息,标签点结构信息包括点名称,标签点ID,标签点B+树根节点所在位置等。客户端确定请求标签点所在数据存储服务器后,发送请求到标签点所在的数据存储服务器,如果是增加标签点,通过对标签点特征标识码(如点名,点ID等)做哈希将需要添加的标签点映射到标签点哈希表中的相应位置;如果是存储或检索数据,数据存储服务器通过对标签点名做哈希,取得标签点信息,从而获取B+树索引根节点所在位置。此为本方法层次索引第二层:确定标签点数据B+树索引存放位置;
步骤D:待确定标签点B+树索引所在位置后,如果请求是存储或者检索数据,***从B+树根节点开始,对比每个索引节点索引的时间范围,确定遍历下一层索引节点的指针,如此层次搜索B+树索引节点,最后确定请求存储或检索数据的实际***或存放的数据节点位置。此为本方法层次索引第三层:确定存储或检索的标签点数据数据实际存放位置。
假设整个分布式实时数据库***的框架结构图如附图1,包括7个DataServer和两个NameServer,两个NameServer采用双机热备的方式部署,***运行时,只有NameServer Active对外提供服务;另外,假设取32位的环形空间,也即0~2^32-1次方的数值空间。同时,假设当前***中存在17个TAG点,每个TAG点存放位置如附图1所示;TAG点根据PointName做Hash映射, DataServer根据所在机器的IP和对外提供服务的端口号做Hash 映射,经过映射后他们在Hash环上面的部署情况如附图2所示。下面结合附图详细说明本发明的存储数据和检索数据的实施例。
步骤1 当Client需要向某个TAG点如P11***数据时,Client首先发送请求给NameServer,询问PointName为P11的TAG点所在的DataServer,NameServer根据请求TAG点名称P11计算该点名MD5值,通过相同的Hash算法将该MD5值映射到环形Hash空间,并且按顺时针方向(Hash key值增大方向)寻找DataServer节点,发现P11的点在DataServer6上,于是NameServer将 DataServer6相关元信息(如DataServer6的IP地址和端口号等)发送给请求的Client;
步骤2 Client收到NameServer的回复后,解析数据包,取出P11点所在数据存储服务器DataServer6的IP地址和端口,然后将真正需要***的数据发送到DataServer6;
步骤3 DataServer6收到Client***数据的请求后,解析数据包,取出TAG点PointName为P11, 通过计算P11的Hash value确定P11结构信息在PointHashTable中的位置为j,对应结构信息为PointConfigItem[j]如附图3所示;
步骤4 DataServer6确定P11结构信息在PointHashTable中的位置后,从PointConfigItem[j]取出P11索引B+树的根节点所在位置RawHist;
步骤5 DataServer6从P11节点索引B+树根节点Root开始,对比StartTime和EndTime确定遍历下一层IndexNode的Pointer,如此层次搜索B+树IndexNode,最后确定请求存储数据的实际***或存放的DataNode,将数据经过压缩后,挂载到相应的IndexNode,并修改相应的指针。同时,DataServer6发送回复信息给Client,返回***数据成功。至此,整个数据***过程结束。
数据的检索流程基本和数据***流程类似。另外,需要说明的是,第一次***数据时,***需要初始化B+树索引;在数据***或删除过程中,B+树可能会出现节点的***或合并,还有存储或检索过程中的错误处理机制,诸如此类,本发明不再累述。
本发明按照优选实施例进行了说明,应当理解,上述实施例不以任何形式限定本发明。比如实际***部署过程中,每个DataServer上存储的TAG点成千上万甚至几十万,DataServer的数量也会根据用户的具体存储需求不同而不一样。因此凡采用等同替换或等效变换的形式所获得的技术方案,均落在本发明的保护范围之内。

Claims (1)

1.一种分布式实时数据库数据层次索引方法,所述数据库至少包括中心控制服务器、数据存储服务器,将每个数据存储服务器对应哈希键值,并首尾相连构成环形哈希空间,其特征在于:
步骤A:***初始化,将数据存储服务器的特征标识码通过哈希算法映射到环形哈希空间,对应的哈希环空间值为该数据存储服务器节点的标识;
步骤B:***添加标签点,客户端发送加点请求给中心控制服务器,中心控制服务器根据请求标签点特征标识码计算该点名MD5值,通过与步骤1相同的哈希算法将该MD5值映射到环形哈希空间,并且按顺时针方向寻找数据存储服务器节点,第一个成功节点即为该标签点存放位置;******数据或查询数据时,向中心控制服务器发送请求,查找并确定标签点存放的数据存储服务器;
步骤C:客户端发送增加标签点、存储或检索数据请求,
请求增加标签点,对标签点特征标识码做哈希将待添加的标签点映射到标签点哈希表中;
存储或检索数据,数据存储服务器对标签点名做哈希,取得标签点信息,从而获取B+树索引根节点所在位置;
步骤D:确定存储或检索的标签点数据数据实际存放位置
从B+树根节点开始,对比每个索引节点索引的时间范围,确定遍历下一层索引节点的指针,层次搜索B+树索引节点,确定请求存储或检索数据的实际***或存放的数据节点位置。
CN201110286149.7A 2011-09-24 2011-09-24 分布式实时数据库数据层次索引方法 Active CN103020078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110286149.7A CN103020078B (zh) 2011-09-24 2011-09-24 分布式实时数据库数据层次索引方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110286149.7A CN103020078B (zh) 2011-09-24 2011-09-24 分布式实时数据库数据层次索引方法

Publications (2)

Publication Number Publication Date
CN103020078A true CN103020078A (zh) 2013-04-03
CN103020078B CN103020078B (zh) 2017-11-03

Family

ID=47968693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110286149.7A Active CN103020078B (zh) 2011-09-24 2011-09-24 分布式实时数据库数据层次索引方法

Country Status (1)

Country Link
CN (1) CN103020078B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库***及其读写方法
CN103544569A (zh) * 2013-10-28 2014-01-29 珠海许继芝电网自动化有限公司 一种基于全配网的供电路径分析方法及***
CN104283966A (zh) * 2014-10-22 2015-01-14 浪潮(北京)电子信息产业有限公司 云存储***的数据分布算法及其装置
CN104298541A (zh) * 2014-10-22 2015-01-21 浪潮(北京)电子信息产业有限公司 云存储***的数据分布算法及其装置
CN104794119A (zh) * 2014-01-17 2015-07-22 阿里巴巴集团控股有限公司 用于中间件消息的存储与传输方法及***
CN104991741A (zh) * 2015-06-24 2015-10-21 江苏瑞中数据股份有限公司 一种基于键值模型的情境适配电网大数据存储方法
CN105320771A (zh) * 2015-10-31 2016-02-10 南京南瑞继保电气有限公司 基于哈希环的时间序列数据库服务集群的实现方法与***
CN105930345A (zh) * 2016-04-05 2016-09-07 国网浙江省电力公司湖州供电公司 基于分布式实时数据库的层次索引方法
CN103646107B (zh) * 2013-12-25 2017-02-08 重庆梅安森科技股份有限公司 煤矿******中的rfid中间件事件处理方法
CN106528649A (zh) * 2016-10-14 2017-03-22 宁波华太车载技术有限公司 一种新能源汽车的海量数据存储检索***和方法
CN106933206A (zh) * 2015-10-09 2017-07-07 费希尔-罗斯蒙特***公司 分布式工业***中的独立于源的查询
CN109767247A (zh) * 2019-01-15 2019-05-17 武汉费米坊科技有限公司 一种分布式商品溯源***及溯源方法
CN110275864A (zh) * 2019-06-11 2019-09-24 武汉深之度科技有限公司 索引建立方法、数据查询方法及计算设备
CN113315707A (zh) * 2021-05-26 2021-08-27 西安热工研究院有限公司 一种多站点级联模式数据传输中间件标签路由的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080228763A1 (en) * 2004-09-16 2008-09-18 International Business Machines Corporation Fast Source File to Line Number Table Association
CN101673289A (zh) * 2009-10-10 2010-03-17 成都市华为赛门铁克科技有限公司 分布式文件存储构架的构建方法和装置
CN101692239A (zh) * 2009-10-19 2010-04-07 浙江大学 一种分布式文件***元数据分配方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080228763A1 (en) * 2004-09-16 2008-09-18 International Business Machines Corporation Fast Source File to Line Number Table Association
CN101673289A (zh) * 2009-10-10 2010-03-17 成都市华为赛门铁克科技有限公司 分布式文件存储构架的构建方法和装置
CN101692239A (zh) * 2009-10-19 2010-04-07 浙江大学 一种分布式文件***元数据分配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨彧剑等: "分布式存储***中一致性哈希算法的研究", 《电脑知识与技术》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268318B (zh) * 2013-04-16 2016-04-13 华中科技大学 一种强一致性的分布式键值数据库***及其读写方法
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库***及其读写方法
CN103544569A (zh) * 2013-10-28 2014-01-29 珠海许继芝电网自动化有限公司 一种基于全配网的供电路径分析方法及***
CN103646107B (zh) * 2013-12-25 2017-02-08 重庆梅安森科技股份有限公司 煤矿******中的rfid中间件事件处理方法
CN104794119B (zh) * 2014-01-17 2018-04-03 阿里巴巴集团控股有限公司 用于中间件消息的存储与传输方法及***
CN104794119A (zh) * 2014-01-17 2015-07-22 阿里巴巴集团控股有限公司 用于中间件消息的存储与传输方法及***
CN104298541A (zh) * 2014-10-22 2015-01-21 浪潮(北京)电子信息产业有限公司 云存储***的数据分布算法及其装置
CN104283966A (zh) * 2014-10-22 2015-01-14 浪潮(北京)电子信息产业有限公司 云存储***的数据分布算法及其装置
CN104991741A (zh) * 2015-06-24 2015-10-21 江苏瑞中数据股份有限公司 一种基于键值模型的情境适配电网大数据存储方法
CN104991741B (zh) * 2015-06-24 2018-02-02 江苏瑞中数据股份有限公司 一种基于键值模型的情境适配电网大数据存储方法
CN106933206B (zh) * 2015-10-09 2021-07-06 费希尔-罗斯蒙特***公司 分布式工业***中的独立于源的查询
CN106933206A (zh) * 2015-10-09 2017-07-07 费希尔-罗斯蒙特***公司 分布式工业***中的独立于源的查询
CN105320771A (zh) * 2015-10-31 2016-02-10 南京南瑞继保电气有限公司 基于哈希环的时间序列数据库服务集群的实现方法与***
CN105930345A (zh) * 2016-04-05 2016-09-07 国网浙江省电力公司湖州供电公司 基于分布式实时数据库的层次索引方法
CN106528649A (zh) * 2016-10-14 2017-03-22 宁波华太车载技术有限公司 一种新能源汽车的海量数据存储检索***和方法
CN106528649B (zh) * 2016-10-14 2019-12-13 宁波华太车载技术有限公司 一种新能源汽车的海量数据存储检索***和方法
CN109767247A (zh) * 2019-01-15 2019-05-17 武汉费米坊科技有限公司 一种分布式商品溯源***及溯源方法
CN110275864A (zh) * 2019-06-11 2019-09-24 武汉深之度科技有限公司 索引建立方法、数据查询方法及计算设备
CN110275864B (zh) * 2019-06-11 2021-07-16 武汉深之度科技有限公司 索引建立方法、数据查询方法及计算设备
CN113315707A (zh) * 2021-05-26 2021-08-27 西安热工研究院有限公司 一种多站点级联模式数据传输中间件标签路由的方法
CN113315707B (zh) * 2021-05-26 2022-11-18 西安热工研究院有限公司 一种多站点级联模式数据传输中间件标签路由的方法

Also Published As

Publication number Publication date
CN103020078B (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
CN103020078A (zh) 分布式实时数据库数据层次索引方法
US8271545B2 (en) Database partitioning by virtual partitions
CN102737127B (zh) 一种海量数据存储方法
CN107832401B (zh) 数据库数据访问方法、***、装置及计算机可读存储介质
CN107391758B (zh) 数据库切换方法、装置及设备
CN104820714B (zh) 基于hadoop的海量瓦片小文件存储管理方法
CN102164186B (zh) 一种实现云搜索服务的方法及***
CN102855239B (zh) 一种分布式地理文件***
CN105160039A (zh) 一种基于大数据的查询方法
CN105138615A (zh) 一种构建大数据分布式日志的方法和***
CN107247778A (zh) 用于实施可扩展数据存储服务的***和方法
CN105608188A (zh) 数据处理方法和数据处理装置
CN101170416A (zh) 网络数据存储***及其数据访问方法
CN103412916A (zh) 一种监控***的多维度数据存储、检索方法及装置
CN105117502A (zh) 一种基于大数据的检索方法
CN103067461A (zh) 一种文件的元数据管理***以及元数据管理方法
CN105930345A (zh) 基于分布式实时数据库的层次索引方法
CN104391908B (zh) 一种图上基于局部敏感哈希的多关键字索引方法
CN106055678A (zh) 一种基于hadoop的全景大数据分布式存储方法
CN106777387A (zh) 一种基于HBase的物联网大数据存取方法
CN102968456B (zh) 一种栅格数据读取处理方法和装置
CN103324763A (zh) 一种手机端树形数据结构的展现方法
CN102591935A (zh) 一种分布式数据存储管理方法及***
CN102378407B (zh) 一种物联网中的对象名字解析***及其解析方法
CN105787090A (zh) 一种电力数据的olap***的索引建立方法和***

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100031 Xicheng District West Chang'an Avenue, No. 86, Beijing

Patentee after: STATE GRID CORPORATION OF CHINA

Patentee after: CHINA REALTIME DATABASE Co.,Ltd.

Address before: 100031 Xicheng District West Chang'an Avenue, No. 86, Beijing

Patentee before: State Grid Corporation of China

Patentee before: CHINA REALTIME DATABASE Co.,Ltd.