首页> 中国专利> 一种分布式B+树索引系统及构建方法

一种分布式B+树索引系统及构建方法

摘要

本发明涉及一种分布式B+树索引系统及构建方法,其特征在于:它包括主服务器、事务服务器机群、索引服务器机群和版本控制服务器;事务服务器机群包括多个事务服务器,索引服务器机群包括多台索引服务器;主服务器负责管理META数据,并对索引服务器机群进行负载平衡调度;事务服务器机群负责对分布式文件系统中索引数据访问的事务控制;索引服务器机群负责管理和读写分布式文件系统中的索引数据。本发明提出了一种细粒度、小网络流量的索引事务机制,由于本发明的事务基本操作是基于B+树的键值粒度,事务基本操作在执行时只需要传输几十个字节的B+树索引键值对,因此本发明有效地实现了并发环境下索引数据的事务功能。

著录项

  • 公开/公告号CN101576915A

    专利类型发明专利

  • 公开/公告日2009-11-11

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN200910087072.3

  • 发明设计人 汤成;高军;王腾蛟;杨冬青;

    申请日2009-06-18

  • 分类号G06F17/30;H04L29/08;

  • 代理机构北京纪凯知识产权代理有限公司;

  • 代理人徐宁

  • 地址 100871 北京市海淀区颐和园路5号北京大学信息学院

  • 入库时间 2023-12-17 22:57:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-12

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20110608 终止日期:20140618 申请日:20090618

    专利权的终止

  • 2011-06-08

    授权

    授权

  • 2010-01-06

    实质审查的生效

    实质审查的生效

  • 2009-11-11

    公开

    公开

说明书

技术领域

本发明涉及一种数据索引系统及构建方法,特别是一种用于云存储环境下的分布式B+树索引系统及构建方法。

背景技术

随着互联网技术的发展和Web2.0时代的到来,由于应用过程中需要对海量数据进行处理和运算,这样的应用环境对Web应用数据管理系统的可扩展性、可靠性和高效性提出了更高的要求。随着云环境技术的日益成熟,云存储系统在如今Web数据管理方面体现出越来越明显的优势。

云存储是指通过机群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。现有的云存储系统如Bigtable、Hbase、PNUTS等,它们在对海量数据的索引方面都存在着一些不足,主要包括:1)现有系统都只有对数据的主键上的索引,缺乏对数据的其他属性的有效索引方式;如果客户端应用服务器需要依据数据的某些其他属性上的检索条件进行查询时,系统只能通过遍历所有数据的方式实施查询,从而使得查询效率非常低。2)现有系统在索引操作中缺乏有效的并发控制事务机制;这样的缺陷直接导致客户端应用服务器在使用索引接口时必须通过自己的编码来保证并发环境下的事务一致性,这使得客户端应用服务器的开发变得复杂,缺乏对不同索引操作的普适支持。

综上所述,为了在云存储系统中提供高效的结构化查询能力,开发一种有效的云存储系统下的索引系统有着重要的意义。

发明内容

针对上述问题,本发明的目的是提供一种在云存储环境下能够增强索引操作中的并发控制事务支持的分布式B+树索引系统及构建方法。

为实现上述目的,本发明采取以下技术方案:一种分布式B+树索引系统,其特征在于:它包括主服务器、事务服务器机群、索引服务器机群和版本控制服务器;所述事务服务器机群包括多个事务服务器,所述索引服务器机群包括多个索引服务器;所述主服务器负责管理META数据,并对所述索引服务器机群进行负载平衡调度;所述事务服务器机群负责对分布式文件系统中索引数据访问的事务控制;所述索引服务器机群负责管理和读写所述分布式文件系统中的索引数据;所述版本控制服务器负责在并发环境下所述索引服务器机群中的索引数据备份的一致性控制;云存储系统通过所述事务服务器机群向所述索引服务器机群并发起事务基本操作。

所述负载平衡调度包括当有新索引数据插入系统时,所述主服务器调度当前负载较低的所述索引服务器来管理所述新索引数据。

