CN109753510B - 一种目标数据的获取方法、系统、电子设备及存储介质 - Google Patents
一种目标数据的获取方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109753510B CN109753510B CN201910027182.4A CN201910027182A CN109753510B CN 109753510 B CN109753510 B CN 109753510B CN 201910027182 A CN201910027182 A CN 201910027182A CN 109753510 B CN109753510 B CN 109753510B
- Authority
- CN
- China
- Prior art keywords
- node
- target
- current
- coordinate
- neighbor
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种目标数据的获取方法,将每个节点预先表示在预设维度数的坐标系下,每个节点均由预设维度数的坐标组成,在由起始节点逼近目标节点的过程中,通过将起始节点的各维度坐标逐个替换为目标节点相同维度的坐标的方式来实现,此种方式下,最大跳跃次数等同于预设维度数,而多维坐标系下每个维度都可以有不定的边长,使得数以百万计的节点完全可以分布在较少维度数(例如4或5)的坐标系中,相比于现有技术在O(log2N)复杂度下动辄20次以上的跳跃次数,本申请只需极少的跳跃次数就可实现相同的效果,随着节点数量的增多,效果更佳明显。本申请还同时公开了一种目标数据的获取系统、电子设备及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及分布式存储技术领域,特别涉及一种目标数据的获取方法、系统、电子设备及计算机可读存储介质。
背景技术
分布式存储技术被广泛用于解决传统中心化存储带来的单点故障、扩展难等问题,其中,DHT(Distributed Hash Table,分布式哈希表)技术是其中应用较广的一种。
DHT技术通过预先建立的包含有各数据与其哈希值间对应关系的对应表来实现目标数据的定位,但由于其并没有中心化的元数据中心,每个节点只存储自己节点上存储数据的部分对应表,若无法经由自身节点存储的对应表找到目标数据,就通过在各个节点间进行跳转来最终找到存储有目标数据的目标节点。
比较常见的DHT算法有kademlia、pastry、chord、CAN以及kelips等,无论哪种DHT算法,其最直接的目标就是以最快的速度来定位到期望的节点,在P2P文件分享应用中则是以最快的速度来查找到正在分享某一文件/种子的peers列表信息。因为每个节点都是分布式存在于地球的任何角落,如果用地理距离来衡量两节点间的距离则可能给计算带来极大复杂性甚至不可能进行衡量,因此基本所有的DHT算法都是采用某种逻辑上的距离。
由于采用扁平化方式,每个节点地位相同,基于逻辑距离的计算方式下,上述几种DHT算法的维护节点状态复杂度为O(log2N)、平均查找复杂度为O(log2N),在当今由数以百万计节点构成的网络内,采用这种方式需要跳跃20次左右,而随着跳数的增多,不仅会使网络时延随之增大,查找失败概率也呈指数增长。
因此,如何克服现有在由较多数量节点构成的网络内,常用DHT算法需要跳跃较多次数才能找到目标节点所带来的技术缺陷,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的在于提供一种目标数据的获取方法、系统、电子设备及计算机可读存储介质,旨在解决现有DHT算法在由较多数量节点构成的分布式存储网络中获取目标数据时,由于其复杂度O(log2N)与总节点数量N间的关系,导致所需跳跃次数较多的问题,以尽可能的减少跳跃次数。
为实现上述目的,本申请提供了一种目标数据的获取方法,该方法包括:
根据目标数据获取请求确定起始节点和目标节点的坐标,并将所述起始节点作为当前的X节点;
从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点;
根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,且将所述第一邻居节点与所述第二邻居节点的交集作为当前的中间节点;其中,所述第一邻居节点覆盖的范围大于所述第二邻居节点覆盖的范围;
判断是否能够从当前的中间节点直接跳转至所述目标节点,若能够则直接跳转至所述目标节点,并从所述目标节点中获取目标数据,否则将当前的任一中间节点作为新的X节点,并返回所述从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点。
可选的,在根据目标数据获取请求确定起始节点和目标节点的坐标之前,还包括:
根据节点总数量确定目标坐标系的总维度数;
将每个节点均表示在维度数为所述总维度数的坐标系下。
可选的,将每个节点均表示在维度数为所述总维度数的坐标系下,包括:
获取每个节点的标识信息,并分别计算得到每个所述标识信息的哈希值;
将每个节点的哈希值按所述总维度数拆分为相同数量的字符串,并将每个所述字符串转换为二进制数,得到每个节点各维度的坐标;
按预设顺序排列各维度的坐标,得到表示在所述坐标系下的每个节点。
可选的,根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,包括:
将与当前的X节点在相同维度上的坐标差值的最小值不大于预设阈值的节点确定为当前的X节点的第一邻居节点;
将与当前的替换节点在相同维度上的坐标差值的最大值不大于所述预设阈值的节点确定为当前的替换节点的第二邻居节点。
可选的,该目标数据的获取方法还包括:
根据所述第一邻居节点和/或所述第二邻居节点的数量调整所述预设阈值的大小。
可选的,该目标数据的获取方法还包括:
将以坐标形式表示的每个节点所处的坐标系卷曲成环。
可选的,该目标数据的获取方法还包括:
通过多线程以竞争的方式获取所述目标数据;其中,每个线程以不同方式选取每次的目标维度坐标用于替换得到对应的替换节点。
为实现上述目的,本申请还提供了一种目标数据的获取系统,包括:
起始、目标节点坐标确定单元,用于根据目标数据获取请求确定起始节点和目标节点的坐标,并将所述起始节点作为当前的X节点;
当前替换节点确定单元,用于从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点;
当前中间节点确定单元,用于根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,且将所述第一邻居节点与所述第二邻居节点的交集作为当前的中间节点;其中,所述第一邻居节点覆盖的范围大于所述第二邻居节点覆盖的范围;
判断及处理单元,用于判断是否能够从当前的中间节点直接跳转至所述目标节点,若能够则直接跳转至所述目标节点,并从所述目标节点中获取目标数据,否则将当前的任一中间节点作为新的X节点,并返回所述从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点。
可选的,该目标数据的获取系统还包括:
总维度数确定单元,用于在根据目标数据获取请求确定起始节点和目标节点的坐标之前,根据节点总数量确定目标坐标系的总维度数;
节点坐标化表示单元,用于将每个节点均表示在维度数为所述总维度数的坐标系下。
可选的,所述节点坐标化表示单元包括:
标识信息获取及哈希值计算子单元,用于获取每个节点的标识信息,并分别计算得到每个所述标识信息的哈希值;
各维度坐标得到子单元,用于将每个节点的哈希值按所述总维度数拆分为相同数量的字符串,并将每个所述字符串转换为二进制数,得到每个节点各维度的坐标;
各维度坐标排列子单元,用于按预设顺序排列各维度的坐标,得到表示在所述坐标系下的每个节点。
可选的,所述当前中间节点确定单元包括:
第一邻居节点计算子单元,用于将与当前的X节点在相同维度上的坐标差值的最小值不大于预设阈值的节点确定为当前的X节点的第一邻居节点;
第二邻居节点计算子单元,用于将与当前的替换节点在相同维度上的坐标差值的最大值不大于所述预设阈值的节点确定为当前的替换节点的第二邻居节点。
可选的,该目标数据的获取系统还包括:
距离阈值调整单元,用于根据所述第一邻居节点和/或所述第二邻居节点的数量调整所述预设阈值的大小。
可选的,该目标数据的获取系统还包括:
坐标系卷曲单元,用于将以坐标形式表示的每个节点所处的坐标系卷曲成环。
可选的,该目标数据的获取系统还包括:
多线程竞争单元,用于通过多线程以竞争的方式获取所述目标数据;其中,每个线程以不同方式选取每次的目标维度坐标用于替换得到对应的替换节点。
为实现上述目的,本申请还进一步提供了一种电子设备,所述电子设备包括存储器、处理器、总线以及执行机构,所述存储器上存储有可在所述处理器上运行的目标数据获取程序,所述目标数据获取程序被所述总线传输至所述处理器,并在被所述处理器执行时控制所述执行机构实现如上述内容所描述的目标数据的获取方法。
为实现上述目的,本申请还进一步提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有目标数据获取程序,所述目标数据获取程序可被一个或者多个处理器执行,以实现如上述内容所描述的目标数据的获取方法。
显然,本申请提供的目标数据的获取方法,将每个节点预先表示在预设维度数的坐标系下,每个节点均由预设维度数的坐标组成,在由起始节点逼近目标节点的过程中,本申请通过将起始节点的各维度坐标逐个替换为目标节点相同维度的坐标的方式来实现,此种方式下,最大跳跃次数等同于预设维度数,而多维坐标系下每个维度都可以有不定的边长,使得数以百万计的节点完全可以分布在较少维度数(例如4或5)的坐标系中,相比于现有技术在O(log2N)复杂度下动辄20次以上的跳跃次数,应用本申请提供的方案将只需极少的跳跃次数就可实现相同的效果,随着节点数量的增多,效果更佳明显。本申请同时还提供了一种目标数据的获取系统、电子设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种目标数据的获取方法的流程图;
图2为本申请实施例提供的一种将每个节点表达在预设维度的坐标下的方法的流程图;
图3为本申请实施例提供的一种目标数据的获取系统的结构框图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
请参见图1,图1为本申请实施例提供的一种目标数据的获取方法的流程图,其包括以下步骤:
S1:根据目标数据获取请求确定起始节点和目标节点的坐标,并将起始节点作为当前的X节点;
本步骤旨在根据接收到的目标数据获取请求来确定起始节点的坐标和目标节点的坐标,其中,目标数据存储于该目标节点中。
区别于常规DHT算法,还需要预先将每个作为分布式存储网络的存储节点均以坐标的形式表示在预设的坐标系下,该坐标系拥有可自行设定的维度数(其中,维度数为2的坐标系通常被称为直角坐标系、维度数为3的坐标系通常为空间直角坐标系)。为了使的该坐标系能够将容纳数以百万计的存储节点,还可以根据存储节点的总数量调整需要采用的维度数来构建该坐标系,同时也可以为每个维度设置一个较大的边长的方式来使得在小维度数的坐标系下容纳更多存储节点,或为每个维度设置一个较小的边长的方式在使用更多维度数时减少每个维度下的搜索时间,此处并不做具体限定,可根据实际情况灵活调整。
一种包括但不限于的实现方式为:
S01:根据节点总数量确定目标坐标系的总维度数;
S02:将每个节点均表示在维度数为总维度数的坐标系下。
通常情况下,在将每个节点表示在预设维度数的坐标系时,只需要对所有存储节点采用相同的坐标化操作即可,而具体如何进行坐标化、得到每个维度的坐标,可采用诸如随机数、统一增加法、归一化等方式,此处并不做具体限定。进一步的,为了使各存储节点更加均匀的分布在该坐标系中,优选的可以使用随机数法,或能够将不同的节点信息转换为均匀性更好的参数的处理方式,使得在更加均匀的分布情况下,得到更好的目标节点找寻效果。
S2:从目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点;
在S1的基础上,本步骤旨在通过坐标替换的方式得到当前的替换节点,需要说明的是,坐标替换操作是一个将会重复进行的操作,每次执行仅使用目标节点的一个维度坐标替换当前的X节点相同维度的坐标,以得到坐标替换后的当前的替换节点。
为了方便理解,举一个简单的例子,假设起始节点为A、目标节点为B,同时假设每个节点表示在空间直角坐标系中(即预设维度数为3),A的坐标为(A1、A2、A3),B的坐标为(B1、B2、B3),在首次执行S2步骤时,当前的X节点就是A(起始节点),且还未经过坐标替换操作,因此可以从B的三个维度坐标中任意选取一个维度的坐标,假定将B1作为本次执行坐标替换操作的目标维度坐标,与B1对应的A相同维度的坐标为A1,因此,当前的替换节点的坐标为(B1、A2、A3)。
进行坐标替换操作的目的是想通过一步步增加目标节点的特征信息来逼近目标节点。
可以看到,上述例子选取的是B1作为首次进行坐标替换的目标维度坐标,当然也可以选取B2或者B3作为首次进行坐标替换的目标维度坐标,也就是说可以在未被选取过的维度坐标中任意选取一个维度坐标作为本次的目标维度坐标,而每次选取的不同,后续步骤所执行的具体操作也将会因当前的替换节点的不同得到不同的中间步骤(最终结果应是一致的),而通过不同中间步骤达到最终结果的过程将存在差异,差异将体现在替换操作的执行次数、每次替换过后后续步骤的执行时间等等因素中,因此在计算性能足够的情况下,可同时开启多个线程来分别选取不同的维度坐标进行,例如一个线程按照B1→B2→B3的顺序进行替换,一个线程按照B2→B1→B3的顺序进行替换,一个线程按照B3→B2→B1的顺序进行替换等等,不同线程由于替换顺序不一,可实现竞争式的获取目标数据的目的,并在一个线程先获取到目标数据是中止其它线程。
进一步的,还可以通过统计不同替换顺序下的线程分别获取到目标数据的时长来确定一个较优的替换顺序,以直接使用较优的替换顺序来进行每次的替换操作。
S3:根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,且将第一邻居节点与第二邻居节点的交集作为当前的中间节点;
在S2的基础上,本步骤旨在通过取交集的方式找到同时存储有当前的X节点与当前的替换节点的信息的当前的中间节点。其中,第一邻居节点为以当前的X节点为中心通过第一距离算法确定出的节点,第二邻居节点为以当前的替换节点为中心通过第二距离算法确定出的节点,而作为第一邻居节点和第二邻居节点的交集的中间节点,说明当前的X节点中存储有该中间节点的信息,可以直接跳转至该中间节点,而该中间节点又同时存储有当前的替换二节点的信息,可以直接跳转至当前的替换节点,因此,该中间节点相比当前的X节点更加逼近目标节点(因为当前的替换节点就是使用目标节点的一个或多个维度坐标替换得到的)。需要说明的是,为了使得结果尽可能的收敛,即范围逐步缩小,还需要通过第一距离算法算出的第一邻居节点的覆盖范围大于通过第二距离算法算出的第二邻居节点的覆盖范围。
其中,该第一距离算法和第二距离算法均可在不相同且满足覆盖范围要求的情况下,任意选取包括欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离、马氏距离、夹角余弦、汉明距离、杰卡德距离&杰卡德相似系数、相关系数&相关距离、以及信息熵在内的距离算法。
优选的,本申请还提供了一种简单易行的邻居节点计算方式,经测试效果较优:
将与当前的X节点在相同维度上的坐标差值的最小值不大于预设阈值的节点确定为当前的X节点的第一邻居节点;
将与当前的替换节点在相同维度上的坐标差值的最大值不大于该预设阈值的节点确定为当前的替换节点的第二邻居节点。其中,该预设阈值是一个距离阈值,可根据实际情况自行设定。同时,可以基于最小值不大于预设阈值确定得到的第一邻居节点的覆盖范围明显大于基于最大值不大于该预设阈值确定得到的第二邻居节点的覆盖范围,这是因为通过将基于当前的替换节点为中心确定的第二邻居节点的覆盖范围设置的较小,将能够使得结果收敛更快,更加快速的逼近目标节点。
进一步的,在调整该预设阈值时,不仅可以根据第一邻居节点和/或第二邻居节点的数量来进行,还可以根据每个维度的边长来综合考虑。
进一步的,除各维度的直角坐标外,还可以通过将直角坐标系卷曲成环的方式(即构成一个虚拟的多维torus空间,中文名为多维圆环面空间)来增加采用各式距离算法计算邻居节点时的覆盖范围。以每个维度边长为32的二维直角坐标系而言,将其卷曲成环后,由于0点与32点收尾相接,使得每个维度的最大距离从32降低到了16,因此在给定确定邻居节点的距离阈值时覆盖更多的节点,使得结果更加准确,能够尽可能的减少跳数。
S4:判断是否能够从当前的中间节点直接跳转至目标节点,如果能则执行S6,否则执行S5;
在S3的基础上,本步骤旨在判断是否能够从当前的中间节点直接跳转至目标节点,即是否还需要继续进行坐标替换操作。这是因为坐标替换操作的执行次数并不一定要执行够与预设维度数相同的数,这是因为目标节点将有可能仅经过一次或少数次就能够根据对应次数的中间节点跳转至目标节点,换句话说,最大跳数等同于预设维度数,但也包括只需要通过较少的跳数就能够找到目标节点。
S5:将当前的任一中间节点作为新的X节点;
本步骤建立在S4的判断结果为未能从当前的中间节点直接跳转至目标节点的基础上,也就是还需要继续进行坐标替换操作,以通过与目标节点特征更加逼近的替换节点来继续找寻目标节点,因此需要将当前的任一中间节点作为新的X节点,并跳转至S2步骤继续执行。
S6:直接跳转至目标节点,并从目标节点中获取目标数据。
本步骤建立在S4的判断结果为能够从当前的中间节点直接跳转至目标节点的基础上,也就是说无需再进行坐标替换操作,当前的中间节点已足够逼近目标节点,即当前的中间节点中已保存有目标节点的信息,使得能够直接从当前的中间节点跳转至目标节点,并从该目标节点中获取目标数据。
本申请提供的目标数据的获取方法,将每个节点预先表示在预设维度数的坐标系下,每个节点均由预设维度数的坐标组成,在由起始节点逼近目标节点的过程中,本申请通过将起始节点的各维度坐标逐个替换为目标节点相同维度的坐标的方式来实现,此种方式下,最大跳跃次数等同于预设维度数,而多维坐标系下每个维度都可以有不定的边长,使得数以百万计的节点完全可以分布在较少维度数(例如4或5)的坐标系中,相比于现有技术在O(log2N)复杂度下动辄20次以上的跳跃次数,应用本申请提供的方案将只需极少的跳跃次数就可实现相同的效果,随着节点数量的增多,效果更佳明显。
实施例二
请参见图2,图2为本申请实施例提供的一种将每个节点表达在预设维度的坐标下的方法的流程图,本实施例提供了一种节点的坐标化表示方法,能够使得各节点能够以均匀程度更高、随机性更高的方式分布在预设维度数的坐标系下,使得结果更佳,包括如下步骤:
S021:获取每个节点的标识信息,并分别计算得到每个标识信息的哈希值;
其中,节点的标识信息可以理解为节点的身份信息,这是每个节点在接入分布式存储网络时就可以得到的信息,具体的,该标识信息还可以由名称子标识和资源子标识两部分或更多的部分组成,以使的基于更多种类标识计算得到的各标识信息间具有更低的冲突概率和更佳的随机性。
S022:将每个节点的哈希值按总维度数拆分为相同数量的字符串,并将每个字符串转换为二进制数,得到每个节点各维度的坐标;
在S021的基础上,本步骤旨在通过拆分的方式得到表示该节点的每个维度的坐标。
S023:按预设顺序排列各维度的坐标,得到表示在坐标系下的每个节点。
在S022的基础上,由于各维度坐标是通过拆分的方式得到的,因此并没有限制各维度的排列方式,因此还需要按预设的排列顺序将各维度的坐标排列起来,以最终得到以坐标形式表示在坐标系下的每个节点。
本实施例通过对每个节点的标识信息进行哈希运算的方式,借助哈希运算的特殊处理方式得以将每个节点凌乱的标识信息转换为统一度更高但又互不相同的哈希运算结果,再通过分组的方式得到每个维度的坐标,最终通过将各维度坐标排列起来的方式得到最终坐标,基于此方案,可使得每个节点能够更高均匀性、更高随机性的方式分布在坐标系下,效果更佳。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
实施例三
请参见图3,图3为本申请实施例提供的一种目标数据的获取系统的结构框图,该系统可以包括:
起始、目标节点坐标确定单元100,用于根据目标数据获取请求确定起始节点和目标节点的坐标,并将起始节点作为当前的X节点;
当前替换节点确定单元200,用于从目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点;
当前中间节点确定单元300,用于根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,且将第一邻居节点与第二邻居节点的交集作为当前的中间节点;其中,第一邻居节点覆盖的范围大于第二邻居节点覆盖的范围;
判断及处理单元400,用于判断是否能够从当前的中间节点直接跳转至所述目标节点,若能够则直接跳转至所述目标节点,并从所述目标节点中获取目标数据,否则将当前的任一中间节点作为新的X节点,并返回所述从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点。
进一步的,该目标数据的获取系统还可以包括:
总维度数确定单元,用于在根据目标数据获取请求确定起始节点和目标节点的坐标之前,根据节点总数量确定目标坐标系的总维度数;
节点坐标化表示单元,用于将每个节点均表示在维度数为总维度数的坐标系下。
其中,该节点坐标化表示单元可以包括:
标识信息获取及哈希值计算子单元,用于获取每个节点的标识信息,并分别计算得到每个标识信息的哈希值;
各维度坐标得到子单元,用于将每个节点的哈希值按总维度数拆分为相同数量的字符串,并将每个字符串转换为二进制数,得到每个节点各维度的坐标;
各维度坐标排列子单元,用于按预设顺序排列各维度的坐标,得到表示在坐标系下的每个节点。
其中,该当前中间节点确定单元300可以包括:
第一邻居节点计算子单元,用于将与当前的X节点在相同维度上的坐标差值的最小值不大于预设阈值的节点确定为当前的X节点的第一邻居节点;
第二邻居节点计算子单元,用于将与当前的替换节点在相同维度上的坐标差值的最大值不大于预设阈值的节点确定为当前的替换节点的第二邻居节点。
进一步的,该目标数据的获取系统还可以包括:
距离阈值调整单元,用于根据第一邻居节点和/或第二邻居节点的数量调整预设阈值的大小。
进一步的,该目标数据的获取系统还可以包括:
坐标系卷曲单元,用于将以坐标形式表示的每个节点所处的坐标系卷曲成环。
更进一步的,该目标数据的获取系统还可以包括:
多线程竞争单元,用于通过多线程以竞争的方式获取目标数据;其中,每个线程以不同方式选取每次的目标维度坐标用于替换得到对应的替换节点。
本实施例作为与方法实施例对应的系统实施例存在,具有与方法实施例相同的有益效果,此处不再一一赘述。
在上文中已通过一些实施例对如何通过逐个替换坐标的方式逐步逼近目标节点进行了详细的描述,本申请还提供一种与该方法对应的实体硬件装置,此部分内容原理与方案部分相对应,实现原理的部分此处不再赘述,以下将对该实体硬件装置的硬件组成进行描述,请参见图4,图4为本申请实施例提供的一种电子设备的结构示意图:
该电子设备500包括存储器510、处理器520以及总线530,存储器510上存储有可在处理器520上运行的操作系统的目标数据获取程序,该目标数据获取程序通过总线530被传输至处理器520,并在被处理器520执行时可实现如上述实施例所描述的各步骤。
其中,存储器510至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器510在一些实施例中可以是该电子设备500的内部存储单元,例如电子设备500的硬盘。存储器510在另一些实施例中也可以是该电子设备500的外部存储设备,例如电子设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器510还可以同时由内部存储单元和外部存储设备同时组成。进一步的,存储器510不仅可以用于存储安装于电子设备500中的各种应用软件和各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器520在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器510中存储的程序代码或处理数据,例如执行目标数据获取操作的程序等。
总线530可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条双向中空指示线表示,但并不表示仅有一根总线或一种类型的总线。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中所给出的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种目标数据的获取方法,其特征在于,包括:
根据目标数据获取请求确定起始节点和目标节点的坐标,并将所述起始节点作为当前的X节点;
从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点;
根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,且将所述第一邻居节点与所述第二邻居节点的交集作为当前的中间节点;其中,所述第一邻居节点覆盖的范围大于所述第二邻居节点覆盖的范围;
判断是否能够从当前的中间节点直接跳转至所述目标节点,若能够则直接跳转至所述目标节点,并从所述目标节点中获取目标数据,否则将当前的任一中间节点作为新的X节点,并返回所述从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点。
2.根据权利要求1所述的获取方法,其特征在于,在根据目标数据获取请求确定起始节点和目标节点的坐标之前,还包括:
根据节点总数量确定目标坐标系的总维度数;
将每个节点均表示在维度数为所述总维度数的坐标系下。
3.根据权利要求2所述的获取方法,其特征在于,将每个节点均表示在维度数为所述总维度数的坐标系下,包括:
获取每个节点的标识信息,并分别计算得到每个所述标识信息的哈希值;
将每个节点的哈希值按所述总维度数拆分为相同数量的字符串,并将每个所述字符串转换为二进制数,得到每个节点各维度的坐标;
按预设顺序排列各维度的坐标,得到表示在所述坐标系下的每个节点。
4.根据权利要求1所述的获取方法,其特征在于,根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,包括:
将与当前的X节点在相同维度上的坐标差值的最小值不大于预设阈值的节点确定为当前的X节点的第一邻居节点;
将与当前的替换节点在相同维度上的坐标差值的最大值不大于所述预设阈值的节点确定为当前的替换节点的第二邻居节点。
5.根据权利要求4所述的获取方法,其特征在于,还包括:
根据所述第一邻居节点和/或所述第二邻居节点的数量调整所述预设阈值的大小。
6.根据权利要求1至5任一项所述的获取方法,其特征在于,还包括:
将以坐标形式表示的每个节点所处的坐标系卷曲成环。
7.根据权利要求1所述的获取方法,其特征在于,还包括:
通过多线程以竞争的方式获取所述目标数据;其中,每个线程以不同方式选取每次的目标维度坐标用于替换得到对应的替换节点。
8.一种目标数据的获取系统,其特征在于,包括:
起始、目标节点坐标确定单元,用于根据目标数据获取请求确定起始节点和目标节点的坐标,并将所述起始节点作为当前的X节点;
当前替换节点确定单元,用于从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点;
当前中间节点确定单元,用于根据第一距离算法确定当前的X节点的第一邻居节点,并根据第二距离算法确定当前的替换节点的第二邻居节点,且将所述第一邻居节点与所述第二邻居节点的交集作为当前的中间节点;其中,所述第一邻居节点覆盖的范围大于所述第二邻居节点覆盖的范围;
判断及处理单元,用于判断是否能够从当前的中间节点直接跳转至所述目标节点,若能够则直接跳转至所述目标节点,并从所述目标节点中获取目标数据,否则将当前的任一中间节点作为新的X节点,并返回所述从所述目标节点的各维度坐标中选取得到任一未被选取过的目标维度坐标,并使用所述目标维度坐标替换当前的X节点中相同维度的坐标,得到当前的替换节点。
9.一种电子设备,其特征在于,所述电子设备包括存储器、处理器以及总线,所述存储器上存储有可在所述处理器上运行的目标数据获取程序,所述目标数据获取程序被所述总线传输至所述处理器,并在被所述处理器执行时可实现如权利要求1至7任一项所述的目标数据的获取方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有预安装程序,所述预安装程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的目标数据的获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910027182.4A CN109753510B (zh) | 2019-01-11 | 2019-01-11 | 一种目标数据的获取方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910027182.4A CN109753510B (zh) | 2019-01-11 | 2019-01-11 | 一种目标数据的获取方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753510A CN109753510A (zh) | 2019-05-14 |
CN109753510B true CN109753510B (zh) | 2023-04-14 |
Family
ID=66405565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910027182.4A Active CN109753510B (zh) | 2019-01-11 | 2019-01-11 | 一种目标数据的获取方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753510B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188006B (zh) * | 2019-06-03 | 2022-04-29 | 深圳市网心科技有限公司 | 一种数据维护方法、装置及设备 |
CN112162559B (zh) * | 2020-09-30 | 2021-10-15 | 杭州海康机器人技术有限公司 | 用于多机器人混行的方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101437045B (zh) * | 2008-12-18 | 2012-04-25 | 腾讯科技(深圳)有限公司 | P2p系统中中转节点的选择方法及p2p节点 |
CN108419249B (zh) * | 2018-03-02 | 2021-07-02 | 中南民族大学 | 三维无线传感器网络分簇覆盖方法、终端设备及存储介质 |
-
2019
- 2019-01-11 CN CN201910027182.4A patent/CN109753510B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109753510A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7018517B2 (ja) | ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム | |
US9928310B2 (en) | In-memory graph pattern matching | |
CN109753510B (zh) | 一种目标数据的获取方法、系统、电子设备及存储介质 | |
CN105765576B (zh) | 使用数据结构处理搜索查询 | |
CN104680514B (zh) | 使用特征点匹配的图像匹配方法 | |
CN108959370B (zh) | 一种基于知识图谱中实体相似度的社区发现方法及装置 | |
EP2916268A1 (en) | A computer-implemented k-shortest path finding method | |
US10191998B1 (en) | Methods of data reduction for parallel breadth-first search over graphs of connected data elements | |
US9659214B1 (en) | Locally optimized feature space encoding of digital data and retrieval using such encoding | |
US20190065963A1 (en) | Optimal solution search method, optimal solution search program, and optimal solution search apparatus | |
CN110099112B (zh) | 基于点对点网络的数据存储方法、装置、介质及终端设备 | |
US10423616B2 (en) | Using local memory nodes of a multicore machine to process a search query | |
US20130159347A1 (en) | Automatic and dynamic design of cache groups | |
CN113220717B (zh) | 基于区块链的数据核验方法及装置、电子设备 | |
CN106528790B (zh) | 度量空间中支撑点的选取方法及装置 | |
CN106776785B (zh) | 一种数据写入方法及装置和数据处理系统 | |
KR101842274B1 (ko) | 문장 추출 방법 및 시스템 | |
JP7080803B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN110851639A (zh) | 一种以图搜图的方法及设备 | |
CN111008705A (zh) | 一种搜索方法、装置及设备 | |
CN114691610A (zh) | 目录的处理方法和装置、存储介质及处理器 | |
Brown et al. | A heuristic for the time constrained asymmetric linear sum assignment problem | |
Magnani et al. | Anytime skyline query processing for interactive systems | |
CN113868440B (zh) | 特征库的管理方法、装置、设备及介质 | |
CN111368120A (zh) | 目标指纹库构建方法、装置、电子设备及存储介质 |
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 |