一种基于相关关系的物联网uid查询方法

文档序号:6600009阅读:226来源:国知局
专利名称:一种基于相关关系的物联网uid查询方法
技术领域
本发明涉物联网的UID(UniqUe Identity)的管理方法,特别涉及一种基于相关关 系的物联网UID查询方法。
背景技术
物联网是一个新兴的概念。网联网中包含各种各样的物体,包括传统互联网中的 网络实体,各种传感器,执行器,虚拟物体等等。大量的网络中的物体要有一个合适的方法 来进行管理。在物联网中每个物体都分配了一个唯一的ID(UID),网络通过UID管理、访问 网络中的物体。传统的DHT查询以key为索引,经过DHT的路由将查询路由到存储要查询的key的 节点上,由该节点响应本次查询的key对应的value,即响应的内容。物联网中UID相当于 传统DHT中的key,在使用的时候,每次查询消息包含一个UID,经过DHT查询,一个UID对应 的内容被返回给查询点。在以后的叙述中,直接用key来统一 UID以达到表示的统一。如 附图1,从节点3发出一个查询包含key值为k7的查询消息,该key值被存储在节点6上, 该条查询消息经过DHT被路由到节点6上,随即返回查询结果。

发明内容
本发明的目的在于,为克服每次查询消息仅包含一个要查询的key信息导致查询 效率低下,从而提出一种基于相关关系的物联网UID查询方法。本发明中采用分布式的方式管理这些UID(其中物联网中UID相当于传统DHT中 的key),分布式的方式适合物联网的大规模的特点,同时适应物联网动态变化的特点。在本 发明中,分布式哈希表(DHT)作为一种成熟的并且广泛应用的分布式技术被采用为物联网 的底层UID底层管理技术。本发明提出的一种基于相关关系的物联网UID查询方法,该物联网的底层UID.管 理采用分布式哈希表DHT,所述的查询方法包含基于该查询方法的缓存算法和查询方法,该 查询方法步骤如下当用户有一个任务,在查询消息中包含两个要查询的key,在一次查询中如果隐含 key恰好缓存在存储做为本次查询消息中路由key的节点上,则当该查询消息被DHT路由到 该节点时,这两个key的查询将一次完成,这种情况称为相关查询“击中”;如果隐含key没 有缓存在存储作为本次查询消息中路由key的节点上,那这次查询则只能查到路由key,这 种情况称为相关查询的“未击中”,该隐含key将被作为下一次查询消息的路由key而进行 重新查询;其中,所述的查询消息中,位于查询消息的首位的 key称作“路由key”,之后的key 叫做“隐含key”,在DHT的路由过程中只有路由key在DHT路由中起作用;所述的缓存算法,使得包含所有用户的整个系统的相关查询的击中概率最大,具 体步骤为
首先,每个查询消息将被路由到存储查询消息的路由key的节点处,在该节点处 节点统计上面的系统条件概率,统计表达式为
ρ 二查询消息中认、}出现的次数 {'}=查询消息中&出现的次数然后,对得到的系统条件概率,在作为本次查询消息中路由key的节点上的key之 外的key的集合上取最大值,选择出来的、将被缓存在作为本次查询消息中路由key的节 点上,公式如下
max P{k. I k.}
、不在该节点上 t 7 1 “其中,Ici是0耵映射规则下作为本次查询消息中路由key的节点,PikjIkJ是系统 的条件概率。上述技术方案,所述的查询消息中包含的除了第一个的key的个数称作相关查询 的阶数;路由节点上允许的最多的缓存的不属于该节点的key的个数称作缓存的长度;其 中,所述的相关查询的阶数和缓存的长度两者之间关系式为缓存的长度>相关查询的阶数。上述技术方案,所述的相关查询的阶数和缓存的长度分别为1和大于等于1 ;其 中,如果缓存长度大于1时,将系统条件概率计算得到的值进行从大到小的排序,并选择排 在前若干位的节点存储在该路由节点上。作为本发明的一个改进,所述的缓存算法得到的缓存结果随系统动态变化,用滑 动窗反应该变化,具体步骤如下在每个节点处,预先设定一个合适长度的窗,每次有新的查询消息到来时该窗口 往前移动,用窗口中的查询key的数据进行统计,得到相应的条件概率;随着系统行为的变 化,统计出来的条件概率也会发生变化,然后更新条件概率和更新缓存;作为本发明的又一改进,在引进滑动窗口后设定一个门限值,当窗滑动前后两次 统计结果的差值超过该门限时更新条件概率和缓存的key,该门限值设定能够用于防止系 统的抖动。本发明的优点在于,减少UID的查询次数,从而减少查询时延、查询所需的带宽; 利用所要查询的量之间的关系,减少了查询次数,提高了系统性能;能够自适应的跟踪变化 的系统行为。


图1是传统的chord查询方式;图2是本发明的一种基于相关关系的物联网UID查询方法中包含多个key的查询 消息;图3是本发明提出的缓存方法在 各个存储节点的存储示意图;图4是本发明的基于不同查询序列对系统行为变化适应性的比较图。
具体实施例方式下面结合附图针对本发明的内容作进一步描述。为了实现该目的,本发明对DHT的查询过程做了改进。如果一个任务包含η个需 要查询的UID,在每个查询消息中包含多个待查询的UID,本发明以一个查询消息包含2个 要查询的UID为例进行说明。图2中给出了两种不同的查询消息,在上面的是传统的查询消息,每个查询消息 中只包含一个待查询的key ;在下面的是本发明中指出的包含多个key的查询消息,图示为 包含2个key的查询消息。在DHT的存储节点上做相应的缓存操作,原来一个节点上的key 被缓存到其它节点上。如果原来一个DHT节点上只存有一个key,那么经过一级缓存后,每 个节点上将存有2个key,如图3所示。查询消息中包含的除了第一个的key的个数称作相 关查询的阶数;节点上允许的最多的缓存的不属于该节点的key的个数称作缓存的长度。在查询消息中,位于查询消息的首位的key称作“路由key”,之后的key叫做“隐 含key”,因为在DHT的路由过程中,隐含key不参与,只有路由key在DHT路由中起作用。有了查询消息和存储节点两方面的改变,查询过程将有如下的改变,结果使得查 询次数与没有改变前会有减少。当用户有一个任务,其中包含多个key要查询时,在传统的 DHT查询中,这些key将一个一个被查询;而在改进后的查询系统中,以一阶相关查询为例, 在查询消息中可以包含两个要查询的key,在一次查询中如果隐含key恰好缓存在存储做 为本次查询消息中路由key的节点上,则当该查询消息被DHT路由到该节点时,这两个key 的查询将一次完成,这种情况称为相关查询“击中”;如果隐含key没有缓存在存储做为本 次查询消息中路由key的节点上,那这次查询则只能查到路由key,这种情况称为相关查询 的“未击中”,该隐含key将被作为下一次查询消息的路由key而进行查询。每次查询中路 由key是确定可以查到的,这和传统的DHT查询是一样的。相关查询系统的性能主要在于提高击中概率。在给定相关查询阶数、节点缓存长 度的情况下,如何在每个节点处选择缓存的key使得击中概率达到最大是缓存算法设计的 目的。同时用户行为是不断变化的,如何使得系统能够适应这种变化的用户行为也是算法 设计中要解决的问题。在一阶相关查询下,假设在DHT上的节点对节点上所存储的每一个key允许缓存 另一个本节点没有存储的key(由于分布式hash函数的性质,在DHT的节点上,每个节点所 存的key的个数是基本均衡的),下面叙述如何使得系统的击中概率最大。用户查询消息中打包的两个待查询的key能否一次完成关键在于查询消息中的 隐含key是否在存储查询消息中路由key的节点上,如果在,则击中,否则是未击中。对系 统而言,设计的目 标是使得包含所有用户的整个系统的相关查询的击中概率最大,而不是 某一个用户的击中概率最大。在每一个节点处,对存储在其上的每一个key,做为路由key, 根据系统的用户行为选择以该key为条件的没有存储在该节点上的条件概率最大的key缓 存在该节点上。每个节点处使用的规则是,
max P{k. I k.\
…不在该节点上 vV1 lJ1^是DHT映射规则下存储在节点上的key,P {、|kj是系统的条件概率。用这个规则选择出来的、将被缓存在该节点处。对系统的条件概率的统计在节点上进行。在相关查询系统中,每个查询消息将被 路由到存储查询消息的路由key的节点处,这样在该节点处节点能够统计上面的条件概 率,统计表达式为
ρ查询消息中认人.}出现的次数
{查询消息中&出现的次数用这个统计的条件概率来代替规则中的条件概率即可以得到系统最大击中概率 的缓存结果。系统中用户的行为是变化的,本发明提出滑动窗的方法来适应系统行为的变化, 使得系统能够在变化环境中保持高效的运行状态。在节点处,预先设定一个合适长度的窗,每次有新的查询消息到来时窗口往前移 动,用窗口中的查询key的数据进行统计,得到相应的条件概率。随着系统行为的变化,统 计出来的条件概率也会发生变化,这样就需要更新条件概率和更新缓存。为了防止系统的 抖动,设定一个门限值,当窗滑动前后两次统计的结果的差值超过该门限的时候更新条件 概率和缓存的key。
附图4中比较了滑动窗口的长度不同的效果,纵坐标是估计值与真实值的差别。 当窗口长时相对的误差小,但收敛速度慢;当窗口短时相对误差大,但收敛速度快。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参 照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方 案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明 的权利要求范围当中。
权利要求
一种基于相关关系的物联网UID查询方法,该物联网的底层UID管理采用分布式哈希表DHT,所述的查询方法包含基于该查询方法的缓存算法和查询方法,该查询方法步骤如下当用户有一个任务,在查询消息中包含两个要查询的key,在一次查询中如果隐含key恰好缓存在存储做为本次查询消息中路由key的节点上,则当该查询消息被DHT路由到该节点时,这两个key的查询将一次完成,这种情况称为相关查询“击中”;如果隐含key没有缓存在存储作为本次查询消息中路由key的节点上,那这次查询则只能查到路由key,这种情况称为相关查询的“未击中”,该隐含key将被作为下一次查询消息的路由key而进行重新查询;其中,所述的查询消息中,位于查询消息的首位的key称作“路由key”,之后的key叫做“隐含key”,在DHT的路由过程中只有路由key在DHT路由中起作用;所述的缓存算法,使得包含所有用户的整个系统的相关查询的击中概率最大,具体步骤为首先,每个查询消息将被路由到存储查询消息的路由key的节点处,在该节点处节点统计上面的系统条件概率,统计表达式为然后,对得到的系统条件概率,在作为本次查询消息中路由key的节点上的key之外的key的集合上取最大值,选择出来的kj将被缓存在作为本次查询消息中路由key的节点上,公式如下其中,ki是DHT映射规则下作为本次查询消息中路由key的节点,P{kj|ki}是系统的条件概率。FSA00000069127000011.tif,FSA00000069127000012.tif
2.根据权利要求1所述的基于相关关系的物联网UID查询方法,其特征在于,所述的查 询消息中包含的除了第一个的key的个数称作相关查询的阶数;路由节点上允许的最多的 缓存的不属于该节点的key的个数称作缓存的长度;其中,所述的相关查询的阶数和缓存 的长度两者之间关系式为缓存的长度>相关查询的阶数。
3.根据权利要求1或2所述的基于相关关系的物联网UID查询方法,其特征在于,所述 的相关查询的阶数和缓存的长度分别为1和大于等于1 ;其中,如果缓存长度大于1时,将系统条件概率计算得到的值进行从大到小的排序,并 选择排在前若干位的节点存储在该路由节点上。
4.根据权利要求1所述的基于相关关系的物联网UID查询方法,其特征在于,所述的缓 存算法得到的缓存结果随系统动态变化,用滑动窗反应该变化,具体步骤如下在每个节点处,预先设定一个合适长度的窗,每次有新的查询消息到来时该窗口往前 移动,用窗口中的查询key的数据进行统计,得到相应的条件概率;随着系统行为的变化, 统计出来的条件概率也会发生变化,然后更新条件概率和更新缓存;其中,设定一个门限值,当窗滑动前后两次统计结果的差值超过该门限时更新条件概 率和缓存的key,该门限值设定能够用于防止系统的抖动。
全文摘要
本发明提出一种基于相关关系的物联网UID查询方法,该物联网的底层UID管理采用分布式哈希表DHT,所述的查询方法包含基于该查询方法的缓存算法和查询方法,该查询方法步骤如下当用户有一个任务,在查询消息中包含两个要查询的key,在一次查询中如果隐含key恰好缓存在存储做为本次查询消息中路由key的节点上,这两个key的查询将一次完成,这种情况称为相关查询“击中”;如果隐含key没有缓存在存储作为本次查询消息中路由key的节点上,那这次查询则只能查到路由key,这种情况称为相关查询的“未击中”,该隐含key将被作为下一次查询消息的路由key而进行重新查询;所述的缓存算法,使得包含所有用户的整个系统的相关查询的击中概率最大。
文档编号G06F17/30GK101840417SQ20101013656
公开日2010年9月22日 申请日期2010年3月29日 优先权日2010年3月29日
发明者刘宇, 唐晖, 沈强, 赵志军 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1