一种实现如权利要求1或2所述系统的分布式B+树索引构建方法,其步骤包括:1)云存储系统发起事务访问请求,事务服务器机群将所述事务访问请求分解为若干事务基本操作,同类事务基本操作组成事务基本操作序列;2)所述索引服务器根据所述事务基本操作序列中的读操作,读取分布式文件系统中的索引数据并进行备份;其余事务基本操作序列缓存在所述事务服务器机群中;3)各索引服务器结合有效性验证条件对事务基本操作序列进行事务有效性验证;4)如果所述事务服务器机群接收到的各个索引服务器的事务有效性验证返回结果都为成功,则执行步骤5);否则各个索引服务器从缓冲区中将所述事务访问请求的事务基本操作序列删除,所述事务服务器机群向所述云存储系统发送事务执行结果为失败;5)所述各索引服务器执行缓存在所述索引服务器机群中的除写操作之外的其余事务基本操作序列,之后将操作执行结果保存在副本中,执行写操作,返回提交成功结果给所述事务服务器机群,如果所述事务服务器机群收到的所有所述索引服务器的操作执行结果都为成功,则执行步骤6);如果存在某个索引服务器的操作执行结果为失败,各个索引服务器将所述副本删除,所述事务服务器机群向所述云存储系统发送事务执行结果为失败;6)所述各索引服务器将所述副本标记为已提交版本储存在所述分布式文件系统中;之后所述事务服务器机群向所述云存储系统发送所述操作执行结果的返回值;7)所述云存储系统将所述事务服务器机群的各个所述事务基本操作执行结果进行归并,得到满足所述事务访问请求的索引数据。

所述步骤2)中,主服务器对具有索引数据备份的索引服务器进行选择,选择相对空闲的索引服务器响应事务基本操作序列。

所述步骤3)中,所述有效性验证条件根据所述云存储系统设定的事务一致性级别定制。

所述步骤3)中,所述事务基本操作序列包括当前索引服务器正在执行的或已执行完成,但执行结束时间晚于当前事务基本操作序列开始时间的事务基本操作序列。

所述事务基本操作的类别包括获取下一个结点操作、读操作、写操作、分裂操作和合并操作。

本发明由于采取以上技术方案,其具有以下优点:1、本发明由于采用主服务器对各索引服务器进行负载平衡调度,使得索引结构具有良好的扩展性,支持依据主属性外的其他属性上的检索条件进行查询,从而提高查询效率。2、本发明的事务服务器将客户端发出的事务访问请求分解成若干个事物基本操作,再将事物基本操作按照类别组成事物基本操作序列发送到对应的索引服务器中,使得本发明的系统能够在云环境下显著得提高结构化查询的效率。3、本发明提出了一种细粒度、小网络流量的索引上的事务机制,由于本发明的事务基本操作是基于B+树的键值粒度,事务基本操作在执行时只需要传输几十个字节的B+树索引键值对,而现有方法的事务机制是基于B+树结点粒度,一般以几K个字节大小的B+树结点作为基本单位进行传输,因此本发明有效地实现了并发环境下索引数据的事务功能。

附图说明

图1是本发明分布式B+树索引系统框架示意图

图2是本发明分布式B+树索引中事务执行的流程示意图

具体实施方式

下面结合附图和实施例对本发明进行详细的描述。

本发明提供了一种基于云存储环境下的分布式B+树索引构建方法及系统,可以直接获取到满足用户查询条件的网页的存储位置信息,从而直接获取网页数据返回给用户,而不再需要遍历整个系统中保存的网页集合,极大地提高了索引效率。其中,B+树索引是一种综合效率较高的用于数据库索引的数据结构,其特点在于:所有的关键字都出现在叶子结点的链表中,且链表中的关键字恰好是有序的;搜索只有达到叶子结点才结束;搜索过程等价于在关键字全集内做一次二分查找;非叶子结点相当于叶子结点的索引,叶子结点相当于存储索引数据的数据层。

