CN110602244B - 分布式存储***消息交互方法、节点及分布式存储*** - Google Patents

分布式存储***消息交互方法、节点及分布式存储*** Download PDF

Info

Publication number
CN110602244B
CN110602244B CN201910914764.4A CN201910914764A CN110602244B CN 110602244 B CN110602244 B CN 110602244B CN 201910914764 A CN201910914764 A CN 201910914764A CN 110602244 B CN110602244 B CN 110602244B
Authority
CN
China
Prior art keywords
node
message
sent
nodes
interval information
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
Application number
CN201910914764.4A
Other languages
English (en)
Other versions
CN110602244A (zh
Inventor
林杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Unisinsight Technology Co Ltd
Original Assignee
Chongqing Unisinsight Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Unisinsight Technology Co Ltd filed Critical Chongqing Unisinsight Technology Co Ltd
Priority to CN201910914764.4A priority Critical patent/CN110602244B/zh
Publication of CN110602244A publication Critical patent/CN110602244A/zh
Application granted granted Critical
Publication of CN110602244B publication Critical patent/CN110602244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种分布式存储***消息交互方法、节点及分布式存储***,该消息交互方法应用于第一节点,该第一节点为分布式存储***中的任意一个节点,当存在消息通信需求时,该第一节点获取待发送消息的消息类型;当消息类型为传播消息时,根据区间信息向至少一个目标节点发送待发送的消息,该区间信息包含第一节点和与第一节点具有映射关系的第二节点,接收待发送消息的目标节点属于第二节点。该方法通过第一节点向与第一节点具有映射关系的第二节点传播消息,实现了消息传播具有靶向性,避免出现消息冗余现象,提高消息传播效率的有益效果。

Description

分布式存储***消息交互方法、节点及分布式存储***
技术领域
本发明涉及分布式存储领域,具体而言,涉及一种分布式存储***消息交互方法、节点及分布式存储***。
背景技术
在大规模分布式存储***中,元数据服务器和数据服务器之间需要进行频繁通信,例如:心跳保活、性能监控等;如何保证元数据服务器的消息在整个分布式集群中快速、高效的传播,是影响整个存储***性能和扩展性的关键性因素之一。
在现有技术中,Gossip协议利用一种随机的方式将消息传播到整个分布式集群中,但由于其传播过程的随机性,造成单个服务器接收的消息出现冗余现象,这增加了服务器的消息处理压力,造成消息在整个分布式集群中传播效率低。
发明内容
有鉴于此,本发明的目的在于提供一种分布式存储***消息交互方法、节点及分布式存储***,用以实现消息传播具有靶向性,避免出现消息冗余现象,提高消息传播效率的有益效果。
为了实现上述目的,本发明实施例采取的技术方案如下:
第一方面,本申请提供一种分布式存储***消息交互方法,所述方法应用于第一节点,所述第一节点为分布式存储***中的任意一个节点,所述方法,包括:
当存在消息通信需求时,所述第一节点获取待发送消息的消息类型;
当所述消息类型为传播消息时,所述第一节点根据区间信息向至少一个目标节点发送所述待发送消息;所述区间信息包含所述第一节点与每个第二节点的映射关系,所述目标节点属于至少一个所述第二节点;所述第二节点为所述第一节点的子节点。
结合第一方面,在第一种可能的实现方式中,所述区间信息还包含每个所述第二节点对应的路由表项标识;所述至少一个第二节点的个数为N个;所述当所述消息类型为传播消息时,所述第一节点根据区间信息向至少一个第一目标节点发送所述待发送消息的步骤,包括:
当所述消息类型为传播消息时,所述第一节点根据N个所述第二节点对应的路由表项标识,确定M个第一目标节点;其中,M小于或等于N,任意两个所述第一目标节点对应的路由表项标识不同;
所述第一节点分别向所述M个第一目标节点发送所述待发送消息。
结合第一方面,在第二种可能的实现方式中,当存在与所述第一节点具有相同路由表项标识的第三节点时,所述第一节点将所述待发送消息的消息类型修改为对等消息;
所述第一节点根据所述区间信息向全部第三节点发送所述待发送消息;所述区间信息还包含所述第一节点与每个所述第三节点的映射关系;所述第三节点为所述第一节点的兄弟节点。
结合第一方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述区间信息还包含每个所述第三节点对应的路由表项标识;所述第一节点根据所述区间信息向全部第三节点发送所述待发送消息的步骤,包括:
所述第一节点根据所述第三节点对应的路由表项标识,向全部所述第三节点发送所述待发送消息;所述第三节点对应的路由表项标识与所述第一节点对应的路由表项标识相同。
结合第一方面,在第四种可能的实现方式中,在所述第一节点获取待发送消息的消息类型之前,还包括:
所述第一节点接收第四节点发送的所述待发送消息。
结合第一方面,在第五种可能的实现方式中,还包括:
当存在新增节点时,所述第一节点将所述第一节点与所述新增节点的映射关系更新至所述区间信息;所述新增节点为所述第一节点的子节点或兄弟节点。
结合第一方面,在第六种可能的实现方式中,还包括:
当存在待删除节点时,所述第一节点将所述区间信息中包含的所述第一节点与所述待删除节点的映射关系标注为失效;所述待删除节点为所述第一节点的子节点或兄弟节点。
第二方面,本申请提供一种节点,包括:获取模块和发送模块;
所述获取模块,用于当存在消息通信需求时,获取待发送消息的消息类型;
所述发送模块,用于当所述消息类型为传播消息时,根据区间信息向至少一个目标节点发送所述待发送消息;所述区间信息包含所述第一节点与每个第二节点的映射关系,所述目标节点属于至少一个所述第二节点;所述第二节点为所述第一节点的子节点。
结合第二方面,在第一种可能的实现方式中,该分布式存储节点还包括:接收模块;
所述接收模块,用于在获取待发送消息的消息类型之前接收第四节点发送的所述待发送消息。
第三方面,本申请提供一种分布式存储***,所述分布式***包含多个节点,任意一个所述节点用于执行第一方面所述的消息交互方法。
本申请实施例提供了一种分布式存储***消息交互方法、节点及分布式存储***,该消息交互方法应用于第一节点,该第一节点为分布式存储***中的任意一个节点,当存在消息通信需求时,该第一节点获取待发送消息的消息类型;当消息类型为传播消息时,根据区间信息向至少一个目标节点发送待发送的消息,该区间信息包含第一节点和与第一节点具有映射关系的第二节点,接收待发送消息的目标节点属于第二节点。该方法通过第一节点向与第一节点具有映射关系的第二节点传播消息,实现了消息传播具有靶向性,避免出现消息冗余现象,提高消息传播效率的有益效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为一种分布式存储***架构示意图;
图2为本申请实施例提供的一种新的分布式存储***架构划分机制示意图;
图3本申请实施例提供的一种分布式存储***消息交互方法的流程示意图;
图4为本申请实施例提供的一种分布式存储***消息交互方法的另一种流程示意图;
图5为本申请实施例提供的一种分布式存储***消息交互方法的另一种流程示意图;
图6为本申请实施例提供的一种分布式存储***消息交互方法的另一种流程示意图;
图7为本申请实施例提供的一种分布式存储***消息交互方法的另一种流程示意图;
图8为本申请实施例提供的一种节点的结构框图;
图9为本申请实施例提供的另一种节点的结构框图;
图10为本申请实施例提供的一种分布式存储***。
图标:10-元数据服务器;11-元数据服务器;12-元数据服务器;20-数据服务器;21-数据服务器;22-数据服务器;30-节点;301-获取模块;302-发送模块;303-接收模块;40-分布式存储***。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
目前现有的分布式存储***通常包含元数据服务器和数据服务器,其拓扑结构可以基于具体场景进行个性化的设置。具体的,图1为一种分布式存储***架构示意图,参见图1,该分布式存储***包含一个元数据服务器集群和n个数据服务器;其中该元数据服务器集群包含三个元数据服务器,元数据服务器10、元数据服务器11和元数据服务器12。
对于每一个元数据服务器,其可以用于维护n个数据服务器的元数据信息。
对于每个数据服务器,其可以用于存储用户数据,提供数据读写访问。
进一步地,为了满足高可靠性和高可用性要求,元数据服务器可以采用集群化或主备同步模式。例如参见图1,由三个元数据服务器集群化,通过网络与多个数据服务器进行数据连接,协同地为多个数据服务器提供元数据服务,实现与多个数据服务器之间频繁通信、根据负载均衡策略调度分发任务等功能。相应地,各个服务器之间可以通过数据同步(Synchronization,简称sync)来保持数据一致性。
此处对于元数据服务器是否构建分布式集群不做限定。
继续参见图1,多个数据服务器之间可以通过网络进行数据传输。例如,数据服务器20与数据服务器21至数据服务器n之间可以相互传输数据或消息。元数据服务器和数据服务器之间也可通过网路进行通信,以元数据服务器10与数据服务器20至数据服务器n为例,元数据服务器10与各个数据服务器之间需要进行频繁通信,例如:心跳保活、性能监控等。在大规模分布式存储***中,如何保障元数据服务器和数据服务器之间消息传播的高效性,成为了影响整个存储***性能和扩展性的关键性因素。
在现有技术中,通常将Gossip协议应用于大规模分布式***中进行消息传播,消息传播流程如下:由种子节点发起,当种子节点有状态变化信息需要传播给集群中其他节点时,随机选择周围几个节点进行传播;收到消息的节点重复这一过程,最终集群内所有节点都会收到该消息。
但由于Gossip协议传播过程的随机性等原因,实际应用中传播很难达到最优值,且存在消息冗余的问题,即同个节点可能会重复收到同个消息,增加了节点的消息处理压力,降低了消息传播的高效性。
例如,参见图1,当元数据服务器10作为种子节点需要向数据服务器20至数据服务器n发送消息时,元数据服务器10可以随机选择数据服务器20、数据服务器22进行消息传播,数据服务器20和数据服务器22收到消息后,也随机挑选数据来传播消息,这时,数据服务器20和数据服务器22都有可能选择数据服务器21来传播消息,这样一来,数据服务器22就会重复接收相同的消息,造成消息冗余,同理,其他数据服务器也可能会出现消息冗余现象,这种现象会给***中的节点带来巨大的消息处理压力,从而降低了消息在***中的传播效率。
因此,为了解决上述问题,本申请的思路是提供一种新的分布式存储***架构划分机制,下面通过一个具体的分布式***框架示例,对本发明实施例提供的技术方案进行说明,具体的,图2为本申请实施例提供的一种新的分布式存储***架构划分机制示意图,其核心在于简化分布式存储***中各个节点之间维护的拓扑信息。参见图2,该***包括:节点1~节点21;
为了简化各个节点维护的拓扑信息,本发明实施例引入区间信息的概念,即对于该***中的父节点来说,其仅维护与其属于同一个区间的子节点的区间信息。
例如,参见图2,节点1与节点2、节点3、节点4、节点5、节点6属于同一个区间1,节点1为该区间内的父节点,因此该节点1用于维护该区间1的区间信息,即该节点1与节点2、节点3、节点4、节点5、节点6的映射关系。进而对于该区间1中的节点2和节点3来说,其又同时属于区间2,且其均为是区间2中的父节点,故该节点2和节点3维护该区间2的区间信息,即该节点2和节点3与节点7、节点8、节点9、节点10、节点11、节点12、节点13的映射关系。
本发明实施例通过上述方式,将一个完整地拓扑信息,以区间信息的形式,分片存储于各个区间中的父节点上。从而当存在消息通信需求时,由获得该需求的父节点,利用其维护的区间信息向对应的子节点进行消息传播。例如,参见图2中的节点2,当节点2存在消息通信需求时,会根据其维护的区间2信息向对应的节点7、节点8、节点9、节点10、节点11、节点12、节点13进行消息传播。
在维护区间信息的同时,对于一个分布式存储***来说,一个节点除了可能存在其父节点与子节点之外,还可能存在兄弟节点。为了在上述架构的基础上完成兄弟节点之间的消息通信,可选地,每个节点维护路由表项标识。具体有相同路由表项标识的节点,即为兄弟节点。
从而,对于本发明实施例提供的技术方案来说,对于分布式***中每一个节点来说,当存在消息通信需求时,其可以通过自身维护的区间信息和路由表项标识,实现向属于同一个区间内的子节点、兄弟节点发送相应的消息,以实现消息在***中传播不会出现消息冗余的现象,提高消息在***中的传播效率。
需要说明的是,为了便于区分,本发明实施例中将父节点向子节点发送的消息类型定义为传播消息,将兄弟节点之间发送的消息类型定义为对等消息。该定义方式仅是为了方便区分各个节点发送消息的对象,对于不同的存储架构、传输协议来说,这两种消息的区分方式,可以采用其他可能的实现形式,例如通过消息标识、源地址及目的地址进行区分的方式。故此处对于区分的方式不予限定。并且,图2***中所示的各个节点,可以为:数据服务器、元数据服务器或者与构成分布式存储***相关的任意一种可能的节点设备,此处不予限定。
进而,下面以图2的***架构为例,对本申请提供的一种分布式存储***消息交互方法进行介绍,可选地,图3为本申请实施例提供的一种分布式存储***消息交互方法的流程示意图,该图执行主体可以为上述图2中的任意一个节点,下面对该节点作为父节点时的执行流程进行介绍,参见图3,该方法包括:
步骤202、当存在消息通信需求时,第一节点获取待发送消息的消息类型。
具体地,消息通信需求可以是来自元数据服务器发出的传播消息指令,也可以是需要继续传播的消息。例如,参见图2,当第一节点为节点1时,消息通信需求指得可以是节点1接收的来自元数据服务器发出的传播消息指令,而当第一节点为2时,该消息通信需求指得是节点2需要继续传播的消息。
步骤203、当消息类型为传播消息时,第一节点根据区间信息向至少一个目标节点发送待发送消息。
具体地,区间信息存储于第一节点的内存中,其中包含了第一节点和与第一节点具有映射关系的第二节点,例如,继续参见图2,当第一节点为节点1时,其维护的区间信息包含节点1的子节点,即节点2、节点3、节点4、节点5、节点6,该第二节点为节点1的子节点。而当第一节点为节点2时,在区间1中,节点2为节点1的子节点,但是在区间2中,该节点2为节点7、节点8、节点9、节点10、节点11、节点12、节点13的父节点,因此,该节点2维护的区间2信息包含节点7、节点8、节点9、节点10、节点11、节点12、节点13。
本申请实施例提供的一种分布式存储***消息交互方法,应用于第一节点,该第一节点为分布式存储***中的任意一个节点,当存在消息通信需求时,该第一节点获取待发送消息的消息类型;当消息类型为传播消息时,根据区间信息向至少一个目标节点发送待发送的消息,该区间信息包含第一节点和与第一节点具有映射关系的第二节点,接收待发送消息的目标节点属于第二节点。该方法通过第一节点向与第一节点具有映射关系的第二节点传播消息,实现了消息传播具有靶向性,避免出现消息冗余现象,提高消息传播效率的有益效果。
例如,继续参见图2,当第一节点为节点1时,节点1属于路由表1,其对应的路由表项标识可以为“Route Table 1”。当节点1获知存在消息通信需求时,通过其维护的“RouteTable 1”可知,其并不存在相应地兄弟节点,此时,节点1仅根据区间信息向其对应的子节点发送相应消息。
可选地,为了避免重复传播消息,当一个父节点向多个子节点传播消息时,其可以通过各个子节点对应的路由表项标识,来进行选择,其选择的原则是:对于具有相同路由表项标识的多个子节点来说,父节点随即选择其中任意一个子节点下发消息。因此,在图3的基础上,图4为本申请实施例提供的一种分布式存储***消息交互方法的流程示意图,参见图4,其中步骤203的一种可能的实现方式为:
步骤203-1、当消息类型为传播消息时,第一节点根据N个第二节点对应的路由表项标识,确定M个第一目标节点。
具体地,N个第二节点对应的路由表项标识包含在区间信息内,任意两个所述第一目标节点对应的路由表项标识不同。
例如,参见图2,当第一节点为节点1时,其维护的区间1信息包含节点2和节点3对应的路由表项标识“Route Table 2”,以及节点4、节点5、节点6的对应的路由表项标识“Route Table 3”。而当第一节点为节点2时,其在区间1中作为节点1的子节点,由节点1维护其对应的路由表项标识,但在区间2中,节点2作为该区间2的中的父节点,维护区间2信息,该区间2信息中包含节点7和节点8对应的路由表项标识“Route Table 4”、节点9和节点10对应的路由表项标识“Route Table 5”、节点11、节点12、节点13对应的路由表项标识“Route Table 6”。
具体地,对于步骤203-1,M小于或等于N。根据不同规则划分***架构的机制中,每个路由表项包含的节点个数不同,当每个路由表项中只包含一个节点时,M等于N;当至少有一个路由表项中包含两个以上节点时,M小于N。
例如,继续参见图2,在区间1中,节点1共有5个子节点,即N=5,当有消息传播时,节点1会分别从路由表项2和路由表项3中随机挑选1个子节点来发送消息,所以总共有2个子节点来接收消息,即M=2,这时,M小于N;而按照规则,路由表项2和路由表项3中也可能只存在一个节点,那么节点1的子节点就共有2个,即N=2,当有消息传播时,节点1会将消息直接向2个子节点来发送消息,所以总共有2个子节点来接收消息,即M=2,这时,M等于N。
步骤203-2、第一节点分别向M个第一目标节点发送待发送消息。
例如,继续参见图2,当第一节点为节点1,其维护的区间1信息中包含节点2和节点3对应的路由表项标识“Route Table 2”,节点4、节点5、节点6的对应的路由表项标识“Route Table 3”,其中,节点2和节点3具有相同的路由表项标识,则节点1会从节点2和节点3中随机选择节点2或者节点3作为目标节点来发送消息;同理,节点4、节点5、节点6对应的路由表项标识相同,节点1会从节点4、节点5、节点6中随机选择一个节点来下发消息。可知,当一个父节点向多个子节点传播消息时,任意两个接收消息的子节点对应的路由表项标识不同。
可选地,参见图4对应的实施例可知,通过路由表项标识,作为父节点的第一节点对子节点进行选择,对于具有相同路由表项标识的子节点,该父节点随即选择一个子节点进行消息的传播。进而,对于属于同一个路由表的多个子节点来说,本发明实施例还提供一种实现方式,以实现消息在这些子节点之间进行传播。首先,应该理解的是,对于属于同一个路由表的多个子节点,即具有相同路由表项标识的子节点,其相互被定义为兄弟节点。在图3的基础上,图5为本申请实施例提供的另一种分布式存储***消息交互方法的流程示意图,参见图5,该方法还包括:
步骤204、当存在与第一节点具有相同路由表项标识的第三节点时,第一节点将待发送消息的消息类型修改为对等消息。
具体地,参见图2,当该第一节点为节点2时,该节点2获得了有节点1发送的消息,该消息类型为传播消息,此时节点2通过路由表项标识“Route Table 2”确定与其由相同路由标识的节点3,则节点2将接收到的消息类型修改为对等消息。
步骤205、第一节点根据区间信息向全部第三节点发送待发送消息。
具体地,继续以节点2为例,节点2维护的区间2信息中还包含了与节点3之间的映射关系,即节点2的兄弟节点,节点3,则第三节点为节点3,所以节点2还需要向节点3发送消息。可选地,为了能够将待发送消息准确地发送给第三节点,给出一种可能的实现方式,在图5的基础上,图6为本申请实施例提供的另一种分布式存储***消息交互方法的流程示意图;参见图6,其中步骤205的一种可能的实现方式为:
步骤205-1、第一节点根据第三节点对应的路由表项标识,向全部所第三节点发送待发送消息。
具体地,以图2中的节点2为例,节点2维护的区间2信息除了包含子节点对应的路由表项标识“Route Table 4”、“Route Table 5”以及“Route Table 6”之外,还包含了即节点3的路由表项标识“Route Table 2”,且节点2与节点3对应的路由表项标识相同,节点2通过路由表项标识“Route Table 2”,将对等消息发送给节点3。进而,节点3在接收到节点2发送的对等消息后,不向子节点也就是节点7、节点8、节点9、节点10、节点11、节点12、节点13发送消息,这样一来,子节点在接收到节点2发送的消息后,不会再接收到消息了,也就避免出现消息冗余的现象。
可选地,在第一节点获取待发送消息的消息类型之前,在图3的基础上,给出一种第一节点接收待发送消息可能的实现方式,参见图7,图7为本申请实施例提供的另一种分布式存储***消息交互方法的流程示意图,即在步骤202之前,还包括:
步骤201、第一节点接收第四节点发送的待发送消息。
具体地,由于第一节点的区间信息内只包含与第一节点有映射关系的节点,即第一节点的子节点和兄弟节点,所以第一节点无法获知待发送消息的消息来源,即第四节点,第一节点可以是图2中的任意一个节点。
例如,参见图2,当第一节点是节点2时,那么第四节点即是节点1,节点2作为区间2中的父节点,维护的区间1信息中只包含有与其兄弟节点即节点3、子节点即节点7、节点8、节点9、节点10、节点11、节点12、节点13之间的映射关系,并没有包含节点1的信息,所以节点2不能获知节点1是给其发送消息的第四节点,由于本实施例的执行主体是作为父节点的第一节点,所以这里不能对第四节点作限定性描述。
可选地,当存在新增节点时,第一节点将第一节点与新增节点的映射关系更新至区间信息;新增节点为第一节点的子节点或兄弟节点。
可选地,当存在待删除节点时,第一节点将区间信息中包含的第一节点与待删除节点的映射关系标注为失效;待删除节点为第一节点的子节点或兄弟节点。
为了实现上述实施例的各个步骤,以达到对应的技术效果,下面给出一种节点的实现方式,该节点可以为上述图2中任意一个节点,可选地,图8为本申请实施例提供的分布式存储节点的结构框图,参见图8,该节点30包括:获取模块301和发送模块302。
获取模块301,用于当存在消息通信需求时,获取待发送消息的消息类型。
发送模块302,用于当消息类型为传播消息时,根据区间信息向至少一个目标节点发送待发送消息;区间信息包含第一节点与每个第二节点的映射关系,目标节点属于至少一个所述第二节点;第二节点为第一节点的子节点。
具体地,获取模块301、发送模块302可以执行步骤202,步骤203以实现相应的技术效果。
本申请实施例提供的节点,当存在消息通信需求时,通过获取模块获取消息类型,当消息类型为传播消息时,通过发送模块根据区间信息向至少一个目标节点发送待发送消息,从而实现消息传输具有靶向性,避免出现消息冗余现象,提高了消息的传播效率的有益效果。
可选地,发送模块302具体用于根据N个第二节点对应的路由表项标识确定M个第一目标节点;其中,M小于或等于N,任意两个第一目标节点对应的路由表项标识不同;还具体用于向M个第一目标节点发送待发送消息。
具体地,发送模块302可以执行图7中的步骤203-1和203-2以实现相应的技术效果。
可选地,发送模块302还用于当存在与第一节点具有相同路由表项标识的第三节点时,将待发送消息的消息类型修改为对等消息;还用于根据第三节点对应的路由表项标识,向全部第三节点发送待发送消息。第三节点对应的路由表项标识与第一节点对应的路由表项标识相同。
具体地,发送模块302还可以执行图7中的步骤204、步骤205、步骤205-1以实现相应的技术效果。
可选地,在获取待发送消息的消息类型之前,为了实现该节点接收消息的功能,在图8的基础上,给出一种可能的实现方式,参见图9,图9为本申请实施例提供的另一种节点的结构框图,具体地,该节点30还包括:接收模块303。
接收模块303,用于在获取待发送消息的消息类型之前接收第四节点发送的待发送消息。
具体地,接收模块用于执行图7中的步骤201以实现相应的技术效果
可选地,上述装置可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。例如,上述模块可以软件或固件形式存储于图1所示的元数据服务器或数据服务器中或固化于该元数据服务器或数据服务器的操作***(Operating System,OS)中,并可由元数据服务器或数据服务器处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在元数据服务器或数据服务器的存储器中。
本发明实施例还提供一种分布式存储***的实现方式,可选地,图10为一种分布式存储***,参见图10,该分布式存储***40可以包括多个节点,例如,参见图2,该***可以包括:节点1~节点21。
其中任意一个节点可以执行上述实施例中图3、图4、图5、图6及图7对应的流程,以实现对应的技术效果。
在本申请所提供的几个实施例中,应该理解到,所揭露的结构和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的结构、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围。

Claims (9)

1.一种分布式存储***消息交互方法,其特征在于,所述方法应用于第一节点,所述第一节点为分布式存储***中的任意一个节点,所述方法,包括:
当存在消息通信需求时,所述第一节点获取待发送消息的消息类型;
当所述消息类型为传播消息时,所述第一节点根据区间信息向至少一个目标节点发送所述待发送消息;所述区间信息包含所述第一节点与每个第二节点的映射关系,所述目标节点属于至少一个所述第二节点;所述第二节点为所述第一节点的子节点;
所述区间信息还包含每个所述第二节点对应的路由表项标识;所述至少一个所述第二节点的个数为N个;所述当所述消息类型为传播消息时,所述第一节点根据区间信息向至少一个第一目标节点发送所述待发送消息的步骤,包括:
当所述消息类型为传播消息时,所述第一节点根据N个所述第二节点对应的路由表项标识,确定M个第一目标节点;其中,M小于或等于N,任意两个所述第一目标节点对应的路由表项标识不同;
所述第一节点分别向所述M个第一目标节点发送所述待发送消息。
2.根据权利要求1所述的方法,其特征在于,还包括:
当存在与所述第一节点具有相同路由表项标识的第三节点时,所述第一节点将所述待发送消息的消息类型修改为对等消息;
所述第一节点根据所述区间信息向全部第三节点发送所述待发送消息;所述区间信息还包含所述第一节点与每个所述第三节点的映射关系;所述第三节点为所述第一节点的兄弟节点。
3.根据权利要求2所述的方法,其特征在于,所述区间信息还包含每个所述第三节点对应的路由表项标识;所述第一节点根据所述区间信息向全部第三节点发送所述待发送消息的步骤,包括:
所述第一节点根据所述第三节点对应的路由表项标识,向全部所述第三节点发送所述待发送消息;所述第三节点对应的路由表项标识与所述第一节点对应的路由表项标识相同。
4.根据权利要求1所述的方法,其特征在于,在所述第一节点获取待发送消息的消息类型之前,还包括:
所述第一节点接收第四节点发送的所述待发送消息。
5.根据权利要求1所述的方法,其特征在于,还包括:
当存在新增节点时,所述第一节点将所述第一节点与所述新增节点的映射关系更新至所述区间信息;所述新增节点为所述第一节点的子节点或兄弟节点。
6.根据权利要求1所述的方法,其特征在于,还包括:
当存在待删除节点时,所述第一节点将所述区间信息中包含的所述第一节点与所述待删除节点的映射关系标注为失效;所述待删除节点为所述第一节点的子节点或兄弟节点。
7.一种节点,其特征在于,包括:获取模块和发送模块;
所述获取模块,用于当存在消息通信需求时,获取待发送消息的消息类型;
所述发送模块,用于当所述消息类型为传播消息时,根据区间信息向至少一个目标节点发送所述待发送消息;所述区间信息包含第一节点与每个第二节点的映射关系,所述目标节点属于至少一个所述第二节点;所述第二节点为所述第一节点的子节点;
所述区间信息还包含每个所述第二节点对应的路由表项标识;所述至少一个所述第二节点的个数为N个;所述当所述消息类型为传播消息时,所述发送模块,具体用于:
当所述消息类型为传播消息时,所述第一节点根据N个所述第二节点对应的路由表项标识,确定M个第一目标节点;其中,M小于或等于N,任意两个所述第一目标节点对应的路由表项标识不同;
所述第一节点分别向所述M个第一目标节点发送所述待发送消息。
8.根据权利要求7所述的节点,其特征在于,还包括:接收模块;
所述接收模块,用于在获取待发送消息的消息类型之前接收第四节点发送的所述待发送消息。
9.一种分布式存储***,其特征在于,所述分布式存储***包含多个节点,任意一个所述节点用于执行所述权利要求1~6任一项 所述的消息交互方法。
CN201910914764.4A 2019-09-26 2019-09-26 分布式存储***消息交互方法、节点及分布式存储*** Active CN110602244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910914764.4A CN110602244B (zh) 2019-09-26 2019-09-26 分布式存储***消息交互方法、节点及分布式存储***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910914764.4A CN110602244B (zh) 2019-09-26 2019-09-26 分布式存储***消息交互方法、节点及分布式存储***

Publications (2)

Publication Number Publication Date
CN110602244A CN110602244A (zh) 2019-12-20
CN110602244B true CN110602244B (zh) 2020-11-03

Family

ID=68863502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910914764.4A Active CN110602244B (zh) 2019-09-26 2019-09-26 分布式存储***消息交互方法、节点及分布式存储***

Country Status (1)

Country Link
CN (1) CN110602244B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111212264B (zh) * 2019-12-27 2021-08-17 中移(杭州)信息技术有限公司 基于边缘计算的图像处理方法、装置、及存储介质
CN116192880A (zh) * 2020-06-12 2023-05-30 华为技术有限公司 一种以太网存储***及其信息通告方法和相关装置
CN112395334A (zh) * 2020-11-30 2021-02-23 浪潮云信息技术股份公司 将无中心分布式数据库集群划分为多个逻辑子集群的方法
CN112910663B (zh) * 2021-01-14 2022-06-14 网易(杭州)网络有限公司 消息广播和终端注册的方法、装置、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082832A (zh) * 2011-01-24 2011-06-01 中国人民解放军国防科学技术大学 一种分布式文件***中的数据存储方法和装置
CN102143546A (zh) * 2011-04-02 2011-08-03 华南理工大学 一种用于降低树型ZigBee网络中冗余路由包的方法
CN103313234A (zh) * 2013-05-15 2013-09-18 浙江工商大学 无线传感器网络的汇聚节点位置隐私的保护方法
CN106789632A (zh) * 2017-02-25 2017-05-31 郑州云海信息技术有限公司 一种大规模分布式存储***的节点路由的方法
US10362105B1 (en) * 2017-07-31 2019-07-23 Amazon Technologies, Inc. Generating probalistic data structures in gossip protocols

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457257B2 (en) * 2005-11-17 2008-11-25 International Business Machines Corporation Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks
CN101860474B (zh) * 2009-04-08 2015-07-22 中兴通讯股份有限公司 基于对等网络的资源信息处理方法及对等网络
CN105024855B (zh) * 2015-07-13 2018-09-04 浪潮(北京)电子信息产业有限公司 分布式集群管理***和方法
CN109121176B (zh) * 2018-09-29 2021-11-02 中国电子科技集团公司第三十研究所 一种分布式数据同步方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082832A (zh) * 2011-01-24 2011-06-01 中国人民解放军国防科学技术大学 一种分布式文件***中的数据存储方法和装置
CN102143546A (zh) * 2011-04-02 2011-08-03 华南理工大学 一种用于降低树型ZigBee网络中冗余路由包的方法
CN103313234A (zh) * 2013-05-15 2013-09-18 浙江工商大学 无线传感器网络的汇聚节点位置隐私的保护方法
CN106789632A (zh) * 2017-02-25 2017-05-31 郑州云海信息技术有限公司 一种大规模分布式存储***的节点路由的方法
US10362105B1 (en) * 2017-07-31 2019-07-23 Amazon Technologies, Inc. Generating probalistic data structures in gossip protocols

Also Published As

Publication number Publication date
CN110602244A (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
CN110602244B (zh) 分布式存储***消息交互方法、节点及分布式存储***
CN109729111B (zh) 用于管理分布式***的方法、设备和计算机程序产品
EP2835938B1 (en) Message publishing and subscribing method and apparatus
US20050007964A1 (en) Peer-to-peer network heartbeat server and associated methods
CN112583931B (zh) 消息处理方法、消息中间件、电子设备和存储介质
CN103797463A (zh) 用于在云环境中指派虚拟资源的方法和设备
TWI577164B (zh) 可縮放位址解析之技術
JP2003501881A (ja) マルチキャストする方法および装置
JP2004326790A (ja) ネットワーク装置をディスカバリするための方法および装置
KR101485610B1 (ko) 네트워크 구조를 고려한 분산형 컨텐트 전달 시스템 및 그 방법
JP5960820B2 (ja) ツリー構造の管理方法、情報処理システム、及び、プログラム
CN115426312B (zh) 一种大规模多模态网络中标识管理及优化转发方法和装置
US9973427B2 (en) Method for determining management domain, network device, and virtual cluster
JP2009251780A (ja) 分散イベント検出システム、分散イベント検出方法、及び分散イベント検出用プログラム
WO2009111965A1 (zh) 一种数据同步的方法、设备及***
CN111181900B (zh) 一种数据报文发送和接收方法、存储介质及处理器
JP2016116184A (ja) 網監視装置および仮想ネットワーク管理方法
CN111787079A (zh) 基于通信群组的通信方法、装置、服务器、***及介质
CN108319509B (zh) 一种事件管理方法、***及主控设备
CN114731297B (zh) 用于计算设备对等方匹配的消息限制的自组织网络组
CN106357728B (zh) 信息处理方法、***及终端
US9015371B1 (en) Method to discover multiple paths to disk devices cluster wide
CN110851186A (zh) 网络设备重启的方法、装置、电子设备及可读存储介质
CN107710793A (zh) 一种定位方法及对应装置
CN102577249A (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