基于云计算的大数据处理方法_3

文档序号:9524276阅读:来源:国知局
点是否存在,都需要记录其每级对应的前驱节点pre[i]。如果在某一级找到了 k对应的节点,贝lj在位于该级以下的当前节点succ的值显然都是相同的(即其自身节点),所以只需更新一次。Locate操作本身不用加锁,它的作用是返回一个3元组,表示定位的结果level,当前节点的位置succ,前驱节点的位置preds。
[0047]在插入操作中:
[0048]1)首先调用定位操作,返回定位的结果,如果找到当前节点,则说明键值为k的节点已经存在,不能插入。否则,进行接下来的插入操作。
[0049]2)对前驱节点数组pre自下向上加锁。
[0050]3)验证返回的pre和后继节点数组succ的下一节点是否发生变化。假如pre和succ的下一节点发生了变化,则先释放刚才的锁,然后重新定位pre和succ。如果pre和succ都没有发生了变化,进行下一步。
[0051]4)从底级开始向上进行插入操作,然后置linked标志位为true,表示插入节点已经完全链接,最后释放所有的锁。
[0052]删除操作将指定的节点删除,基本步骤和插入操作一样,首先定位节点,然后判定当前节点的状态是否合理,即该节点完全链接,且没有正在被删除。如果该节点状态合理,则对该节点上锁,然而有可能该节点已经被其他线程删除,此时返回false,否则,置节点marked标志位为true。接下来和插入操作一样,自下向上对前驱节点上锁,如果succ和pre的状态发生改变,则释放之前的锁,然后,重新定位节点。最后,进行节点的物理删除,然后释放所有锁,返回true。
[0053]检索操作先通过定位查找节点的位置,然后返回检索结果,以及相应的前驱节点和后继节点。这里没有采用任何的锁机制和同步机制,因此,检索操作是无等待的。如果没有找到相应节点,当前节点正在被删除,或当前节点没有完全连接,则检索失败。如果找到相应节点,并且该节点没有正在被删除且完全链接,则是一次成功的检索。
[0054]综上所述,本发明提出了一种数据检索方法,有效支持多种形式的检索,可扩展性强,改善了主索引的并发性,动态实时性好,保证了索引结构整体负载均衡。
[0055]显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0056]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【主权项】
1.一种基于云计算的大数据处理方法,其特征在于,包括: 在云存储系统中建立两级索引,包括主索引和本地索引,当接收到用户检索请求时,以主索引作为唯一入口,通过主索引的定位将检索操作转到本地索引中以获取数据。2.根据权利要求1所述的方法,其特征在于,所述在云存储系统中建立两级索引,进一步包括: 首先对待索引的数据集进行分割,按照平均的原则,分成包含等量数据的子集,划分的个数与下级的本地索引服务器相等;然后将划分好的数据子集与下级索引服务器一一对应,在各下级索引服务器中以链式队列为基础建立本地索引;各本地索引选择一部分节点作为自己索引范围的代表,并发布到上级的主索引中;发布时,抽取这些被发布节点的元数据,所述元数据包括索引的键、本地索引服务器IP地址、本地索引服务器磁盘物理块号,并仅将元数据发送到上级主索引中;主索引接收到下级各本地索引发布的元数据后,通过链式队列的形式将这些元数据组织成一个全局的索引,在逻辑上将下级各独立的本地索引关联起来;上级的主索引作为整个索引的入口,通过主索引的定位,检索操作转到下级某一个具体的本地索引上,最终在下级找到需要的数据,然后返回;其中,在本地索引发布向上级发布节点时,采用自顶向下的方式逐步增加发布的主节点数量,首先,每一个本地索引将最高级的节点发布到主索引中,接着各本地索引根据发布后预估的检索速度增加比和发布后主索引内存占用的增长比来判断是否要继续往下级发布,在向下扩展发布的时候,仅将之前没有包含的新节点的元数据发送给上级的主索引,即仅在主索引中插入之前没有的节点。3.根据权利要求2所述的方法,还包括:在提交数据更新之前,每个事务先检查在该事务读取数据后,有没有其他事务修改了该数据;如果其他事务有更新,将正在提交的事务进行回滚;所述的链式队列每个节点中还包含2个标志位和1个锁;其中,marked标志位用于标识该节点是否正在被删除;linked标志位标识该节点是否完全插入,即所有层次的指针域都更新完毕,每一个节点分别维护一个锁lock ;另外还定义2个哨兵节点head和tail,其键值分别为常数min_int和max_int ; 所述链式队列的定位操作首先从哨兵节点head的最高级开始查找,依次下降,每一级查找到待查询键值k所在位置或者哨兵节点tail停止,如果找到k对应的节点,则更新节点i表示该节点的最高级,记录其每级对应的前驱节点pre[i]; 所述链式队列的插入操作包括: 1)首先调用定位操作,返回定位的结果,如果找到当前节点,即键值为k的节点已经存在,不能插入,否则,进入步骤2的操作; 2)对前驱节点数组pre自下向上加锁; 3)验证返回的pre和后继节点数组succ的下一节点是否发生变化,若pre和succ的下一节点发生变化,则先释放刚才的锁,然后重新定位pre和succ ;如果pre和succ都没有发生了变化,进行步骤4; 4)从底级开始向上进行插入操作,然后置1inked标志位为true,表示插入节点已经完全链接,最后释放所有的锁; 所述链式队列的删除操作将指定的节点删除,首先定位节点,然后判定当前节点的状态是否为完全链接,且没有正在被删除,如果该节点状态合理,则对该节点上锁,然而有可能该节点已经被其他线程删除,此时返回false,否则,置节点marked标志位为true然后自下向上对前驱节点上锁,如果succ和pre的状态发生改变,则释放之前的锁,然后重新定位节点;最后,进行节点的物理删除然后释放所有锁,返回true ; 所述链式队列的检索操作先通过定位查找节点的位置,然后返回检索结果,以及相应的前驱节点和后继节点;如果没有找到相应节点,当前节点正在被删除,或当前节点没有完全连接,则检索失败;如果找到相应节点,并且该节点没有正在被删除且完全链接,则检索成功。
【专利摘要】本发明提供了一种基于云计算的大数据处理方法,该方法包括:在云存储系统中建立两级索引,包括主索引和本地索引,当接收到用户检索请求时,以主索引作为唯一入口,通过主索引的定位将检索操作转到本地索引中以获取数据。本发明提出了一种数据检索方法,有效支持多种形式的检索,可扩展性强,改善了主索引的并发性,动态实时性好,保证了索引结构整体负载均衡。
【IPC分类】G06F17/30
【公开号】CN105279241
【申请号】CN201510633428
【发明人】赖真霖, 文君
【申请人】成都四象联创科技有限公司
【公开日】2016年1月27日
【申请日】2015年9月29日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1