如图1所示,本发明的分布式B+树索引系统包括主服务器1、事务服务器机群2、索引服务器机群3和版本控制服务器4。其中,事务服务器机群2包括多个事务服务器21,索引服务器机群3包括多台索引服务器31。主服务器1负责管理分布式B+树索引系统中的META数据。当有新的索引服务器31进入索引服务器机群3时,由主服务器1对索引服务器机群3进行负载平衡调度使得系统具有良好的扩展性。当有新的索引数据插入分布式B+树索引系统时,主服务器1调度当前负载较低的索引服务器31来管理新索引数据。事务服务器机群2负责对分布式文件系统6中索引数据访问的事务控制,由事务服务器21将云存储系统5发出的事务访问请求分解成若干个由同类事务基本操作组成的事物基本操作序列,通过这些事务基本操作序列访问索引服务器机群3获得索引数据并返回云存储系统5。索引服务器机群3负责管理和读写分布式文件系统6中的索引数据,每台索引服务器31管理若干个B+树结点。版本控制服务器4负责在并发环境下索引服务器机群3中索引数据的一致性控制。索引数据存储在分布式文件系统6中,由索引服务器机群3通过相应的接口进行访问。云存储系统5不直接连接索引服务器机群3,而是通过事务服务器机群2向索引服务器机群3并发起事务基本操作。

本发明采用了数据备份技术来提高分布式B+树索引系统的访问效率,即当索引服务器31执行事务服务器机群2的读操作请求,从分布式文件系统6中读取索引数据后,版本控制服务器4将每个索引数据进行备份,之后将索引数据备份统一发送到索引服务器31上,通过版本控制服务器4来维护索引数据备份在各个索引服务器31上的一致性。本发明采用异步的方式对索引服务器机群3进行数据维护,即在创建一个B+树的结点时,由主服务器1选择一台索引服务器31作为该结点对应的索引主服务器;所有对当前结点的更新操作首先发送到其对应的索引主服务器上执行,当前索引主服务器执行完毕后通知版本控制服务器4;由版本控制服务器4在适当的时候将更新操作发送到存储当前索引数据备份的索引服务器31进行更新。当索引服务器机群3收到事务服务器机群2发出的事务基本操作序列时,由主服务器1对备份有相应索引数据备份的索引服务器31进行选择,选择其中相对“空闲”的索引服务器31来响应事务服务器机群2发出的事务基本操作序列。

如图2所示,本发明的分布式B+树索引系统的构建方法包括以下步骤:

1、云存储系统5发起事务访问请求,事务服务器机群2根据事务访问请求的操作内容,将当前事务访问请求分解为若干事务基本操作,同类事务基本操作组成事务基本操作序列。

本发明的实施例中,事务基本操作的种类包括:1)获取下一个结点操作getnext(ts,node,key),即返回搜索键值key时,与当前结点node相适应的下一级结点指针;2)读操作read(ts,node,keyset),即返回由当前结点node指定的键值key所对应的键值对keyset;3)写操作write(ts,node,keyset,valueset,op),即根据参数op所指定的操作类型的不同,对当前结点node进行对应的写操作,写操作的操作类型包括插入操作、删除操作和更新操作;4)分裂操作Split(ts,node1,node2),即将当前结点node分裂为两个结点node1和node2,node2为node1的右邻居;5)合并操作Merge(ts,node1,node2),即将当前结点node1和它的右邻居node2结点合并为一个新结点。

2、事务服务器机群2将事务基本操作序列中的各个读操作read发送给一个索引服务器31,将其余操作缓存在事务服务器机群2中。索引服务器31根据读操作read的请求读取分布式文件系统6中的索引数据,并通过上述的数据备份技术对索引数据进行备份。同时事务服务器机群2将云存储系统5的其他各类事务基本操作序列分别发送到索引服务器机群3的索引服务器31中。主服务器1对具有相应索引数据备份的索引服务器31进行选择,选择其中相对“空闲”的索引服务器31来响应这些事务基本操作序列。

3、各索引服务器31将接收到的事务基本操作序列保存在缓冲区中,并根据云存储系统5设定的事务一致性级别来定制事务有效性验证条件。结合事务有效性验证条件,以及当前索引服务器31正在执行的或已执行完成,但执行结束时间晚于当前事务基本操作序列开始时间的事务基本操作序列进行事务有效性验证。

4、如果事务服务器机群2接收到的各个索引服务器31的事务有效性验证返回结果都为成功,则事务有效性验证通过,执行步骤5;否则事务有效性验证返回结果为失败,事务服务器机群2向各个索引服务器31发送回滚请求,各个索引服务器31从缓冲区中将该事务访问请求的事务基本操作序列删除,事务服务器机群2向对应的云存储系统5发送事务执行结果为失败。

