当前位置: 首页 > 专利查询>北京大学专利>正文

可扩展的高性能分布式查询处理方法及装置制造方法及图纸

技术编号:23890596 阅读:32 留言:0更新日期:2020-04-22 06:18
本发明专利技术提供了可扩展的高性能分布式查询处理方法及装置,应用于P2P网络系统中,所述P2P网络系统包括多个节点;本发明专利技术通过维护具有高容错和负载均衡的树形结构的P2P网络系统,将查询条件广播给P2P网络系统中的节点,节点在收到查询请求后,将本地满足查询条件的数据返回给P2P网络系统中的父节点,父节点将所有孩子节点返回的数据和本地的查询结果做去重和结算,将处理后的结果返回给该节点的父节点,以层层汇总的方式将数据返回给根节点。在上述过程中,采用采用了跳数优化的方法,延迟优化和邻居节点管理协议解决了针对基于图结构随机存储的分布式账本的查询功能的可扩展问题以及容错性问题。

Scalable high performance distributed query processing method and device

【技术实现步骤摘要】
可扩展的高性能分布式查询处理方法及装置
本专利技术涉及区块链
,特别是涉及一种可扩展的高性能分布式查询处理方法及一种可扩展的高性能分布式查询处理装置。
技术介绍
由于不可篡改性、匿名性和去中心化等特性,区块链技术得到了工业界和学术界的广泛关注,催生了大量区块链应用,包括比特币、以太坊等。传统区块链采用链式结构账本,通过全网共识机制维护全局统一的最长链,交易吞吐量低、交易费用高且不可扩展,使其不能应用于对实时性要求较高和高吞吐量的场景中,如银行和交易所等。针对这一问题,近期的区块链研究和实践中出现了一种新型的基于图结构的分布式账本,与链式账本不同,基于图结构的账本通常采用非工作量证明机制PoW的共识算法,在联盟链的应用场景中,为了进一步提高交易吞吐量,并没有采用数据全网同步的方式,而采用了随机化存储的策略,交易被随机存放到网络中的若干节点上,且共识算法基于所有相关节点的检索结果。这种基于图结构随机存储的分布式账本对交易的查询提出了两个挑战:一是要在节点数量和全网TPS(每秒钟的交易数量)增加的情况下,保证查询功能的可扩展性。二是在网本文档来自技高网...

【技术保护点】
1.可扩展的高性能分布式查询处理方法,其特征在于,所述方法应用于对等计算P2P网络系统中,所述P2P网络系统包括多个节点,所述节点中包括积极列表Active List和消极列表Passive List,所述Active List分为活跃列表Eager List和惰性列表Lazy List;其中,所述Active List中的节点数量为固定值,所述Eager List中存放的是在P2P网络系统上和该节点建立TCP连接的节点,用于传递消息;所述Lazy List中存放的是所述ActiveList除Eager List中的剩余节点,用于传递消息的摘要或消息的ID,用于P2P网络系统的优化和容错;所述...

【技术特征摘要】
1.可扩展的高性能分布式查询处理方法,其特征在于,所述方法应用于对等计算P2P网络系统中,所述P2P网络系统包括多个节点,所述节点中包括积极列表ActiveList和消极列表PassiveList,所述ActiveList分为活跃列表EagerList和惰性列表LazyList;其中,所述ActiveList中的节点数量为固定值,所述EagerList中存放的是在P2P网络系统上和该节点建立TCP连接的节点,用于传递消息;所述LazyList中存放的是所述ActiveList除EagerList中的剩余节点,用于传递消息的摘要或消息的ID,用于P2P网络系统的优化和容错;所述PassiveList中存放的是随机节点,用于替换ActiveList中断开连接的节点,保证节点和所述P2P网络系统中网络的连接;所述方法包括:
在所述P2P网络系统中,第一节点获得其父节点广播的查询请求,所述第一节点为所述P2P网络系统中的任一节点;
所述第一节点通过树形维护程序将所述查询请求广播给自身的孩子节点;所述孩子节点用于利用所述P2P网络系统的树形结构,将所述查询请求再广播给自身相应的孩子节点,自身相应的孩子节点重复上述广播步骤,直至将所述查询请求广播至该P2P网络系统上的所有节点;每个节点在收到查询的请求后,检索本地数据库,并等待其孩子节点的结果返回,当收集完所有的孩子节点返回的数据后,做结算和去重操作,并将结果返回给其父节点;经过层层反馈,当接收到用户查询请求的根节点收到所有孩子节点的返回结果时,做最终的结算和去重操作,生成最终查询结果,并将最终查询结果返回给该用户;
所述树形维护程序包括可扩展维护程序和容错性维护程序;
针对所述可扩展维护程序,所述方法包括:
所述第一节点在将所述查询请求广播给自身的孩子节点时,向自身的孩子节点中的第二节点发送IHAVE消息,所述IHAVE消息中包括消息ID;
所述第二节点检查自己是否已收到与所述消息ID对应的用于传递所述查询请求的NORMAL消息;
如果所述第二节点在超时时间内未收到与所述消息ID对应的NORMAL消息,则执行以下步骤:
所述第二节点生成用于修复所述P2P网络系统的GRAFT消息;所述GRAFT消息包括所述消息ID和接收所述IHAVE消息的请求;
所述第二节点将所述GRAFT消息发送给所述第一节点,并将所述第一节点从自身的LazyList中移动到EagerList中,使所述第一节点对所述P2P网络系统进行修复;
如果所述第二节点在超时时间内已收到与所述消息ID对应的NORMAL消息,则执行以下步骤:
所述第二节点计算IHAVE消息的接收跳数与NORMAL消息的接收跳数差;
所述第二节点判断所述跳数差是否超过跳数阈值;
若所述跳数差超过跳数阈值,所述第二节点对所述P2P网络系统进行修复;
针对所述容错性维护程序,所述方法包括:
当构成所述P2P网络系统的边的第一节点和第二节点之间的连接断开时,所述第一节点将所述第二节点从自身的EagerList中移除;
所述第一节点依次向其PassiveList中的第一目标节点发起查询请求;所述查询请求包括检查第一目标节点是否在线的指令和查询第一目标节点的LazyList的大小的指令;
所述第一节点接收各个第一目标节点针对查询请求返回的查询结果,根据所述查询结果中的延迟和各个第一目标节点的LazyList的大小,从所述第一目标节点中选择一个LazyList的大小最小且延迟最低的第二目标节点;
所述第一节点将第二目标节点加入自身的LazyList中,并利用LazyList中的节点作为替补边来对所述P2P网络系统进行修复。


