这种泛洪蔓延式的搜索就称为泛洪搜索。数据的定位取决于当前的DHT状态。分布式哈希表提供数据在节点上分布的全局视图。三种策略中,分布式哈希表优势明显,最吸引人。表16.1中心服务器、泛洪搜索和分布式哈希表三者的比较......
2023-10-28
DHT在分布计算及其应用中扮演着重要角色,特别是在大规模分布式环境里。如前所述,在客户端/服务器(C/S)模式中,服务器负责大多数资源的开发,它们也往往成为瓶颈或系统的弱点。而在分布式系统,尤其是P2P模式中,资源分布在系统的所有节点上,因此,健壮性和性能更优。那么,如何有效管理分布式环境中的资源呢?这样,DHT应运而生。
DHT是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储功能。例如,比特彗星(BitComet)[1]允许同时连接DHT网络和Tracker,也就是说,在完全没连上Tracker服务器(也称种子服务器)的情况下,也可以很好地下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。
DHT虽简单,但性能优越。它提供类似哈希表的功能来处理分布式数据。DHT无需中心服务器,分布式系统中所有的DHT节点是平等的。同时,DHT继承了哈希表的主要特性,如高效定位和搜索元素。DHT提供一个全局的、抽象的键空间(一般称为DHT空间),其中所有资源(如数据和DHT节点)都有其唯一的标识(ID)。与哈希表一样,DHT里的任何数据都可表示为一个二元组(K,V),其中,K是数据经哈希函数映射后的键值,V是原始数据。DHT空间里的每个节点也有一个键,称为节点ID。这样,分布式系统里的所有数据和节点都可以一直地映射到DHT空间。可以将DHT空间分割成若干个槽(slot),将DHT中的每个节点维护映射到自己节点槽里。DHT有两个基本操作:put()函数将数据放入DHT空间,键值为K;get()函数通过给定的键值K获取原始数据。
DHT网络由一个逻辑标识符哈希键空间组成,负责从端点到资源的映射。每个端点会维护邻居状态,通过基于标识空间的覆盖网络记录每个可用应用级的消息路由。这里,插入网络和从网络检索的算法是确定的,即给定一个键,这个键的资源就驻留在确定的端点上。
本质上,DHT提供类似哈希表的查表服务,即在DHT里存储“名字”(name)和对应的“值”(value)偶对,如果用户给定名字(name)的键,就可以检索到先前存储的值。通常,DHT里的键通过使用哈希算法生成,这类哈希算法如安全散列算法(SHA)。
DHT方法的优点是:节点可以通过树状结构来组织,其搜索算法的复杂性是O(log N)。这允许DHT灵活扩展到拥有很多节点。DHT方法的缺点是:用户需要确切知道名字的键(name key),以便检索所需的值,直接靠关键词查询是不行的,但可以通过在DHT技术上构建应用来满足语义搜索的需求;另外,实现覆盖(网络)[2]一般比非结构化要付出更多的努力,以保证断接或离开时能维护节点间的一致性。
DHT由以下两部分组成。
●一种键空间分割模式,负责在参与节点间划分键空间。
●连接节点的覆盖网络,以此允许节点在键空间对任意给定键定位其“所有者”(owner),让花费的跳数目(hops)尽可能小。这个覆盖网络也负责在网络里注入冗余,使得在定位给定键时有多条路径可用。这样,当节点出现故障时仍可定位。
DHT在键分割模式里会使用某个一致哈希的变形(variant of consistent hashing)技术。这种技术使用一个距离函数,能测量从一个键到另一个键的抽象距离,与任何物理参数(如地理距离或网络延时)无关。典型情况是,为每个节点指定一个标识符哈希键(基于某些端点性质的哈希值,如网络地址、时刻等)。在一致哈希算法中,节点的移出和加入会改变相邻节点(由邻居ID)“拥有”的键集(合)。这个基本性质使得DHT在节点加入或离开网络时的重组需求变得最小。(www.chuimin.cn)
覆盖网络使用这些性质,在邻居节点路由表里维护通达邻居节点的链接的集合。节点按照DHT的连接策略选择邻居。但对任何键来说,一个节点或者拥有这个键,或者指针指向离这个键近的节点。因此,可以使用贪心算法检索键,通过将请求传递给ID最接近于所请求的键的邻居来实现。如果不能再进一步找到这类邻居,那么目前节点就是最接近的节点。
为了维护覆盖网络,需对算法进行调节,于是DHT定义了两个键参数。一个参数是可以定义任意路由的跳转数目(路由路径最小或跳数最少);另一个参数是任何节点的最大邻居数,即最大的节点度,用于减少覆盖网络的维护开销。通常二者会产生矛盾,即路由最短需要节点度大,因此往往选择折中。通常节点度选为O(log N),路由长度也为O(log N)。
DHT可以有效组织分布式资源,让节点可以有效地获得资源,定位资源的时间复杂度为O(1)。与传统的哈希表相比,DHT处理系统的分布性和动态性强得多,因为DHT可以灵活定制槽的数目和槽的域范围。
DHT必须具有以下三个特性。
●高效:DHT继承哈希表的优秀特性,如高效定位数据在DHT空间的存储位置,无需知悉全局信息。
●分散(decentralization):DHT是分散部署的,可以避免热点问题和实现好的负载均衡。
●可伸缩性(scalability):DHT可以应用于分布式系统,规模大小可变,从成百上千到几百万的节点。
因为DHT具备这三个特性,所以它在一些领域(如区块链)大受青睐。
有关分布式数据库技术的文章
这种泛洪蔓延式的搜索就称为泛洪搜索。数据的定位取决于当前的DHT状态。分布式哈希表提供数据在节点上分布的全局视图。三种策略中,分布式哈希表优势明显,最吸引人。表16.1中心服务器、泛洪搜索和分布式哈希表三者的比较......
2023-10-28
某种程度上说,泛在计算是物联网的升华,是更高层次上的物联网。图20.5普适计算“计算机消失了”,而又到处都有,就是普适计算的基本思想。在这里,普适计算技术的支持是关键。人们在家生活,关系舒适、健康、安全、快乐,普适计算提供了技术基础。2008年7月28日,在ISO/IEC JTC1 SC25最终标准草案投票中,中国IGRS标准以96%的高支持率顺利通过,正式成为国际标准。......
2023-10-28
Hadoop[1]是Lambda架构中聚焦于批处理层的软件系统。Hadoop是一个开源软件框架,使用Java语言开发,针对超大数据集的分布存储和处理,运行在常规硬件构建的计算集群上。Hadoop起源于Apache Nutch,是一个开源的网络搜索引擎,它本身也是Lucene项目的一部分。Hadoop这个名字不是一个缩写,它是一个虚构的名字。Hadoop中的计算节点分为两类:NameNode和DataNode。YARN是yet another resource negotiator的缩写,是Hadoop第二版的主要特征。......
2023-10-28
1988年,该委员会推出2.0版本,到1993年发布的DICOM标准3.0,已发展成为医学影像信息学领域的国际通用标准。DICOM标准3.0包括以下内容。按照标准描述,DICOM数据结构中的基本元素可以简述如下。图22.1DICOM数据集和数据元素结构图22.1中,数据集由多个数据元素构成,传输时是将一个个有序的数据元素字段进行传输。......
2023-10-28
从而,死锁是分布式数据库管理系统面临的严肃问题。要采取措施,先要分析是否出现死锁,通常称为死锁检测。等待图是帮助监测的一个有用工具。WFG是一个有向图,表示事务间的等待关系。图9.9是例9.7的WFG。WFG中有环出现就意味着有死锁存在。在分布式系统中,WFG的形式复杂得多,因为两个参与死锁的条件可能出现在不同的节点上,我们把它称为全局死锁。图9.9等待图WFG发现死锁后,就要设法打破死锁。......
2023-10-28
理想的电子病历应当具有以下两方面的功能。电子病历可以根据自身掌握的信息和知识进行判断,当个体健康状态需要调整时,会做出及时、准确的提示,并给出最优方案和实施计划。值得一提的是,健康档案概念与电子病历概念之间有所交叠和模糊。也有人认为,电子病历除专业医疗和健康机构产生的信息外,还应包括个人记录的健康信息。从时间跨度上,电子病历应当覆盖个人从生到死的全过程。......
2023-10-28
但是,分布式DBMS中的视图可以从存放在不同站点的分片关系中导出。如果视图定义没有存放在发布查询的站点,则使用该视图时必须实施对视图定义站点的远程访问。分布式数据库中,视图上所表达的从查询到基关系的映射可以像在集中式DBMS中的一样来处理。可以把数据库管理员管理的数据对象看成一个层次结构,其中叶子是数据片,从数据片中可以导出关系和视图。......
2023-10-28
三阶段提交协议是为无阻塞协议而设计的。因此有必要对2PC协议进行修改。因为从INITIAL状态到COMMIT状态间有三个状态转换,所以我们称为三阶段提交协议。图10.173PC协议的状态转换图1.终止协议下面分析3PC协议每个状态在超时时的情况。协调者单边决定夭折该事务。因此它将abort记录写入日志,并发送″global-abort″消息给所有已经选择提交事务的参与者。3PC协议如图10.18所示。参与者可能处于INITIAL、READY、ABORT、PRECOMMIT状态。因此协调者将全局提交该事务,发送″global-commit″消息。......
2023-10-28
相关推荐