5、事务服务器机群2向各个索引服务器31发送事务提交请求,索引服务器31在收到事务提交请求后,执行索引服务器31的缓冲区中的除写操作write之外的其余事务基本操作序列,之后将操作执行结果保存在副本中。执行事务服务器机群2中的写操作write,将生成的副本写入分布式文件系统6中,返回提交成功结果给事务服务器机群2。如果事务服务器机群2收到的所有索引服务器31返回的操作执行结果都为成功,则执行步骤6;如果存在某个索引服务器31返回的操作执行结果为失败,事务服务器机群2向索引服务器机群3发送提交失败请求,各个索引服务器31将生成的副本删除,事务服务器机群2向对应的云存储系统5发送事务执行结果为失败。

6、事务服务器机群2向索引服务器机群3发出提交成功请求,各个索引服务器31从分布式文件系统6中读取生成的副本,并将其标记为已提交版本后储存在分布式文件系统6中,供当云存储系统5发起新的事务访问请求时读写。之后事务服务器机群2向对应的云存储系统5发送操作执行结果的返回值以及事务执行结果为成功。

7、云存储系统5将事务服务器机群2的各个事务基本操作执行的返回值进行归并,得到满足事务访问请求的索引数据。

下面通过一实施例,对本发明的方法和系统进一步说明:

现有一分布式文件系统6中存储了从新浪2008年8月至今的新闻网页集合,数据量约占400G字节,新闻网页集合中每个网页保存的属性有网页内容、标题、日期和作者的信息。假设现有用户请求查询所有从2008年8月8日到2008年9月1日之间作者为“沈飞”的新浪新闻网页,如果利用现有技术中的索引系统,云存储系统5只能通过遍历这400G字节的数据的方式进行查询;如果利用本发明的分布式B+树索引系统,云存储系统5查询流程如下:

i)云存储系统5向分布式B+树索引系统发出事务访问请求,事务访问请求的内容为分别查询日期为2008年8月8日至2008年9月1日间的网页以及作者索引值为“沈飞”的网页。

ii)分布式B+树索引系统在事务服务器机群2中将该事务访问请求分解为两类事务基本操作序列,包括若干个获取下一个结点操作getnext和若干个读操作read,并发送到相应的索引服务器31上执行。

iii)两个索引服务器31将各自收到的事务基本操作序列保存在缓冲区中,然后对事务有效性进行验证,如果事务有效性验证通过,则事务服务器机群2向索引服务器31发送事务提交请求,执行步骤iv);如果验证失败,则执行步骤v)。

iv)索引服务器31执行事务基本操作的序列,将执行结果保存在副本中,并提交执行成功结果给事务服务器机群2。

v)事务服务器机群2向各个索引服务器31发送回滚请求,各个索引服务器31从缓冲区中将该事务访问请求的事务基本操作序列删除,事务服务器21向对应的云存储系统5发送事务执行结果为失败。

vi)若所有索引服务器31都提交成功,则事务服务器机群2将获取索引服务器31返回的索引数据,即存储日期2008年8月8日至2008年9月1日间的网页的服务器及磁盘位置以及作者为“沈飞”的网页的服务器及磁盘位置,索引服务器31将该结果通过事务服务器21返回给云存储系统5,执行步骤vii)。若某个索引服务器31提交失败,则事务服务器机群2向索引服务器31发送删除各个副本的请求,并向对应的云存储系统5发送事务执行结果为失败。

vii)云存储系统5将这两个结果进行归并后,得到满足云存储系统5事务访问请求的索引数据所在分布式文件系统6中的服务器及磁盘位置列表,即获取网页数据的存储位置,再依据此列表获取网页数据并返回给云存储系统5。

综上所述,通过本发明的分布式B+树索引系统,云存储系统5可以直接获取到满足查询条件的网页的存储位置信息,从而直接从分布式文件系统6中获取网页数据返回给用户,而不再需要遍历整个分布式文件系统6中保存的网页集合。本发明的方法是一种细粒度、小网络流量的事务机制,由于事务基本操作是基于B+树的键值粒度,因此在执行事务基本操作时只需要传输几十个字节的B+树索引键值对,而现有方法的事务机制是基于B+树结点粒度,一般以几K个字节大小的B+树结点作为基本单位进行传输,因此本发明有效地实现了并发环境下索引数据的事务功能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号