2.根据权利要求1所述的方法,其特征在于,所述P2P网络系统包括BroadcastTree、MsgTransferProt和PartialView这3个协议,所述BroadcastTree负责P2P网络系统的维护工作;所述MsgTransferProt负责查询消息的广播和查询结果的验证传递;所述PartialView负责管理每个节点的邻居节点,所述邻居节点包括父节点和孩子节点;其中,所述ActiveList和所述PassiveList位于P2P网络系统的PartialView协议中;
所述每个节点中包括第一Map缓存、第二Map缓存以及第三Map缓存,第一Map缓存是ReceivedMsgMap,存放的是消息ID和消息的映射,用来缓存当前已经收到的消息,以便于响应其他尚未收到该消息的节点对该消息的请求;
第二Map缓存是NotReceivedMsgMap,缓存的是消息ID和发送该消息的节点的映射;当达到指定的时长时,仍未收到EagerList中的节点发送的该消息,触发Timer定时器,用于向发送该消息的节点请求该消息,并修复所述P2P网络系统;
第三Map缓存是TimingCacheMsgMap,负责缓存当前收到的消息,如果在指定的时间范围内收到LazyList中的节点发送的消息,比较两者的跳数来决定是否优化所述P2P网络系统。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第二节点收到消息时,通过所述ReceivedMsgMap检查是否已经收到所述IHAVE消息或NORMAL消息;
如果收到所述IHAVE消息或NORMAL消息,则丢弃该消息;
如果未收到所述IHAVE消息或NORMAL消息,则查看是否收到所述IHAVE消息或NORMAL消息的ID;
如果未收到,则丢弃该消息;否则,将所述IHAVE消息的ID或所述NORMAL消息的ID加入到NotReceivedMsgMap中,并将所述IHAVE消息或NORMAL消息设置为超时事件。


4.根据权利要求1所述的方法,其特征在于,针对所述容错性维护程序,所述方法还包括:
当所述第一节点中的PassiveList中的在线节点数量小于预设阈值时,所述第一节点生成一个固定的跳数TTL;
所述第一节点将带有该TTL的消息发送给其EagerList中的一个随机的第三目标节点;所述第三目标节点收到该消息后,把自己最新的PassiveList中的节点ID发送给第一节点,并将所述TTL减1,再随机发送给所述第三目标节点EagerList中的随机节点,重复上述步骤,直到所述TTL为0;
所述第一节点将所有收到的节点ID做汇总,随机从收到的所有节点中选M个,将这个M个节点加入到PassiveList中;其中,所述M=PassiveList中可存储的最大节点数减去PassiveList中当前存储的节点数。


5.根据权利要求1所述的方法,其特征在于,在所述第一节点加入所述P2P网络系统之前,所述方法包括:
所述第一节点获取所述P2P网络系统的部分拓扑信息,应用所述拓扑信息初始化自身的EagerList、LazyList和PassiveList;
当完成EagerList、LazyList和PassiveList的初始化后,所述第一节...

【专利技术属性】
技术研发人员:黄罡刘佳皓景翔蔡华谦
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1