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

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

Info

Publication number
CN103020078B
CN103020078B CN201110286149.7A CN201110286149A CN103020078B CN 103020078 B CN103020078 B CN 103020078B CN 201110286149 A CN201110286149 A CN 201110286149A CN 103020078 B CN103020078 B CN 103020078B
Authority
CN
China
Prior art keywords
data
hash
label point
label
data storage
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
CN201110286149.7A
Other languages
English (en)
Other versions
CN103020078A (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

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采用双机热备的方式部署,系统运行时,只有NameServerActive对外提供服务;另外,假设取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 CN103020078A (zh) 2013-04-03
CN103020078B true 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)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866952B2 (en) * 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
CN103268318B (zh) * 2013-04-16 2016-04-13 华中科技大学 一种强一致性的分布式键值数据库系统及其读写方法
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 阿里巴巴集团控股有限公司 用于中间件消息的存储与传输方法及系统
CN104283966A (zh) * 2014-10-22 2015-01-14 浪潮(北京)电子信息产业有限公司 云存储系统的数据分布算法及其装置
CN104298541A (zh) * 2014-10-22 2015-01-21 浪潮(北京)电子信息产业有限公司 云存储系统的数据分布算法及其装置
CN104991741B (zh) * 2015-06-24 2018-02-02 江苏瑞中数据股份有限公司 一种基于键值模型的情境适配电网大数据存储方法
CN105320771A (zh) * 2015-10-31 2016-02-10 南京南瑞继保电气有限公司 基于哈希环的时间序列数据库服务集群的实现方法与系统
CN105930345A (zh) * 2016-04-05 2016-09-07 国网浙江省电力公司湖州供电公司 基于分布式实时数据库的层次索引方法
CN106528649B (zh) * 2016-10-14 2019-12-13 宁波华太车载技术有限公司 一种新能源汽车的海量数据存储检索系统和方法
CN109767247A (zh) * 2019-01-15 2019-05-17 武汉费米坊科技有限公司 一种分布式商品溯源系统及溯源方法
CN110275864B (zh) * 2019-06-11 2021-07-16 武汉深之度科技有限公司 索引建立方法、数据查询方法及计算设备
CN113315707B (zh) * 2021-05-26 2022-11-18 西安热工研究院有限公司 一种多站点级联模式数据传输中间件标签路由的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673289A (zh) * 2009-10-10 2010-03-17 成都市华为赛门铁克科技有限公司 分布式文件存储构架的构建方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404179B2 (en) * 2004-09-16 2008-07-22 International Business Machines Corporation Fast source file to line number table association
CN101692239B (zh) * 2009-10-19 2012-10-03 浙江大学 一种分布式文件系统元数据分配方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673289A (zh) * 2009-10-10 2010-03-17 成都市华为赛门铁克科技有限公司 分布式文件存储构架的构建方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
分布式存储系统中一致性哈希算法的研究;杨彧剑等;《电脑知识与技术》;20110810;第7卷(第22期);期刊第2-4节 *

Also Published As

Publication number Publication date
CN103020078A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN103020078B (zh) 分布式实时数据库数据层次索引方法
CN104820714B (zh) 基于hadoop的海量瓦片小文件存储管理方法
Padhy et al. RDBMS to NoSQL: reviewing some next-generation non-relational database’s
US7702640B1 (en) Stratified unbalanced trees for indexing of data items within a computer system
CN106372136B (zh) 分布式缓存系统、方法及存储介质
US10275489B1 (en) Binary encoding-based optimizations at datastore accelerators
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和系统
CN103327052B (zh) 数据存储方法和系统以及数据访问方法和系统
WO2016183539A1 (en) Data partitioning and ordering
CN111427847B (zh) 面向用户自定义元数据的索引与查询方法和系统
CN105930345A (zh) 基于分布式实时数据库的层次索引方法
CN103294785B (zh) 一种基于分组的元数据服务器集群管理方法
EP2050001A2 (en) System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications
CN103020315A (zh) 一种基于主从分布式文件系统的海量小文件存储方法
WO2009004620A2 (en) Method and system for data storage and management
CN104657459A (zh) 一种基于文件粒度的海量数据存储方法
US11151081B1 (en) Data tiering service with cold tier indexing
CN113986873A (zh) 一种海量物联网数据模型化的处理、存储与共享方法
KR20110010736A (ko) 계층적 데이터의 페이징
CN109542861A (zh) 一种文件管理方法、装置和系统
CN109284273A (zh) 一种采用后缀数组索引的海量小文件查询方法及系统
CN105357247A (zh) 基于分层云对等网络的多维属性云资源区间查找方法
CN102378407B (zh) 一种物联网中的对象名字解析系统及其解析方法
CN102591935A (zh) 一种分布式数据存储管理方法及系统
CN109189341A (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
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.

CP01 Change in the name or title of a patent holder