CN111399772B - 一种节点间的位图信息同步方法、装置、设备及存储介质 - Google Patents
一种节点间的位图信息同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111399772B CN111399772B CN202010132394.1A CN202010132394A CN111399772B CN 111399772 B CN111399772 B CN 111399772B CN 202010132394 A CN202010132394 A CN 202010132394A CN 111399772 B CN111399772 B CN 111399772B
- Authority
- CN
- China
- Prior art keywords
- request
- lock
- target node
- node
- bitmap
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 76
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012986 modification Methods 0.000 claims description 45
- 230000004048 modification Effects 0.000 claims description 45
- 238000012790 confirmation Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013475 authorization Methods 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 abstract description 4
- 230000001360 synchronised effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种节点间的位图信息同步方法、装置、设备及计算机可读存储介质,该方法包括:主节点向目标节点授权IO操作对应的锁后,获取目标节点处理IO操作后生成的IO操作对应的处理完成请求;若处理完成请求为解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁;本发明通过以粒度为单位给主节点加锁,使主节点可以在同一时间仅允许一个基于同一粒度的写操作,在获取的处理完成请求包括解锁修改位图请求时,通过控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁,减少写操作的阻塞时间,保证存储设备中全部节点各自存储的位图可以快速更新同步,保证了存储设备的稳定性。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种节点间的位图信息同步方法、装置、设备及计算机可读存储介质。
背景技术
现有技术中,一般的如存储服务器集群的存储设备都是多个节点同时动作,当节点掉电时,要求能把配置信息、位图信息等重要情报保存到硬盘,以便上电后各个节点能够恢复掉电前的动作。当某一个节点遭到破坏无法恢复时,要求其他节点也能够继续当前的动作。这就要求位图信息等重要信息要同时保存在所有节点上,当存储设备接收到IO(输入输出,即IO操作)时,所有节点都需要同步更新位图。
因此,如何能够在节点接收到IO操作后,将位图信息同步到所有节点,从而完成位图的快速更新,是现今急需解决的问题。
发明内容
本发明的目的是提供一种节点间的位图信息同步方法、装置、设备及计算机可读存储介质,通过以粒度(grain)为单位给主节点加锁方式,保证位图的快速更新。
为解决上述技术问题,本发明提供一种节点间的位图信息同步方法,包括:
主节点向目标节点授权IO操作对应的锁后,获取所述目标节点处理所述IO操作后生成的所述IO操作对应的处理完成请求;其中,所述处理完成请求包括解锁请求和/或解锁修改位图请求,所述IO操作的每个grain各自对应一个锁,每个所述grain对应1bit位图,同一时间主节点不会向两个或两个以上节点授权同一grain的锁;
若所述处理完成请求为所述解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放所述锁。
可选的,所述目标节点不为所述主节点且所述IO操作对应1个grain时,所述主节点向目标节点授权IO操作对应的锁,包括:
所述主节点接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求;
在所述IO操作对应的grain未分裂且所述目标节点不必等待所述锁请求对应的锁时,将所述锁放入到存储的哈希表中,并通过向所述目标节点发送确认请求授权所述锁,以使所述目标节点根据所述确认请求进行所述IO操作的处理。
可选的,该方法还包括:
若所述处理完成请求为所述解锁请求时,则从所述哈希表中将所述锁删除,以释放所述锁。
可选的,所述主节点接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求之后,还包括:
若所述IO操作对应的grain已分裂,则向所述目标节点发送分裂请求,以控制所述目标节点取消所述IO操作的处理;
若所述目标节点需要等待所述锁请求对应的锁,则向所述目标节点发送等待请求。
可选的,所述目标节点不为所述主节点时,所述获取所述目标节点处理所述IO操作后生成的所述IO操作对应的处理完成请求,包括:
主节点接收所述目标节点发送的所述处理完成请求;其中,所述处理完成请求具体为message指令。
可选的,所述目标节点不为所述主节点时,所述控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放所述锁,包括:
所述主节点向每个所述从节点发送修改位图请求,以使每个所述从节点根据所述修改位图请求,修改各自存储的位图;
接收全部所述从节点发送的修改完成请求后,修改自身存储的位图;
修改完成自身存储的位图后,向所述目标节点发送解锁修改位图完成请求。
本发明还提供了一种节点间的位图信息同步装置,包括:
获取模块,用于在主节点向目标节点授权IO操作对应的锁后,获取所述目标节点处理所述IO操作后生成的所述IO操作对应的处理完成请求;其中,所述处理完成请求包括解锁请求和/或解锁修改位图请求,所述IO操作的每个grain各自对应一个锁,每个所述grain对应1bit位图,同一时间主节点不会向两个或两个以上节点授权同一grain的锁;
位图修改模块,用于若所述处理完成请求为所述解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放所述锁。
可选的,所述目标节点不为所述主节点且所述IO操作对应1个grain时,该装置还包括:
接收模块,用于接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求;
授权锁模块,用于在所述IO操作对应的grain未分裂且所述目标节点不必等待所述锁请求对应的锁时,将所述锁放入到存储的哈希表中,并通过向所述目标节点发送确认请求授权所述锁,以使所述目标节点根据所述确认请求进行所述IO操作的处理。
本发明还提供了一种节点间的位图信息同步设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的节点间的位图信息同步方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的节点间的位图信息同步方法的步骤。
本发明所提供的一种节点间的位图信息同步方法,包括:主节点向目标节点授权IO操作对应的锁后,获取目标节点处理IO操作后生成的IO操作对应的处理完成请求;其中,处理完成请求包括解锁请求和/或解锁修改位图请求,IO操作的每个grain各自对应一个锁,每个grain对应1bit位图,同一时间主节点不会向两个或两个以上节点授权同一grain的锁;若处理完成请求为解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁;
可见,本发明通过以粒度为单位给主节点加锁,使主节点可以在同一时间仅允许一个基于同一粒度的写操作,在获取的处理完成请求包括解锁修改位图请求时,通过控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁,减少写操作的阻塞时间,保证存储设备中全部节点各自存储的位图可以快速更新同步,保证了存储设备的稳定性。此外,本发明还提供了一种节点间的位图信息同步装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种节点间的位图信息同步方法的流程图;
图2为本发明实施例所提供的一种节点间位图修改方式的示意图;
图3为本发明实施例所提供的另一种节点间位图修改方式的示意图;
图4为本发明实施例所提供的另一种节点间位图修改方式的示意图;
图5为本发明实施例所提供的一种节点间的位图信息同步装置的结构框图;
图6为本发明实施例提供的一种节点间的位图信息同步设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种节点间的位图信息同步方法的流程图。该方法可以包括:
步骤101:主节点向目标节点授权IO操作对应的锁后,获取目标节点处理IO操作后生成的IO操作对应的处理完成请求;其中,处理完成请求包括解锁请求和/或解锁修改位图请求,IO操作的每个grain各自对应一个锁,每个grain对应1bit位图,同一时间主节点不会向两个或两个以上节点授权同一grain的锁。
可以理解的是,本实施例中的主节点和从节点可以为如存储服务器集群的存储设备中的存储有位图的节点,如服务器。本实施例中存储设备可以有一个主节点和多个从节点;如存储设备中的全部节点均存储有位图时,其中一个节点可以作为主节点,其他节点均作为从节点。
对应的,本实施例中通过以粒度(grain)为单位给主节点加锁方式,使主节点可以控制同一时间仅允许一个基于同一粒度的写操作进行,暂停其他基于同一粒度的写操作。也就是说,本实施例中每个节点在接收到一个IO操作进行处理前,可以生成IO操作对应的锁(lock)请求,并将锁请求发送到主节点请求IO操作对应的grain的锁;主节点拥有所有的锁,而从节点不拥有锁,只有主节点可以授权锁,位图同属存放在主节点和从节点。
具体的,本步骤中的目标节点可以为接收到IO操作并被主节点授权该IO操作对应的grain的锁的节点。本实施例并不限定目标节点的具体节点类型,如目标节点可以为主节点,如主节点可以在接收IO操作后,生成该IO操作对应的锁请求,并在自身授权该锁请求对应的锁后处理该IO操作,在处理完成后生成该IO操作对应的处理完成请求;也可以为任一从节点,如从节点可以在接收IO操作后,生成该IO操作对应的锁请求并发送给主节点,并在主节点授权该锁请求对应的锁后处理该IO操作,在处理完成后生成该IO操作对应的处理完成请求发送给主节;还可以为其他节点,如存储服务器集群以外的节点。
需要说明的是,本实施例所提供的方法还可以包括主节点向目标节点授权IO操作对应的锁的过程,如目标节点不为主节点时,目标节点在接收到IO操作后,可以先生成该IO操作对应的锁请求,即该IO操作对应的grain的锁的请求,例如每个节点内可以设置位图管理模块,从而在接收到IO操作后利用位图管理模块生成IO操作对应的锁请求;再将锁请求发送到主节点;主节点在检测到锁请求对应的grain未分裂,即该grain已被IO操作中的写操作处理,且目标节点不必等待锁请求对应的锁,例如未向其他节点授权该锁请求对应的锁且不需要先向其他节点发送消息授权该锁请求对应的锁,可以通过向目标节点发送确认请求(GRANTED),完成该锁请求对应的锁的授权。
也就是说,目标节点不为主节点且IO操作对应1个grain时,本步骤之前可以包括:主节点接收目标节点在收到IO操作后发送的IO操作对应的锁请求;在IO操作对应的grain未分裂且目标节点不必等待锁请求对应的锁时,将锁放入到存储的哈希表中,并通过向目标节点发送确认请求授权锁请求对应的锁,以使目标节点根据确认请求进行IO操作的处理。
具体的,主节点不为目标节点时,主节点在获取目标节点接收的IO操作对应的锁请求时,若锁请求对应的grain已经分裂,则可以向目标节点发送分裂请求(SPLIT),以控制目标节点取消IO操作的处理;若目标节点需要等待锁请求对应的锁,则向目标节点发送等待请求(WAIT)。
对应的,主节点通过目标节点发送确认请求授权锁请求对应的锁时,可以将锁请求对应的锁,即grain的锁,存储到自身的哈希(hash)表内,从而可以在哈希表内存在grain的锁时,确定该grain的锁已经被授权。
具体的,本步骤中主节点向目标节点授权IO操作对应的锁后,可以获取目标节点处理IO操作后生成的IO操作对应的处理完成请求,即每个节点在被授权IO操作对应的锁后,可以处理该IO操作,而在处理完成该IO操作可以生成对应的处理完成请求,即解锁(unlock)请求和/或解锁修改位图(unlock and set)请求。也就是说,IO操作可以对应多个grain,也可以仅对应一个grain;IO操作对应的多个grain的锁被授权后,处理完成该IO操作可以生成全部grain对应的处理完成请求(解锁请求和/或解锁修改位图请求);IO操作对应的一个grain的锁被授权后,处理完成该IO操作可以生成该grain对应的处理完成请求(解锁请求或解锁修改位图请求)。
其中,本步骤中的处理完成请求可以为目标节点在处理完成主节点授权锁的IO操作后,向主节点发送的IO操作对应的请求;处理完成请求中的解锁请求可以为告知主节点可以释放解锁请求对应的grain的锁且不需要修改位图,此时如果有其他IO操作在等待该grain的锁,那么主节点可以会把该锁分配给其他的一个IO操作,如主节点可以向其他的一个IO操作的节点发送确认请求;处理完成请求中的解锁修改位图请求可以为告知主节点可以修解锁修改位图请求对应的grain所对应的位图信息并释放该锁,如主节点可以在自身和从节点修改完成位图后,从自身的哈希表中将该锁修改位图请求对应的锁删除,以释放该锁。
步骤102:若处理完成请求为解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁。
具体的,本步骤可以为主节点在接收到目标节点发送的解锁修改位图请求后,控制全部从节点修改各自存储的位图,即修改解锁修改位图请求对应的grain所对应的位图信息,以及完成主节点自身存储的位图的修改并释放解锁修改位图请求对应的grain的锁,以完成存储设备中全部存储有位图的节点的位图快速更新。
需要说明的是,本步骤中主节点可以通过向每个从节点发送修改位图请求,以使每个从节点根据修改位图请求,修改各自存储的位图;并在接收到从节点发送的修改完成请求后,确定从节点已完成位图的修改。本实施例中主节点与各节点间的位图同步可以通过message指令来通信,即上述修改位图请求和修改完成请求以及主节点接收的处理完成请求可以均为message指令,
可以理解的是,本步骤可以分为图2至图4所示的三种情况;如图2所示,目标节点为集群以外节点(node3)时,node3中的IO处理设备在处理完成被node1(主节点)授权锁的IO操作后,可以向node3发送解锁修改位图请求(set unlock request);node3再向node1发送解锁修改位图请求(set unlock request msg);node1发送给node2(从节点)修改位图请求(set bit map),控制node2修改位图;node2修改完成后,发送给node1修改完成请求(bitset msg),表示node2位图已修改完成,接下来node1修改本地的位图;node1返回给node3解锁修改完成请求(set unlock done msg),表明两节点的位图已经处理完成,且解锁完成;node3给IO处理设备返回解锁修改完成请求(set unlock done),告知解锁修改位图请求的处理已经完成。
如图3所示,目标节点为从节点时,从节点(node3)收到解锁修改位图请求的处理与图2中集群以外节点(node3)收到解锁修改位图请求的处理相似,都要转发到主节点(node1)去进行位图同步处理。
如图4所示,目标节点为主节点时,主节点(node1)中的IO处理设备在处理完成被node1(主节点)授权锁的IO操作后,可以向node3发送解锁修改位图请求(set unlockrequest);node1发送给node2(从节点)修改位图请求(set bit map);主节点返回给IO处理设备等待指令(wait);node2修改完成后,发送给node1修改完成请求(bit set msg),表示node2位图已修改完成,接下来node1修改本地的位图;node1给IO处理设备返回解锁修改完成请求(set unlock done),告知解锁修改位图请求的处理已经完成。
也就是说,本实施例中主节点接收到解锁修改位图请求后,可以将要修改的位图信息存进message buffer,将message buffer传送给从节点,从节点根据message buffer修改从节点的位图,从节点处理完成后返回message信息给主节点,主节点修改位图信息,释放锁。
本实施例中,本发明实施例通过以粒度为单位给主节点加锁,使主节点可以在同一时间仅允许一个基于同一粒度的写操作,在获取的处理完成请求包括解锁修改位图请求时,通过控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁,减少写操作的阻塞时间,保证存储设备中全部节点各自存储的位图可以快速更新同步,保证了存储设备的稳定性。
请参考图5,图5为本发明实施例所提供的一种节点间的位图信息同步装置的结构框图。该装置可以包括:
获取模块10,用于在主节点向目标节点授权IO操作对应的锁后,获取目标节点处理IO操作后生成的IO操作对应的处理完成请求;其中,处理完成请求包括解锁请求和/或解锁修改位图请求,IO操作的每个grain各自对应一个锁,每个grain对应1bit位图,同一时间主节点不会向两个或两个以上节点授权同一grain的锁;
位图修改模块20,用于若处理完成请求为解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁。
可选的,目标节点不为主节点且IO操作对应1个grain时,该装置还可以包括:
接收模块,用于接收目标节点在收到IO操作后发送的IO操作对应的锁请求;
授权锁模块,用于在IO操作对应的grain未分裂且目标节点不必等待锁请求对应的锁时,将锁放入到存储的哈希表中,并通过向目标节点发送确认请求授权锁,以使目标节点根据确认请求进行IO操作的处理。
可选的,该装置还可以包括:
解锁模块,用于若处理完成请求为解锁请求时,则从哈希表中将锁删除,以释放锁。
可选的,该装置还可以包括:
第一发送模块,用于在接收目标节点在收到IO操作后发送的IO操作对应的锁请求后,若IO操作对应的grain已分裂,则向目标节点发送分裂请求,以控制目标节点取消IO操作的处理;
第二发送模块,用于在接收目标节点在收到IO操作后发送的IO操作对应的锁请求后,若目标节点需要等待锁请求对应的锁,则向目标节点发送等待请求。
可选的,目标节点不为主节点时,获取模块10具体用于接收目标节点发送的处理完成请求;其中,处理完成请求具体为message指令。
可选的,目标节点不为主节点时,位图修改模块20,包括:
第一发送子模块,用于向每个从节点发送修改位图请求,以使每个从节点根据修改位图请求,修改各自存储的位图;
接收子模块,用于接收全部从节点发送的修改完成请求后,修改自身存储的位图;
第二发送子模块,用于修改完成自身存储的位图后,向目标节点发送解锁修改位图完成请求。
本实施例中,本发明实施例通过以粒度为单位给主节点加锁,使主节点可以在同一时间仅允许一个基于同一粒度的写操作,在获取的处理完成请求包括解锁修改位图请求时,通过控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放锁,减少写操作的阻塞时间,保证存储设备中全部节点各自存储的位图可以快速更新同步,保证了存储设备的稳定性。
请参考图6,图6为本发明实施例提供的一种节点间的位图信息同步设备的结构示意图;该设备1可以包括:
存储器11,用于存储计算机程序;处理器12,用于执行该计算机程序时实现如上述实施例所提供的节点间的位图信息同步方法的步骤。
在本实施例中,设备1可以是PC(Personal Computer,个人电脑),也可以是平板电脑、便携计算机、服务器等终端设备。
该设备1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备1的内部存储单元,例如该设备1的硬盘。存储器11在另一些实施例中也可以是设备1的外部存储设备,例如设备1上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备1的应用软件及各类数据,例如:执行节点间的位图信息同步方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行节点间的位图信息同步方法的程序的代码等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备1与其他电子设备之间建立通信连接。
可选地,该设备1还可以包括用户接口15,用户接口15可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口15还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备1中处理的信息以及用于显示可视化的用户界面。
图6仅示出了具有组件11-15的设备1,本领域技术人员可以理解的是,图6示出的结构并不构成对设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述实施例所提供的节点间的位图信息同步方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种节点间的位图信息同步方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (6)
1.一种节点间的位图信息同步方法,其特征在于,包括:
主节点向目标节点授权IO操作对应的锁后,获取所述目标节点处理所述IO操作后生成的所述IO操作对应的处理完成请求;其中,所述处理完成请求包括解锁请求和/或解锁修改位图请求,所述IO操作的每个grain各自对应一个锁,每个所述grain对应1bit位图,同一时间主节点不会向两个或两个以上节点授权同一grain的锁;
若所述处理完成请求为所述解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放所述锁;
其中,所述目标节点不为所述主节点且所述IO操作对应1个grain时,所述主节点向目标节点授权IO操作对应的锁,包括:
所述主节点接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求;
在所述IO操作对应的grain未分裂且所述目标节点不必等待所述锁请求对应的锁时,将所述锁放入到存储的哈希表中,并通过向所述目标节点发送确认请求授权所述锁,以使所述目标节点根据所述确认请求进行所述IO操作的处理;
所述主节点接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求之后,还包括:
若所述IO操作对应的grain已分裂,则向所述目标节点发送分裂请求,以控制所述目标节点取消所述IO操作的处理;
若所述目标节点需要等待所述锁请求对应的锁,则向所述目标节点发送等待请求;
所述目标节点不为所述主节点时,所述获取所述目标节点处理所述IO操作后生成的所述IO操作对应的处理完成请求,包括:
所述主节点接收所述目标节点发送的所述处理完成请求;其中,所述处理完成请求具体为message指令。
2.根据权利要求1所述的节点间的位图信息同步方法,其特征在于,还包括:
若所述处理完成请求为所述解锁请求时,则从所述哈希表中将所述锁删除,以释放所述锁。
3.根据权利要求1或2所述的节点间的位图信息同步方法,其特征在于,所述目标节点不为所述主节点时,所述控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放所述锁,包括:
所述主节点向每个所述从节点发送修改位图请求,以使每个所述从节点根据所述修改位图请求,修改各自存储的位图;
接收全部所述从节点发送的修改完成请求后,修改自身存储的位图;
修改完成自身存储的位图后,向所述目标节点发送解锁修改位图完成请求。
4.一种节点间的位图信息同步装置,其特征在于,包括:
获取模块,用于在主节点向目标节点授权IO操作对应的锁后,获取所述目标节点处理所述IO操作后生成的所述IO操作对应的处理完成请求;其中,所述处理完成请求包括解锁请求和/或解锁修改位图请求,所述IO操作的每个grain各自对应一个锁,每个所述grain对应1bit位图,同一时间主节点不会向两个或两个以上节点授权同一grain的锁;
位图修改模块,用于若所述处理完成请求为所述解锁修改位图请求,则控制全部从节点修改各自存储的位图,并修改自身存储的位图及释放所述锁;
其中,所述目标节点不为所述主节点且所述IO操作对应1个grain时,还包括:
接收模块,用于接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求;
授权锁模块,用于在所述IO操作对应的grain未分裂且所述目标节点不必等待所述锁请求对应的锁时,将所述锁放入到存储的哈希表中,并通过向所述目标节点发送确认请求授权所述锁,以使所述目标节点根据所述确认请求进行所述IO操作的处理;
所述位图信息同步装置,还包括:
第一发送模块,用于在接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求后,若所述IO操作对应的grain已分裂,则向所述目标节点发送分裂请求,以控制所述目标节点取消所述IO操作的处理;
第二发送模块,用于在接收所述目标节点在收到所述IO操作后发送的所述IO操作对应的锁请求后,若所述目标节点需要等待所述锁请求对应的锁,则向所述目标节点发送等待请求;
目标节点不为主节点时,所述获取模块具体用于接收所述目标节点发送的所述处理完成请求;其中,所述处理完成请求具体为message指令。
5.一种节点间的位图信息同步设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至3任一项所述的节点间的位图信息同步方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的节点间的位图信息同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132394.1A CN111399772B (zh) | 2020-02-29 | 2020-02-29 | 一种节点间的位图信息同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132394.1A CN111399772B (zh) | 2020-02-29 | 2020-02-29 | 一种节点间的位图信息同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399772A CN111399772A (zh) | 2020-07-10 |
CN111399772B true CN111399772B (zh) | 2022-07-22 |
Family
ID=71432154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010132394.1A Active CN111399772B (zh) | 2020-02-29 | 2020-02-29 | 一种节点间的位图信息同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399772B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114750B (zh) | 2020-09-11 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种元数据卷位图数据冲突处理方法及相关组件 |
CN112286454B (zh) * | 2020-10-27 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种位图同步方法、装置及电子设备和存储介质 |
CN112653734B (zh) * | 2020-12-11 | 2023-09-19 | 邦彦技术股份有限公司 | 服务器集群实时主从控制和数据同步系统及方法 |
CN112860109B (zh) * | 2021-02-09 | 2022-02-22 | 北京汉王鹏泰科技股份有限公司 | 一种触控输入装置、方法、电子设备及可读存储介质 |
CN114546978B (zh) * | 2022-02-18 | 2024-01-26 | 苏州浪潮智能科技有限公司 | 一种存储集群的位图管理方法、系统、设备以及介质 |
CN117215501B (zh) * | 2023-11-08 | 2024-02-09 | 苏州元脑智能科技有限公司 | 一种位图的同步方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426265A (zh) * | 2016-03-11 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 数据一致性同步的方法及设备 |
CN109683828A (zh) * | 2019-01-03 | 2019-04-26 | 郑州云海信息技术有限公司 | 一种存储系统的落盘方法、系统、装置及可读存储介质 |
CN110795038A (zh) * | 2019-10-25 | 2020-02-14 | 浪潮电子信息产业股份有限公司 | 一种修改写请求处理方法、装置、设备及可读存储介质 |
-
2020
- 2020-02-29 CN CN202010132394.1A patent/CN111399772B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426265A (zh) * | 2016-03-11 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 数据一致性同步的方法及设备 |
CN109683828A (zh) * | 2019-01-03 | 2019-04-26 | 郑州云海信息技术有限公司 | 一种存储系统的落盘方法、系统、装置及可读存储介质 |
CN110795038A (zh) * | 2019-10-25 | 2020-02-14 | 浪潮电子信息产业股份有限公司 | 一种修改写请求处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111399772A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399772B (zh) | 一种节点间的位图信息同步方法、装置、设备及存储介质 | |
CN113568884B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
KR101754545B1 (ko) | 플래시 메모리들에서 커맨드 완료의 확인 | |
US9182975B2 (en) | Automatic application updates | |
US8935560B2 (en) | System and method of file locking in a network file system federated namespace | |
KR20130135134A (ko) | 원격으로 애플리케이션들을 설치 | |
CN103237060B (zh) | 一种数据对象获取方法、装置及系统 | |
US20160350148A1 (en) | Thin client system, server device, policy management device, control method, and non-transitory computer readable recording medium | |
CN107992537B (zh) | 业务属性传递方法、装置、计算机设备及存储介质 | |
CN109614439B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN110569470B (zh) | 用户匹配方法、装置、可读介质和电子设备 | |
CN105808374A (zh) | 一种快照处理方法及相关设备 | |
CN111143031A (zh) | 一种虚拟机的容量更改方法及装置 | |
CN109088914B (zh) | 区块的生成方法、区块链生态系统及计算机可读存储介质 | |
US11288263B2 (en) | Change service for shared database object | |
CN112000019A (zh) | 用于共享设备指令控制的方法、装置及设备 | |
CN106487884A (zh) | 数据传输方法及客户端 | |
WO2013086867A1 (zh) | 信息处理方法及设备 | |
CN114051029B (zh) | 授权方法、授权装置、电子设备和存储介质 | |
CN110677465B (zh) | 一种分布式锁的控制方法及装置 | |
JP2015041146A (ja) | サーバ装置、クライアント装置、システム、情報処理方法及びプログラム | |
JP7305898B2 (ja) | 操作応答方法、操作応答装置、電子機器及び記憶媒体 | |
CN104348906A (zh) | 一种分布式系统中数据协商方法及装置 | |
CN114996200B (zh) | 基于rdma的数据传输方法、装置、设备及存储介质 | |
CN113271229B (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 |