CN110611688B - 用于查找节点的方法、电子设备和计算机程序产品 - Google Patents
用于查找节点的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN110611688B CN110611688B CN201810621143.2A CN201810621143A CN110611688B CN 110611688 B CN110611688 B CN 110611688B CN 201810621143 A CN201810621143 A CN 201810621143A CN 110611688 B CN110611688 B CN 110611688B
- Authority
- CN
- China
- Prior art keywords
- node
- key
- identifier
- pair
- electronic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/147—Signalling methods or messages providing extensions to protocols defined by standardisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开的实施例提供了一种计算机实现的方法、电子设备和计算机程序产品。在该方法中,在基于分布式散列表的计算机网络的节点处,确定节点的属性描述,属性描述包括多个属性项和对应的属性值。生成节点在分布式散列表中的“关键码‑标识符”对,关键码基于预定映射从属性描述得到,以使得根据属性描述通过分布式散列表可查找到节点。将“关键码‑标识符”对发送给与节点直接连接的至少一个节点。本公开的实施例可以改进计算机网络中的节点查找。
Description
技术领域
本公开的实施例一般地涉及计算机系统或云系统,并且更特别地,涉及一种用于查找节点的方法、电子设备和计算机程序产品。
背景技术
计算机网络一般是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
在去中心化的计算机网络中,不存在管理对其他节点进行管理的主控节点或管理节点。在没有计算机网络的拓扑结构知识的情况下,如果需要查找到具有特定属性的节点,执行查找的节点需要向整个网络广播查找消息,以使得其他节点得知查找节点正在查找具有特定属性的节点。但是,这种传统的广播查找方式在很多场景中无法满足计算机网络的性能要求。
发明内容
本公开的实施例涉及一种计算机实现的方法、一种电子设备、以及一种计算机程序产品。
在本公开的第一方面,提供了一种计算机实现的方法。该方法包括:在基于分布式散列表的计算机网络的节点处,确定节点的属性描述,属性描述包括多个属性项和对应的属性值。该方法还包括:生成节点在分布式散列表中的“关键码-标识符”对,关键码基于预定映射从属性描述得到,以使得根据属性描述通过分布式散列表可查找到节点。该方法进一步包括:将“关键码-标识符”对发送给与节点直接连接的至少一个节点。
在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器以及包括计算机程序指令的至少一个存储器。至少一个存储器和计算机程序指令被配置为,与至少一个处理器一起,使得电子设备:在基于分布式散列表的计算机网络的节点处,确定节点的属性描述,属性描述包括多个属性项和对应的属性值。至少一个存储器和计算机程序指令还被配置为,与至少一个处理器一起,使得电子设备:生成节点在分布式散列表中的“关键码-标识符”对,关键码基于预定映射从属性描述得到,以使得根据属性描述通过分布式散列表可查找到节点。至少一个存储器和计算机程序指令进一步被配置为,与至少一个处理器一起,使得电子设备:将“关键码-标识符”对发送给与节点直接连接的至少一个节点。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使机器执行根据第一方面的方法的步骤。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了本公开的实施例可以在其中被实现的计算机网络的示意图。
图2A和图2B示出了根据本公开的实施例的节点发布过程和节点查找过程的原理图。
图3示出了根据本公开的实施例的计算机实现的方法的流程图。
图4示出了一种可以被用来实施本公开的实施例的设备的示意性框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
图1示出了本公开的实施例可以在其中被实现的计算机网络100的示意图。如图1所示,计算机网络100可以包括许多节点,例如节点110-170。计算机网络100的节点可以是指计算机或其他设备,其可以具有独立网络地址并且连接在具有传送或接收数据功能的网络中。在一些实施例中,节点可以是工作站、客户机、网络用户设备或个人计算机,还可以是服务器、打印机和其他网络连接的设备。每个工作站﹑服务器、终端设备、网络设备,即拥有自己唯一网络地址的设备都可以是计算机网络的节点。
计算机网络100的节点通过通信连接相连,每个节点可以具有与之直接连接的节点。作为示例,在图1中,节点110分别通过通信连接112-116与节点120-160直接连接,节点120-160又进一步可以与其他节点直接连接,从而最终形成计算机网络100。另一方面,作为非直接连接(即间接连接)的示例,节点110可以通过节点150和170而连接到节点180。
将理解,在一些实施例中,通信连接112-116可以包括网卡、集线器、调制解调器、中继器、网桥、交换机、路由器等用于网络连接的设备、以及各种网络连接线路,诸如电缆、无线链路等。此外,尽管图1以示例性的方式描绘了特定数目的节点和特定的连接方式,但是计算机网络100可以包括任何数目的节点和任何方式的连接。
在一些实施例中,计算机网络100可以是去中心化的网络,也即,计算机网络100不存在对其他节点进行管理的主控节点、核心节点或管理节点。例如,计算机网络100可以是基于多云系统的网络,其中的所有节点是基于端到端(p2p)连接的,不存在主控节点来管理节点集群。
在这样的去中心化的多云系统的网络中,节点可能来自不同的云系统。例如,与节点110直接连接的节点120-140可能属于第一云系统,而节点150-160可能属于第二云系统。相比之下,节点110可以属于第三云系统。在一些实施例中,第一至第三云系统可能是不同公司拥有的云系统。此外,各个节点的其他属性也可能不同的,例如可能来自位于不同的数据中心,针对每个实例可能具有不同的配置,诸如是否具有GPU或FGPA,等等。
在计算机网络100的各种操作中,一个常见的问题是某个节点(例如,节点110)如何在计算机网络100中查找到具有特定属性的其他节点。在一些情况下,节点110可能需要找到符合某些属性条件的(多个)节点以向该(些)节点传送数据。例如,节点110要查找与它同属于第三云系统的节点,并且该节点位于特定的数据中心,并且具有特定配置(诸如具有GPU)。
传统地,在没有关于计算机网络的拓扑结构知识的情况下,执行查找的查找节点需要向整个网络广播查找消息,以使得其他节点得知查找节点正在查找具有特定属性的节点。但是,由于在去中心化的网络中,查找具有特定属性的节点是常见的操作,所以传统的广播查找方式将消耗大量的网络资源。此外,因为广播消息的传播是相对缓慢的,所以传统的广播查找方式需要花费大量的时间来找到期望的节点。
更具体地,假定在多云系统上部署了去中心化的数据保护系统,某个节点连接到数据保护系统并且想要将数据备份到特定云系统(例如,AWS云系统)。然而,与该节点直接连接的其他节点都运行在与该特定云系统不同的其他云系统上,并且该数据保护系统不具有任何主控节点来管理节点集群,所以该节点必须向网络进行广播以查找运行在特定云系统的节点。应当注意,在网络中可能存在数十万的节点进行类似的请求并且面对相类似的问题,而作为服务提供者的数据保护系统将无法承受每个节点向网络进行广播所造成的网络负担。
鉴于传统的广播查找方式存在的上述问题以及潜在的其他问题,本公开的实施例提供了一种用于查找节点的方法、一种电子设备和一种计算机程序产品。本公开的实施例的基本思想是基于分布式散列表(DHT)来实现节点的查找,从而避免了在网络中进行广播,由此节省了网络资源和查找时间,因此改进了计算机网络中的节点查找。下面结合附图来详细地描述本公开的实施例。
图2A和图2B示出了根据本公开的实施例的节点发布过程200A和节点查找过程200B的原理图。在下文中,不失一般性,将以节点110为例来描述根据本公开的实施例。将理解,针对节点110描述的各种操作和特征等同地适用于计算机网络100中的其他节点。
图2A描绘了节点发布过程200A的原理图。如图2A所示,为了计算机网络100中的其他节点能够通过节点110的属性查找到节点110,节点110可以确定205节点110的属性描述210,属性描述210包括多个属性项和对应的属性值。例如,属性项可以是节点110的节点类型、所属的云系统、所在的数据中心、是否具有GPU、是否具有FPGA,等等。与这些属性项对应的属性值可以是“云节点”、“AWS云系统”、“美国东部”、“是”、“否”,等等。
为了使得节点110可以通过更多的属性项被查找到,属性描述210可以尽可能地全面,也即包括尽可能多的属性项和对应属性值,而不是仅标记出节点110的某个属性项的属性值。另外,经常变化的属性(例如,剩余存储容量)不适合被选为此处的属性项,因为执行查找的节点不可能预测到待查找节点的变化属性的属性值,进而无法基于该变化属性来执行查找。
在确定属性描述210以后,节点110可以生成215节点110在分布式散列表230中的“关键码-标识符”对220,其中节点110的关键码是基于预定映射从其属性描述210得到的,而节点110的标识符可以唯一地识别节点110,从而计算机网络100中的其他节点可以根据节点110的属性描述210通过分布式散列表230查找到节点110。在一些实施例中,节点110的标识符可以包括节点110的IP地址,从而可以直接通过标识符寻址到节点110。
此外,在一些实施例中,此处的预定映射可以包括分布式散列表230使用的散列函数,从而可以利用基于分布式散列表230的路由算法来确保在网络100中通过属性描述210找到节点110。在这个方面,值得一提的是,由于作为预定映射的散列函数本身具有抗第二原像性质,即给定输入m1,则难以找到不同的输入m2使得hash(m1)=hash(m2)。因此,由不同节点以相同属性描述产生的关键码将是相同的。
在本文中,分布式散列表230是一种去中心化的分布式数据组织方式,其提供类似于散列表的查找服务。“关键码(key)-值(value)”对被存储在分布式散列表230中,并且计算机网络100中的任何节点可以通过分布式散列表230高效地检索到与给定关键码相关联的值。分布式散列表230以分布的方式存储在各个节点中,即维护从关键码到值的映射的责任被分散地由各个节点承担。以这种方式,计算机网络100中的节点的变化将引起对分布式散列表230最低限度的破坏。这允许分布式散列表230扩展到巨大数目的节点并且可以灵活地处理节点的加入、离开和失效。
在计算机网络100中使用分布式散列表230具有以下优点。首先,节点共同地形成基于分布式散列表230的网络100,而没有任何进行中心协调的节点。因此,基于分布式散列表230的网络系统具有自主性和去中心化性。其次,基于分布式散列表230的网络100具有容错性,即使不断地有节点加入、离开和失效,整个网络100也是可靠的。再次,基于分布式散列表230的网络100具有良好的可伸缩性,可以在拥有数百万或数千万的节点的情况下高效地运转。
此外,在节点110生成215“关键码-标识符”对220的过程中,即使使用的属性项和对应的属性值相同,如果属性项的排列顺序和格式不同,经由相同的预定映射生成的“关键码-标识符”对220也可能是不同的。因此,为了确保执行查找的节点可以通过属性描述210有效地查找到节点110,节点110可以按照预定协议指定的顺序和格式,在属性描述210中记录多个属性项和对应的属性值。计算机网络110中的节点可以均遵循该预定协议。
在一些实施例中,基于分布式散列表230的网络100可以包括Kademlia(KAD)网络,其可以保证以O(logn)的复杂度来找到待查找的节点,其中n是系统中节点的数目。
在生成“关键码-标识符”对220之后,节点110将“关键码-标识符”对220发布225到分布式散列表230。如上文提到的,分布式散列表230实际上是以分布的方式存储在各个节点中的,而并不存在完整地存储整个分布式散列表230的节点,因此图2A和图2B中以虚线描绘了分布式散列表230。
在执行发布225时,节点110实际上是将“关键码-标识符”对220发送给与节点110直接连接的至少一个节点120-160,接收到“关键码-标识符”对220的节点可以存储“关键码-标识符”对220,以便在其他节点查找节点110时向查找节点提供节点110的标识符。
例如,节点110可以将它的“关键码-标识符”对220发送给所有与它直接连接的节点120-160。替换地,节点110也可以基于预定规则将“关键码-标识符”对220发送给节点120-160中的任何数目的节点。作为示例,节点110可以确定逻辑距离与节点110最小的一个或多个节点,例如节点120-150,然后节点110可以将“关键码-标识符”对220发送给节点120-150。此处,节点之间的逻辑距离例如可以基于节点标识符之间的异或运算来确定。
通过这样的方式,当节点110具有相当数目(例如,数百)的直接连接的节点时,节点110可以仅向数目较少的节点发送它的“关键码-标识符”对220,从而在允许网络100使用最少的网络资源满足预定的可靠性。
现在转到图2B,其描绘了根据本公开的实施例的节点查找过程200B的原理图。如图2B所示,为了查找具有特定属性的节点,节点110可以确定235待查找节点的属性描述240。基于该属性描述240,节点110生成245查找消息,该查找消息包括待查找节点的关键码250和作为查找节点的节点110的标识符,待查找节点的关键码250基于与节点发布过程220A中使用的相同预定映射从其属性描述240得到。
通过查找消息,关键码250可以被用来查找255分布式散列表230。为此,由于分布式散列表230是分布式的,节点110实际上将查找消息发送给与节点110直接连接的至少一个节点120-160以最终到达如下的节点,该节点存储有包括待查找节点的关键码250的“关键码-标识符”对。
基于关键码250,分布式散列表230可以确定出节点110所要查找的节点的标识符,然后分布式散列表230可以将该标识符发送265给节点110。在实际的操作中,节点110可以从存储有关键码250的节点接收待查找节点的标识符。
在一些实施例中,节点110不是执行查找的节点,而是从其他节点接收到查找消息的中间节点。在这种情况下,节点110可以从直接连接的节点(例如,节点150)接收查找消息,查找消息包括待查找节点(例如,节点140或节点190)的关键码和查找节点(例如,节点180)的标识符。节点110可以确定自身是否存储有包括待查找节点140或190的关键码的“关键码-标识符”对。
如果节点110确定自身存储有包括待查找节点140的关键码的“关键码-标识符”对,则节点110可以向查找节点180发送待查找节点140的标识符。在一些实施例中,为了执行该发送,节点110可以与节点180建立直接连接。另一方面,如果节点110确定自身未存储包括待查找节点190的关键码的“关键码-标识符”对,则节点110可以将查找消息发送给与节点110直接连接的至少一个节点,例如节点130,而使得查询消息最终到达存储有节点190的“关键码-标识符”对的节点。
在一些场景中,节点110可能需要查找仅个别属性项要求为特定属性值的节点。这种场景可能是,要查找所有属于特定云系统的节点,而不存在对其他属性项的要求。在这种情况下,节点110可以执行多次查询,然后将多次查询的结果进行组合。例如,在属性项包括节点类型、所属的云系统、所在的数据中心、是否具有GPU时,节点110可以将所述云系统的属性值选取为特定云系统,然后依次将其他属性项选取为可以取任何可能属性值来确定多个属性描述,从而进而生成多个查询消息来执行查询。
如上文提到的,在去中心化的网络100中,节点110可以灵活地加入或者离开网络100。然而,当节点110离开网络100时,在分布式散列表230中移除与节点110有关的条目是困难的。因此,如果节点110确定要离开计算机网络100,则节点110可以将“关键码-空值”对发送给与节点110直接连接的至少一个节点120-160,以使得网络100中的其他节点使用节点110的关键码不再可以查找到节点110。
此外,在基于分布式散列表230的网络100中,节点110可能会由于失效而不可用。为了保证分布式散列表230的记录是准确有效的,响应于预定时间段(例如,24小时)到期,节点110可以将“关键码-标识符”对220重新发送给与节点110直接连接的至少一个节点120-160。应当理解,上述特定长度的预定时间段仅为示例,在其他实施例中,计算机网络100可以基于设计需求和/或网络负载情况将该预定时间段设置为更长或更短。
图3示出了根据本公开的实施例的计算机实现的方法300的流程图。在一些实施例中,方法300可以由计算机网络100中的节点(例如,节点110)来实现,例如可以由节点110的处理器或处理单元来实现,或者由节点110的各种功能模块来实现。为了便于讨论,将结合图1和图2来讨论方法300。
在310处,在基于分布式散列表230的计算机网络100的节点110处,确定节点110的属性描述210,属性描述210包括多个属性项和对应的属性值。在320处,生成节点110在分布式散列表230中的“关键码-标识符”对220,关键码基于预定映射从属性描述210得到,以使得根据属性描述210通过分布式散列表230可查找到节点110。在330处,节点110将“关键码-标识符”对220发送给与节点110直接连接的至少一个节点120-160。
在一些实施例中,节点110确定待查找节点的属性描述240。节点110生成查找消息,查找消息包括待查找节点的关键码250和节点110的标识符,待查找节点的关键码250基于预定映射从其属性描述240得到。节点110将查找消息发送给与节点110直接连接的至少一个节点120-160以到达另一节点,该另一节点存储有包括待查找节点的关键码250的“关键码-标识符”对。节点110从该另一节点接收待查找节点的标识符。
在一些实施例中,节点110从节点150接收查找消息,节点150与节点110直接连接,查找消息包括待查找节点140或190的关键码和查找节点180的标识符。节点110确定节点110是否存储有包括待查找节点140或190的关键码的“关键码-标识符”对。
响应于确定节点110存储有包括待查找节点140的关键码的“关键码-标识符”对,节点110向查找节点180发送待查找节点140的标识符。响应于确定节点110未存储包括待查找节点190的关键码的“关键码-标识符”对,将查找消息发送给与节点110直接连接的至少一个节点130。
在一些实施例中,响应于节点110要离开计算机网络100,节点110将“关键码-空值”对220发送给与节点110直接连接的至少一个节点120-160。在一些实施例中,响应于预定时间段到期,节点110将“关键码-标识符”对重新发送给与节点110直接连接的至少一个节点120-160。
在一些实施例中,节点110按照预定协议指定的顺序和格式,在属性描述210中记录多个属性项和对应的属性值。在一些实施例中,节点110确定逻辑距离与节点110最小的一个或多个节点120-150,并且将“关键码-标识符”对220发送给一个或多个节点120-150。在一些实施例中,预定映射包括分布式散列表使用的散列函数,标识符包括节点的IP地址。
除了上文论述的场景以外,本公开的实施例也可以用于快速组建子网。通过本公开的实施例,新加入网络的节点可以查找到声明具有特定资源的对等节点,从而该节点可以与这些节点建立直接连接,以形成子网并且使得资源共享更简单。
本公开的实施例也可以用于云端的多个服务器节点的数据保护负载平衡。在该场景中,新加入数据保护服务器网格的节点将注册它自身,包括云平台、存储容量、区域、I/O吞吐量、并且动态地更新状态。当运行任何备用策略或行为以从云端找出附近可用的容量时,云平台的编排层将遍历或查询所有节点来计算出具有最佳成本平衡或具有最佳性能的多个节点。因此,该节点可以与这些节点建立直接连接,而形成子网并且使得资源共享更简单。
本公开的实施例还可以用于在云端的数据保护自动升级。具体地,当针对云平台上运行的数千节点的自动升级被触发时,云平台的编排层将基于节点的位置属性和云区域属性来计算具有不同版本的服务器节点的优先级,以便确定最佳的方式。
图4示意性地示出了一种可以被用来实施本公开的实施例的设备400的框图。如图4中所示出的,设备400包括中央处理单元(CPU)401,其可以根据存储在只读存储设备(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储设备(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300可由处理单元401来执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序被加载到RAM 403并由CPU 401执行时,可以执行上文描述的方法300的一个或多个步骤。
如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。本文还可能包括其他明确的和隐含的定义。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
虽然已经参考若干具体实施例描述了本公开,但是应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。
Claims (19)
1.一种计算机实现的方法,包括:
在多云环境中,在基于分布式散列表的计算机网络的节点处,确定所述节点的属性描述,所述属性描述包括多个属性项和对应的属性值,并且所述节点是第一节点;
生成所述节点在所述分布式散列表中的“关键码-标识符”对,所述关键码基于预定映射从所述属性描述得到,以使得根据所述属性描述通过所述分布式散列表可查找到所述节点,所述属性描述包括:从所述多云环境的多个云系统中,识别所述多个云系统中的所述节点所属于的特定云系统的信息;
将所述“关键码-标识符”对发送给与所述节点直接连接的至少一个节点;
从第二节点接收查找消息,所述第二节点与所述第一节点直接连接,所述查找消息包括待查找节点的关键码和查找节点的标识符;
确定所述第一节点是否存储有包括待查找节点的关键码的“关键码-标识符”对;以及
响应于确定所述第一节点存储有包括待查找节点的关键码的“关键码-标识符”对,向查找节点发送待查找节点的标识符。
2.根据权利要求1所述的方法,其中所述节点是第一节点,所述方法进一步包括:
确定待查找节点的属性描述;
生成查找消息,所述查找消息包括待查找节点的关键码和所述第一节点的标识符,待查找节点的关键码基于所述预定映射从其属性描述得到;
将所述查找消息发送给与所述第一节点直接连接的至少一个节点以到达第二节点,所述第二节点存储有包括待查找节点的关键码的“关键码-标识符”对;以及
从所述第二节点接收待查找节点的标识符。
3.根据权利要求1所述的方法,进一步包括:
响应于确定所述第一节点未存储包括待查找节点的关键码的“关键码-标识符”对,将所述查找消息发送给与所述第一节点直接连接的至少一个节点。
4.根据权利要求1所述的方法,进一步包括:
响应于所述节点要离开所述计算机网络,将“关键码-空值”对发送给与所述节点直接连接的至少一个节点。
5.根据权利要求1所述的方法,进一步包括:
响应于预定时间段到期,将所述“关键码-标识符”对重新发送给与所述节点直接连接的至少一个节点。
6.根据权利要求1所述的方法,其中确定所述节点的属性描述包括:
按照预定协议指定的顺序和格式,在所述属性描述中记录所述多个属性项和对应的属性值。
7.根据权利要求1所述的方法,其中将所述“关键码-标识符”对发送给与所述节点直接连接的至少一个节点包括:
确定逻辑距离与所述节点最小的一个或多个节点;以及
将所述“关键码-标识符”对发送给所述一个或多个节点。
8.根据权利要求1所述的方法,其中所述预定映射包括所述分布式散列表使用的散列函数。
9.根据权利要求1所述的方法,其中所述标识符包括所述节点的IP地址。
10.一种电子设备,包括:
至少一个处理器;以及
包括计算机程序指令的至少一个存储器,所述至少一个存储器和所述计算机程序指令被配置为,与所述至少一个处理器一起,使得所述电子设备:
在多云环境中,在基于分布式散列表的计算机网络的节点处,确定所述节点的属性描述,所述属性描述包括多个属性项和对应的属性值,并且所述节点是第一节点;
生成所述节点在所述分布式散列表中的“关键码-标识符”对,所述关键码基于预定映射从所述属性描述得到,以使得根据所述属性描述通过所述分布式散列表可查找到所述节点,所述属性描述包括:从所述多云环境的多个云系统中,识别所述多个云系统中的所述节点所属于的特定云系统的信息;
将所述“关键码-标识符”对发送给与所述节点直接连接的至少一个节点;
从第二节点接收查找消息,所述第二节点与所述第一节点直接连接,所述查找消息包括待查找节点的关键码和查找节点的标识符;
确定所述第一节点是否存储有包括待查找节点的关键码的“关键码-标识符”对;以及
响应于确定所述第一节点存储有包括待查找节点的关键码的“关键码-标识符”对,向查找节点发送待查找节点的标识符。
11.根据权利要求10所述的电子设备,其中所述节点是第一节点,并且其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述至少一个处理器一起,使得所述电子设备:
确定待查找节点的属性描述;
生成查找消息,所述查找消息包括待查找节点的关键码和所述第一节点的标识符,待查找节点的关键码基于所述预定映射从其属性描述得到;
将所述查找消息发送给与所述第一节点直接连接的至少一个节点以到达第二节点,所述第二节点存储有包括待查找节点的关键码的“关键码-标识符”对;以及
从所述第二节点接收待查找节点的标识符。
12.根据权利要求10所述的电子设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述至少一个处理器一起,使得所述电子设备:
响应于确定所述第一节点未存储包括待查找节点的关键码的“关键码-标识符”对,将所述查找消息发送给与所述第一节点直接连接的至少一个节点。
13.根据权利要求10所述的电子设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述至少一个处理器一起,使得所述电子设备:
响应于所述节点要离开所述计算机网络,将“关键码-空值”对发送给与所述节点直接连接的至少一个节点。
14.根据权利要求10所述的电子设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述至少一个处理器一起,使得所述电子设备:
响应于预定时间段到期,将所述“关键码-标识符”对重新发送给与所述节点直接连接的至少一个节点。
15.根据权利要求10所述的电子设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述至少一个处理器一起,使得所述电子设备:
按照预定协议指定的顺序和格式,在所述属性描述中记录所述多个属性项和对应的属性值。
16.根据权利要求10所述的电子设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述至少一个处理器一起,使得所述电子设备:
确定逻辑距离与所述节点最小的一个或多个节点;以及
将所述“关键码-标识符”对发送给所述一个或多个节点。
17.根据权利要求10所述的电子设备,其中所述预定映射包括所述分布式散列表使用的散列函数。
18.根据权利要求10所述的电子设备,其中所述标识符包括所述节点的IP地址。
19.一种非易失性计算机可读介质,包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-9中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621143.2A CN110611688B (zh) | 2018-06-15 | 2018-06-15 | 用于查找节点的方法、电子设备和计算机程序产品 |
US16/394,526 US10904327B2 (en) | 2018-06-15 | 2019-04-25 | Method, electronic device and computer program product for searching for node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621143.2A CN110611688B (zh) | 2018-06-15 | 2018-06-15 | 用于查找节点的方法、电子设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110611688A CN110611688A (zh) | 2019-12-24 |
CN110611688B true CN110611688B (zh) | 2022-04-12 |
Family
ID=68840544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810621143.2A Active CN110611688B (zh) | 2018-06-15 | 2018-06-15 | 用于查找节点的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10904327B2 (zh) |
CN (1) | CN110611688B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507032B (zh) * | 2020-12-22 | 2022-05-27 | 正链科技(深圳)有限公司 | 一种kademlia协议的k-桶构造改进方法 |
CN114244849A (zh) * | 2021-11-08 | 2022-03-25 | 北京中合谷投资有限公司 | 一种p2p网络的路由层 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7206934B2 (en) * | 2002-09-26 | 2007-04-17 | Sun Microsystems, Inc. | Distributed indexing of identity information in a peer-to-peer network |
CN101043366A (zh) * | 2006-06-26 | 2007-09-26 | 华为技术有限公司 | 域管理器系统、获知相邻域管理器及进行更新的方法 |
CN106533733A (zh) * | 2016-08-30 | 2017-03-22 | 中国科学院信息工程研究所 | 基于网络分簇和哈希路由的ccn协同缓存方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9100285B1 (en) * | 2012-12-18 | 2015-08-04 | Juniper Networks, Inc. | Dynamic control channel establishment for software-defined networks having centralized control |
US9596305B2 (en) * | 2013-04-06 | 2017-03-14 | Citrix Systems, Inc. | Systems and methods for distributed hash table contract renewal |
EP3218800B1 (en) * | 2014-11-12 | 2023-06-07 | David CEREZO SANCHEZ | Secure multiparty computation on spreadsheets |
US11303539B2 (en) * | 2014-12-05 | 2022-04-12 | Accenture Global Services Limited | Network component placement architecture |
US10108653B2 (en) * | 2015-03-27 | 2018-10-23 | International Business Machines Corporation | Concurrent reads and inserts into a data structure without latching or waiting by readers |
US10536357B2 (en) * | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
SG10201912412PA (en) * | 2016-03-07 | 2020-02-27 | Agency Science Tech & Res | Method of facilitating distributed data search in a federated cloud and system thereof |
-
2018
- 2018-06-15 CN CN201810621143.2A patent/CN110611688B/zh active Active
-
2019
- 2019-04-25 US US16/394,526 patent/US10904327B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7206934B2 (en) * | 2002-09-26 | 2007-04-17 | Sun Microsystems, Inc. | Distributed indexing of identity information in a peer-to-peer network |
CN101043366A (zh) * | 2006-06-26 | 2007-09-26 | 华为技术有限公司 | 域管理器系统、获知相邻域管理器及进行更新的方法 |
CN106533733A (zh) * | 2016-08-30 | 2017-03-22 | 中国科学院信息工程研究所 | 基于网络分簇和哈希路由的ccn协同缓存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110611688A (zh) | 2019-12-24 |
US10904327B2 (en) | 2021-01-26 |
US20190387054A1 (en) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11706102B2 (en) | Dynamically deployable self configuring distributed network management system | |
US10715485B2 (en) | Managing dynamic IP address assignments | |
US10374955B2 (en) | Managing network computing components utilizing request routing | |
JP4588704B2 (ja) | 自己管理仲介情報フロー | |
US9367261B2 (en) | Computer system, data management method and data management program | |
WO2009097438A2 (en) | Query deployment plan for a distributed shared stream processing system | |
US9760370B2 (en) | Load balancing using predictable state partitioning | |
CN110611688B (zh) | 用于查找节点的方法、电子设备和计算机程序产品 | |
US20110153826A1 (en) | Fault tolerant and scalable load distribution of resources | |
US11108854B2 (en) | Peer-to-peer network for internet of things resource allocation operation | |
Medrano-Chávez et al. | A performance comparison of Chord and Kademlia DHTs in high churn scenarios | |
van Renesse et al. | Autonomic computing: A system-wide perspective | |
WO2018229153A1 (en) | Cross-cluster service provision | |
US20230370332A1 (en) | Computer system and communication method | |
CN110958182B (zh) | 一种通信方法及相关设备 | |
US20230034790A1 (en) | Determination of routing domain information to merge ip addresses | |
CN114422518A (zh) | 请求服务的方法及装置 | |
Antoine et al. | Dealing with skewed data in structured overlays using variable hash functions | |
Campos et al. | Improving the scalability of DPWS-based networked infrastructures | |
CN118550971A (zh) | 数据的同步方法、装置、存储介质及电子设备 | |
Kimmatkar et al. | Applications sharing using binding server for distributed environment | |
Mizutani | A study of scalable data center management schemes using structured overlay network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |