基于云计算的大数据检索方法

文档序号:9453156阅读:492来源:国知局
基于云计算的大数据检索方法
【技术领域】
[0001]本发明涉及数据处理,特别涉及一种基于云计算的大数据检索方法。
【背景技术】
[0002]云计算系统能够提供海量存储、可靠服务,因此日益受到重视。在云基础设施中,由成千上万台互相连接在一起的计算机构成提供服务的“云”,大量的用户可以同时共享这块“云”,并根据自己的实际需求对所需资源进行剪裁。作为云数据处理中的一个重要组成部分,当前的云存储系统绝大部分都采用分布式散列表的方式来构建索引,数据被组织成键值对的形式。因此,这类云存储系统只支持关键字查找,并通过点式检索来访问数据。然而,在对于如今发展起来的大数据的实际应用中,用户可能倾向于采用多个键值来进行多维度检索,此时现有的解决方案只能通过运行一个后台批处理任务来扫描整个数据集然后得到检索结果。然而,这类解决方案缺乏实时性,新存入的数据元组不能被及时地检索到,必须等到后台的批处理任务完成扫描才可被检索。

【发明内容】

[0003]为解决上述现有技术所存在的问题,本发明提出了一种基于云计算的大数据检索方法,包括:
[0004]—种基于云计算的大数据检索方法,其特征在于,包括:
[0005]将云存储系统的索引结构分为主索引和本地索引两级,将数据内容存储于本地索引中,并在主索引中利用链式队列为所有的本地索引发布的元数据建立索引,通过元数据的关联实现检索。
[0006]优选地,所述将云存储系统的索引结构分为主索引和本地索引两级,进一步包括:
[0007]I)对下级的云存储系统的存储空间进行划分,按照等量和有序的原则设定好各本地索引管理的空间范围;
[0008]2)按照步骤I)分配好的本地索引管理的空间范围,将云存储系统中的数据映射到对应的本地索引中,当映射过程完成以后,各本地索引内部以及各本地索引之间均为有序;
[0009]3)下级的各本地索引分别将其最高级的节点发布到上级的主索引中,主索引通过下级发布过来的节点,构造全局的链式队列索引,然后将各本地索引关联起来,构成完整的索引空间;
[0010]4)下级各本地索引逐步向下进行节点的迭代发布,根据发布后预估的检索速度增加比和发布后主索引内存占用的增长比,来判断是否要继续向下发布本地索引的节点;若预估检索速度增加比低于主索引内存占用增加比,则停止向下级发布。
[0011]优选地,所述通过元数据的关联实现检索,进一步包括:
[0012]首先以主索引作为检索的入口,通过检索主索引,来确定实际包含待检索数据的本地索引;其次,将检索处理转发给该本地索引,由该本地索引检索到确定的数据后,直接返回给检索请求的发起者,具体步骤包括:
[0013]I)将待检索的区间发送给上级的云平台服务器,主索引以区间的下界作为检索的入口键,在主索引中进行检索;2)当上级的主索引根据下界的键定位到具体本地索引后,将检索处理转发给发布该键的下级本地索引;3)当本地索引接收到转发来的检索处理请求时,首先根据待检索的区间,遍历自己的索引,直至满足检索区间的上界为止;若待检索的区间已检索一个本地索引的管理范围,则将检索请求转发给该本地索引的后继兄弟,将检索到的数据集直接从本地索引返回给检索的请求端。
[0014]优选地:在提交数据更新之前,每个事务先检查在该事务读取数据后,有没有其他事务修改了该数据;如果其他事务有更新,将正在提交的事务进行回滚;所述的链式队列每个节点中还包含2个标志位和I个锁;其中,marked标志位用于标识该节点是否正在被删除;linked标志位标识该节点是否完全插入,即所有层次的指针域都更新完毕,每一个节点分别维护一个锁lock ;另外还定义2个哨兵节点head和tail,其键值分别为常数min_int 和 max_int ;
[0015]所述链式队列的定位操作首先从哨兵节点head的最高级开始查找,依次下降,每一级查找到待查询键值k所在位置或者哨兵节点tail停止,如果找到k对应的节点,则更新节点i表示该节点的最高级,记录其每级对应的前驱节点pre[i];
[0016]所述链式队列的插入操作包括:
[0017]I)首先调用定位操作,返回定位的结果,如果找到当前节点,即键值为k的节点已经存在,不能插入,否则,进入步骤2的操作;
[0018]2)对前驱节点数组pre自下向上加锁;
[0019]3)验证返回的pre和后继节点数组succ的下一节点是否发生变化,若pre和succ的下一节点发生变化,则先释放刚才的锁,然后重新定位pre和succ ;如果pre和succ都没有发生了变化,进行步骤4 ;
[0020]4)从底级开始向上进行插入操作,然后置I inked标志位为true,表示插入节点已经完全链接,最后释放所有的锁;
[0021]所述链式队列的删除操作将指定的节点删除,首先定位节点,然后判定当前节点的状态是否为完全链接,且没有正在被删除,如果该节点状态合理,则对该节点上锁,然而有可能该节点已经被其他线程删除,此时返回false,否则,置节点marked标志位为true然后自下向上对前驱节点上锁,如果succ和pre的状态发生改变,则释放之前的锁,然后重新定位节点;最后,进行节点的物理删除然后释放所有锁,返回true ;
[0022]所述链式队列的检索操作先通过定位查找节点的位置,然后返回检索结果,以及相应的前驱节点和后继节点;如果没有找到相应节点,当前节点正在被删除,或当前节点没有完全连接,则检索失败;如果找到了相应节点,并且该节点没有正在被删除且完全链接,则检索成功。
[0023]本发明相比现有技术,具有以下优点:
[0024]本发明提出了一种数据检索方法,有效支持多种形式的检索,可扩展性强,改善了主索引的并发性,动态实时性好,保证了索引结构整体负载均衡。
【附图说明】
[0025]图1是根据本发明实施例的基于云计算的大数据检索方法的流程图。
【具体实施方式】
[0026]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0027]本发明的一方面提供了一种基于云计算的大数据检索方法。图1是根据本发明实施例的基于云计算的大数据检索方法流程图。本发明利用自定义的索引结构,有效支持多种形式的检索,可扩展性强,且动态实时性好;利用划分和组合算法,解决局部服务器中的热点问题,保证了索引结构整体的负载均衡。此外,本发明还在上级主索引中引入链式队列,提尚了主索引的承载性能,改善了主索引的并发性,提尚整体索引的吞吐率。
[0028]本发明将整个索引结构分为上下两级,索引的数据具体存储在下级的索引中,而上级的索引则起到一个定位和导向的作用。在索引建立的时候,首先会对待索引的数据集进行分割,按照平均的原则,分成包含等量数据的子集(划分的个数与下级的本地索引服务器相等)。然后,划分好的数据子集与下级索引服务器一一对应,在各下级索引服务器中以链式队列为基础建立本地索引。在本地索引建立完成的基础上,各本地索引会选择一部分节点作为自己索引范围的“代表”,并发布到上级的主索引中。发布时,并不是直接将下级节点原封不动的拷贝给上级节点,而是抽取这些被发布节点的元数据(包括索引的键、本地索引服务器IP地址、本地索引服务器磁盘物理块号),仅将元数据发送到上级索引中,以达到减轻上级索引的内存开销,并存储更多节点的目的。主索引接收到下级各本地索引发布的元数据后,通过链式队列的形式将这些元数据组织成一个全局的索引
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1