CN112286454A - 一种位图同步方法、装置及电子设备和存储介质 - Google Patents

一种位图同步方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN112286454A
CN112286454A CN202011163221.2A CN202011163221A CN112286454A CN 112286454 A CN112286454 A CN 112286454A CN 202011163221 A CN202011163221 A CN 202011163221A CN 112286454 A CN112286454 A CN 112286454A
Authority
CN
China
Prior art keywords
bitmap
data
data bit
modification command
preset value
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.)
Granted
Application number
CN202011163221.2A
Other languages
English (en)
Other versions
CN112286454B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011163221.2A priority Critical patent/CN112286454B/zh
Publication of CN112286454A publication Critical patent/CN112286454A/zh
Application granted granted Critical
Publication of CN112286454B publication Critical patent/CN112286454B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种位图同步方法、装置及一种电子设备和计算机可读存储介质,该方法包括:接收第一修改命令;确定第一数据位所属的第一数据卷,并确定第一数据卷的状态;若第一数据卷处于未同步状态,则基于第一修改命令修改存储于本端的位图中的第一数据位;若第一数据卷处于同步中状态,则将第一修改命令加入第一处理链表中,在第一数据卷同步完成后,处理第一处理链表中的第一修改命令;若第一数据卷处于已同步状态,则基于第一修改命令修改存储于本端的位图中的第一数据位,并将第一数据位发送至从节点,以便从节点将存储于本端的位图中的第一数据位修改为第二预设值。本申请提供的位图同步方法,在双控制器下实现了位图同步,避免了冲突。

Description

一种位图同步方法、装置及电子设备和存储介质
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种位图同步方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
随着SSD(中文全称:固态驱动器,英文全称:Solid State Drive)盘的广泛使用,存储系统为了跟SSD适配以发挥更好的性能,目前已经产生一些适配SSD的方案,方案中有位图(bitmap)管理方式。现有的研究机构、存储厂商均致力于研究如何适配SSD,提出适配方案,对于bitmap的实现和管理方式,大都是传统的记录存储单元空间分配状态,并根据分配状态来做实时的更新,以保持bitmap跟存储单元空间分配状态一致。而适配SSD的空间粒度大大缩小,并且状态变化起来更快,对应的bitmap数据量就大得多、而且值变化的特别快,传统的管理方式不再适用。
因此,如何在双控制器下实现位图同步,避免冲突是本领域技术人员需要解决的技术问题。
申请内容
本申请的目的在于提供一种位图同步方法、装置及一种电子设备和一种计算机可读存储介质,在双控制器下实现了位图同步,避免了冲突。
为实现上述目的,本申请提供了一种位图同步方法,包括:
接收第一修改命令;其中,第一修改命令为将第一数据位由第一预设值修改为第二预设值的命令,所述第一数据位为所述第一预设值表示对应的数据块未使用,所述第一数据位为所述第二预设值表示对应的数据块已使用;
确定所述第一数据位所属的第一数据卷,并确定所述第一数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位;
若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中,在所述第一数据卷同步完成后,处理所述第一处理链表中的第一修改命令;
若所述第一数据卷处于已同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,并将所述第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所述第一数据位修改为所述第二预设值。
其中,所述处理所述第一处理链表中的第一修改命令,包括:
基于所述第一处理链表中的第一修改命令修改存储于本端的位图中对应的第一数据位,并将所有所述第一修改命令对应的第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所有所述第一数据位修改为所述第二预设值。
其中,所述基于所述修改命令修改存储于本端的位图中的第一数据位之后,还包括:
对所述目标数据位进行写盘下刷操作。
其中,还包括:
接收第二修改命令,并将所述第二修改命令加入第二处理链表中;其中,第二修改命令为将第二数据位由所述二预设值修改为所述第一预设值的命令;
当满足预设条件时,处理所述第二处理链表中的第二修改命令;所述预设条件包括到达预设处理时刻或所述第二处理链表中的第二修改命令达到预设值。
其中,所述处理所述第二处理链表中的第二修改命令,包括:
确定所述第二数据位所属的第二数据卷,并确定所述第二数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
若所述第二数据卷处于未同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,并释放本端中所述第二数据位对应的数据块;
若所述第二数据卷处于同步中状态,则保留所述第二修改命令在所述第二处理链表中;
若所述第一数据卷处于已同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,释放所述第二数据位对应的数据块,并将所述第二数据位发送至所述从节点,以便所述从节点将存储于本端的位图中的所述第二数据位修改为所述第一预设值。
其中,所述基于所述第二修改命令修改存储于本端的位图中的第二数据位之后,还包括:
统计响应成功的第二修改命令的目标数量,并基于所述目标数量修改所述第二数据卷的使用容量。
其中,将所述第二数据位发送至所述从节点,以便所述从节点将存储于本端的位图中的所述第二数据位修改为所述第一预设值,包括:
将所述第二数据位加入发送链表中;
当所述第二处理链表中的第二修改命令均处理完成时,将所述发送链表发送至所述从节点,以便所述从节点基于所述发送链表将存储于本端的位图中的所有所述第二数据位修改为所述第一预设值。
为实现上述目的,本申请提供了一种位图同步装置,包括:
第一接收模块,用于接收第一修改命令;其中,第一修改命令为将第一数据位由第一预设值修改为第二预设值的命令,所述第一数据位为所述第一预设值表示对应的数据块未使用,所述第一数据位为所述第二预设值表示对应的数据块已使用;
确定模块,用于确定所述第一数据位所属的第一数据卷,并确定所述第一数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
修改模块,用于若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位;
加入模块,用于若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中,在所述第一数据卷同步完成后,处理所述第一处理链表中的第一修改命令;
发送模块,用于若所述第一数据卷处于已同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,并将所述第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所述第一数据位修改为所述第二预设值。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述位图同步方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述位图同步方法的步骤。
通过以上方案可知,本申请提供的一种位图同步方法,包括:接收第一修改命令;其中,第一修改命令为将第一数据位由第一预设值修改为第二预设值的命令,所述第一数据位为所述第一预设值表示对应的数据块未使用,所述第一数据位为所述第二预设值表示对应的数据块已使用;确定所述第一数据位所属的第一数据卷,并确定所述第一数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位;若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中,在所述第一数据卷同步完成后,处理所述第一处理链表中的第一修改命令;若所述第一数据卷处于已同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,并将所述第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所述第一数据位修改为所述第二预设值。
本申请提供的位图同步方法,使用未同步、同步中和已同步三种状态记录数据卷的状态,使得位图中的目标位变化时也能保存数据,实现数据的一致性。由此可见,本申请实现了在双控制器下位图同步时对冲突的处理,可以实现大量的小粒度的位数据的同步,在存储系统中来更好的适配SSD,在缩短产品研发周期的同时,简单便捷的保存了数据,实现了数据一致性。本申请还公开了一种位图同步装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种位图同步方法的流程图;
图2为根据一示例性实施例示出的另一种位图同步方法的流程图;
图3为根据一示例性实施例示出的一种位图同步装置的结构图;
图4为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例公开了一种位图同步方法,在双控制器下实现了位图同步,避免了冲突。
参见图1,根据一示例性实施例示出的一种位图同步方法的流程图,如图1所示,包括:
S101:接收第一修改命令;其中,第一修改命令为将第一数据位由第一预设值修改为第二预设值的命令,所述第一数据位为所述第一预设值表示对应的数据块未使用,所述第一数据位为所述第二预设值表示对应的数据块已使用;
可以理解的是,数据卷的位图用于标记数据卷中各数据块的使用状态,位图中的每个数据位(bit)与数据卷的每个数据块一一对应,例如,位图中的第0个数据位代表数据卷的第0个数据块。在位图中,可以使用第一预设值表示对应的数据块未使用,使用第二预设值表示对应的数据块已使用,例如0表示未使用,1表示已使用,即第一预设值为0,第二预设值为1。
在双控设备中,存在主节点和从节点,即主控和从控,当集群中已有主控在正常运行时,从控加入了集群,则需要进行位图同步操作。即需要将主控上的位图同步到从控设备上,使得从控上的位图与主控上的一致。在位图的同步过程中,也会存在数据位的变化,例如IO业务就会发生改变。数据位的修改操作可以包括由第一预设值修改为第二预设值,和由第二预设值修改为第一预设值。
在本步骤中,当接收到将第一数据位由第一预设值修改为第二预设值的第一修改命令时,若位图在同步流程中,即在双控设备的前提下,进入S102,否则直接对第一数据位进行修改,并进行写盘下刷操作即可。
S102:确定所述第一数据位所属的第一数据卷,并确定所述第一数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
在本步骤中,需要对各第一数据位进行逐一处理,由于不同的第一数据位不一定都位于同一数据卷中,因此需要确定各第一数据位所属的第一数据卷,并确定各第一数据卷的状态。本实施例采用未同步状态、同步中状态和已同步状态三种状态进行标识。
S103:若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位;
在本步骤中,对于处于未同步状态的第一数据卷,仅在本端即主节点进行申请,直接对存储于本端的位图中的第一数据位进行修改操作,即由第一预设值修改位第二预设值。作为一种可行的实施方式,所述基于所述修改命令修改存储于本端的位图中的第一数据位之后,还包括:对所述目标数据位进行写盘下刷操作。
S104:若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中,在所述第一数据卷同步完成后,处理所述第一处理链表中的第一修改命令;
在本步骤中,对于处于同步中状态的第一数据卷,将第一修改命令加入第一处理链表中,在第一数据卷同步完成后,对第一处理链表中的第一修改命令进行统一处理。作为一种可行的实施方式,所述处理所述第一处理链表中的第一修改命令,包括:基于所述第一处理链表中的第一修改命令修改存储于本端的位图中对应的第一数据位,并将所有所述第一修改命令对应的第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所有所述第一数据位修改为所述第二预设值。在具体实施中,可以将第一数据位加入等待处理链表obtainList中,继续处理下一个bit。在同步位图时,每次同步传输完一次后,做一次obtainList的处理。即同步传输完成时,开启一个任务,处理obtainList,判断obtainList长度,如>0,则逐一取出,对每一个第一数据位的修改申请都加入到位图申请的任务中。
S105:若所述第一数据卷处于已同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,并将所述第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所述第一数据位修改为所述第二预设值。
在本步骤中,对于处于已同步状态的第一数据卷,新申请一个eventInfo,将第一数据位填充进去,发送至从节点,从节点将存储于本端的位图中的第一数据位修改为第二预设值,完成第一数据位的同步。
由此可见,本实施例为数据卷增加一个同步中状态,确保同步完成或申请数据块完成,两个操作不相互影响。如果有数据块在申请,发现数据卷处于同步中状态,则将第一修改命令加入第一处理链表,等该数据卷同步完成后,再遍第一处理链表,处理该第一处理链表中的第一修改命令,完成主节点和从节点的数据位的修改,实现两端的位图同步。
本申请实施例提供的位图同步方法,使用未同步、同步中和已同步三种状态记录数据卷的状态,使得位图中的目标位变化时也能保存数据,实现数据的一致性。由此可见,本申请实施例实现了在双控制器下位图同步时对冲突的处理,可以实现大量的小粒度的位数据的同步,在存储系统中来更好的适配SSD,在缩短产品研发周期的同时,简单便捷的保存了数据,实现了数据一致性。
在上述实施例的基础上,作为一种优选实施方式,还包括:接收第二修改命令,并将所述第二修改命令加入第二处理链表中;其中,第二修改命令为将第二数据位由所述二预设值修改为所述第一预设值的命令;当满足预设条件时,处理所述第二处理链表中的第二修改命令;所述预设条件包括到达预设处理时刻或所述第二处理链表中的第二修改命令达到预设值。
在具体实施中,当接收到将第二数据位由第二预设值修改为第一预设值的第二修改命令时,将第二修改命令加入第二处理链表中,当满足预设条件时,处理所述第二处理链表中的第二修改命令。在本实施例中,为数据卷增加一个同步中状态,当第二数据位所属的第二数据卷处于同步中状态时,不进行第二数据位的修改,不释放该第二数据卷下的数据块。由于需要释放的第二数据位是积累的,即满足预设条件时,第二数据卷的同步完成。因此,当第二数据位所属的第二数据卷处于同步中状态时,不进行第二数据位的修改,不释放该第二数据卷下的数据块,等待下一次满足预设条件时处理。
本申请实施例公开了一种位图同步方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图2,根据一示例性实施例示出的另一种位图同步方法的流程图,如图2所示,包括:
S201:接收第二修改命令,并将所述第二修改命令加入第二处理链表中;其中,第二修改命令为将第二数据位由所述二预设值修改为所述第一预设值的命令;
在本实施例中,当接收到将第二数据位由第二预设值修改为第一预设值的第二修改命令时,若位图在同步流程中,即在双控设备的前提下,进入S202,否则直接对第二数据位进行修改,并进行写盘下刷操作即可。
S202:当满足预设条件时,确定所述第二数据位所属的第二数据卷,并确定所述第二数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
在具体实施中,需要对各第一数据位进行逐一处理,由于不同的第二数据位不一定都位于同一数据卷中,因此需要确定各第二数据位所属的第二数据卷,并确定各第二数据卷的状态。本实施例采用未同步状态、同步中状态和已同步状态三种状态进行标识。
S203:若所述第二数据卷处于未同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,并释放本端中所述第二数据位对应的数据块;
在本步骤中,对于处于未同步状态的第二数据卷,直接对存储于本端的位图中的第二数据位进行修改操作,即由第二预设值修改位第一预设值,释放本端中第二数据位对应的数据块,并将对应的第二修改命令从第二处理链表中删除。
作为一种可行的实施方式,所述基于所述第二修改命令修改存储于本端的位图中的第二数据位之后,还包括:统计响应成功的第二修改命令的目标数量,并基于所述目标数量修改所述第二数据卷的使用容量。在具体实施中,第二处理链表中的所有第二修改命令均处理完成后,统计成功由第二预设值修改至第一预设值的第二数据位的目标数量,基于目标数量修改第二数据卷的使用容量,并在满足预设条件时开启下一轮处理第二处理链表。
S204:若所述第二数据卷处于同步中状态,则保留所述第二修改命令在所述第二处理链表中;
在本步骤中,对于处于同步中状态的第二数据卷,保留该第二修改命令在第二处理链表中,继续处理第二处理链表中的下一个第二修改命令。
S205:若所述第一数据卷处于已同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,释放所述第二数据位对应的数据块,并将所述第二数据位发送至所述从节点,以便所述从节点将存储于本端的位图中的所述第二数据位修改为所述第一预设值。
在本步骤中,对于处于已同步状态的第二数据卷,首先对存储于本端的位图中的第二数据位进行修改操作,即由第二预设值修改位第一预设值,释放本端中第二数据位对应的数据块,并将对应的第二修改命令从第二处理链表中删除。其次,将所述第二数据位加入发送链表中,当所述第二处理链表中的第二修改命令均处理完成时,将所述发送链表发送至所述从节点,以便所述从节点基于所述发送链表将存储于本端的位图中的所有所述第二数据位修改为所述第一预设值。在具体实施中,将第二数据位加入sendList中,当第二处理链表中的所有第二修改命令均处理完成时上,判断sendList上的第二数据位的数量,如果存在,则发送至从节点进行处理。
下面对本申请实施例提供的一种位图同步装置进行介绍,下文描述的一种位图同步装置与上文描述的一种位图同步方法可以相互参照。
参见图3,根据一示例性实施例示出的一种位图同步装置的结构图,如图3所示,包括:
第一接收模块301,用于接收第一修改命令;其中,第一修改命令为将第一数据位由第一预设值修改为第二预设值的命令,所述第一数据位为所述第一预设值表示对应的数据块未使用,所述第一数据位为所述第二预设值表示对应的数据块已使用;
确定模块302,用于确定所述第一数据位所属的第一数据卷,并确定所述第一数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
修改模块303,用于若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位;
加入模块304,用于若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中,在所述第一数据卷同步完成后,处理所述第一处理链表中的第一修改命令;
发送模块305,用于若所述第一数据卷处于已同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,并将所述第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所述第一数据位修改为所述第二预设值。
本申请实施例提供的位图同步装置,使用未同步、同步中和已同步三种状态记录数据卷的状态,使得位图中的目标位变化时也能保存数据,实现数据的一致性。由此可见,本申请实施例实现了在双控制器下位图同步时对冲突的处理,可以实现大量的小粒度的位数据的同步,在存储系统中来更好的适配SSD,在缩短产品研发周期的同时,简单便捷的保存了数据,实现了数据一致性。
在上述实施例的基础上,作为一种优选实施方式,所述加入模块304包括:
加入单元,用于若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中;
第一修改单元,用于基于所述第一处理链表中的第一修改命令修改存储于本端的位图中对应的第一数据位,并将所有所述第一修改命令对应的第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所有所述第一数据位修改为所述第二预设值。
在上述实施例的基础上,作为一种优选实施方式,所述修改模块303具体为若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,对所述目标数据位进行写盘下刷操作的模块。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第二接收模块,用于接收第二修改命令,并将所述第二修改命令加入第二处理链表中;其中,第二修改命令为将第二数据位由所述二预设值修改为所述第一预设值的命令;
处理模块,用于当满足预设条件时,处理所述第二处理链表中的第二修改命令;所述预设条件包括到达预设处理时刻或所述第二处理链表中的第二修改命令达到预设值。
在上述实施例的基础上,作为一种优选实施方式,所述处理模块包括:
确定单元,用于当满足预设条件时,确定所述第二数据位所属的第二数据卷,并确定所述第二数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
第二修改单元,用于若所述第二数据卷处于未同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,并释放本端中所述第二数据位对应的数据块;
保留单元,用于若所述第二数据卷处于同步中状态,则保留所述第二修改命令在所述第二处理链表中;
第三修改单元,用于若所述第一数据卷处于已同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,释放所述第二数据位对应的数据块,并将所述第二数据位发送至所述从节点,以便所述从节点将存储于本端的位图中的所述第二数据位修改为所述第一预设值。
在上述实施例的基础上,作为一种优选实施方式,所述第二修改单元具体为若所述第二数据卷处于未同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,并释放本端中所述第二数据位对应的数据块,统计响应成功的第二修改命令的目标数量,并基于所述目标数量修改所述第二数据卷的使用容量的单元。
在上述实施例的基础上,作为一种优选实施方式,所述第三修改单元包括:
修改子单元,用于若所述第一数据卷处于已同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,释放所述第二数据位对应的数据块;
加入子单元,用于将所述第二数据位加入发送链表中;
发送子单元,用于当所述第二处理链表中的第二修改命令均处理完成时,将所述发送链表发送至所述从节点,以便所述从节点基于所述发送链表将存储于本端的位图中的所有所述第二数据位修改为所述第一预设值。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图4为根据一示例性实施例示出的一种电子设备的结构图,如图4所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的应用的访问方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器2旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种位图同步方法,其特征在于,应用于主节点,包括:
接收第一修改命令;其中,第一修改命令为将第一数据位由第一预设值修改为第二预设值的命令,所述第一数据位为所述第一预设值表示对应的数据块未使用,所述第一数据位为所述第二预设值表示对应的数据块已使用;
确定所述第一数据位所属的第一数据卷,并确定所述第一数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位;
若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中,在所述第一数据卷同步完成后,处理所述第一处理链表中的第一修改命令;
若所述第一数据卷处于已同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,并将所述第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所述第一数据位修改为所述第二预设值。
2.根据权利要求1所述位图同步方法,其特征在于,所述处理所述第一处理链表中的第一修改命令,包括:
基于所述第一处理链表中的第一修改命令修改存储于本端的位图中对应的第一数据位,并将所有所述第一修改命令对应的第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所有所述第一数据位修改为所述第二预设值。
3.根据权利要求1所述位图同步方法,其特征在于,所述基于所述修改命令修改存储于本端的位图中的第一数据位之后,还包括:
对所述目标数据位进行写盘下刷操作。
4.根据权利要求1所述位图同步方法,其特征在于,还包括:
接收第二修改命令,并将所述第二修改命令加入第二处理链表中;其中,第二修改命令为将第二数据位由所述二预设值修改为所述第一预设值的命令;
当满足预设条件时,处理所述第二处理链表中的第二修改命令;所述预设条件包括到达预设处理时刻或所述第二处理链表中的第二修改命令达到预设值。
5.根据权利要求4所述位图同步方法,其特征在于,所述处理所述第二处理链表中的第二修改命令,包括:
确定所述第二数据位所属的第二数据卷,并确定所述第二数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
若所述第二数据卷处于未同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,并释放本端中所述第二数据位对应的数据块;
若所述第二数据卷处于同步中状态,则保留所述第二修改命令在所述第二处理链表中;
若所述第一数据卷处于已同步状态,则基于所述第二修改命令修改存储于本端的位图中的第二数据位,释放所述第二数据位对应的数据块,并将所述第二数据位发送至所述从节点,以便所述从节点将存储于本端的位图中的所述第二数据位修改为所述第一预设值。
6.根据权利要求5所述位图同步方法,其特征在于,所述基于所述第二修改命令修改存储于本端的位图中的第二数据位之后,还包括:
统计响应成功的第二修改命令的目标数量,并基于所述目标数量修改所述第二数据卷的使用容量。
7.根据权利要求5所述位图同步方法,其特征在于,将所述第二数据位发送至所述从节点,以便所述从节点将存储于本端的位图中的所述第二数据位修改为所述第一预设值,包括:
将所述第二数据位加入发送链表中;
当所述第二处理链表中的第二修改命令均处理完成时,将所述发送链表发送至所述从节点,以便所述从节点基于所述发送链表将存储于本端的位图中的所有所述第二数据位修改为所述第一预设值。
8.一种位图同步装置,其特征在于,应用于主节点,包括:
第一接收模块,用于接收第一修改命令;其中,第一修改命令为将第一数据位由第一预设值修改为第二预设值的命令,所述第一数据位为所述第一预设值表示对应的数据块未使用,所述第一数据位为所述第二预设值表示对应的数据块已使用;
确定模块,用于确定所述第一数据位所属的第一数据卷,并确定所述第一数据卷的状态;其中,所述状态包括未同步状态、同步中状态和已同步状态;
修改模块,用于若所述第一数据卷处于未同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位;
加入模块,用于若所述第一数据卷处于同步中状态,则将所述第一修改命令加入第一处理链表中,在所述第一数据卷同步完成后,处理所述第一处理链表中的第一修改命令;
发送模块,用于若所述第一数据卷处于已同步状态,则基于所述第一修改命令修改存储于本端的位图中的第一数据位,并将所述第一数据位发送至从节点,以便所述从节点将存储于本端的位图中的所述第一数据位修改为所述第二预设值。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7中任一项所述位图同步方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述位图同步方法的步骤。
CN202011163221.2A 2020-10-27 2020-10-27 一种位图同步方法、装置及电子设备和存储介质 Active CN112286454B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011163221.2A CN112286454B (zh) 2020-10-27 2020-10-27 一种位图同步方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011163221.2A CN112286454B (zh) 2020-10-27 2020-10-27 一种位图同步方法、装置及电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN112286454A true CN112286454A (zh) 2021-01-29
CN112286454B CN112286454B (zh) 2022-07-22

Family

ID=74373375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011163221.2A Active CN112286454B (zh) 2020-10-27 2020-10-27 一种位图同步方法、装置及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112286454B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860109A (zh) * 2021-02-09 2021-05-28 北京汉王鹏泰科技股份有限公司 一种触控输入装置、方法、电子设备及可读存储介质
CN115334000A (zh) * 2022-07-20 2022-11-11 苏州浪潮智能科技有限公司 基于多控存储系统的数据传输方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643961A (zh) * 2017-09-26 2018-01-30 郑州云海信息技术有限公司 普通卷转镜像卷的数据同步方法、系统、装置及存储介质
CN107797770A (zh) * 2017-11-07 2018-03-13 深圳神州数码云科数据技术有限公司 一种磁盘状态信息的同步方法及装置
CN111399772A (zh) * 2020-02-29 2020-07-10 苏州浪潮智能科技有限公司 一种节点间的位图信息同步方法、装置、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643961A (zh) * 2017-09-26 2018-01-30 郑州云海信息技术有限公司 普通卷转镜像卷的数据同步方法、系统、装置及存储介质
CN107797770A (zh) * 2017-11-07 2018-03-13 深圳神州数码云科数据技术有限公司 一种磁盘状态信息的同步方法及装置
CN111399772A (zh) * 2020-02-29 2020-07-10 苏州浪潮智能科技有限公司 一种节点间的位图信息同步方法、装置、设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860109A (zh) * 2021-02-09 2021-05-28 北京汉王鹏泰科技股份有限公司 一种触控输入装置、方法、电子设备及可读存储介质
CN115334000A (zh) * 2022-07-20 2022-11-11 苏州浪潮智能科技有限公司 基于多控存储系统的数据传输方法、装置、设备及介质
CN115334000B (zh) * 2022-07-20 2023-08-11 苏州浪潮智能科技有限公司 基于多控存储系统的数据传输方法、装置、设备及介质

Also Published As

Publication number Publication date
CN112286454B (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
US9104629B2 (en) Autonomic reclamation processing on sequential storage media
CN112286454B (zh) 一种位图同步方法、装置及电子设备和存储介质
CN110781129B (zh) 一种fpga异构加速卡集群中的资源调度方法、设备及介质
WO2019223187A1 (zh) 数据存储方法及存储设备
WO2017050064A1 (zh) 共享内存数据库的内存管理方法及装置
CN113495889B (zh) 一种分布式对象存储方法、装置、电子设备及存储介质
CN113204530B (zh) 分布式文件系统的数据写入方法、装置、设备以及介质
CN109086168A (zh) 一种利用硬件备份固态硬盘写速度的方法及其系统
CN112748877A (zh) 一种文件的整合上传方法及装置、文件的下载方法及装置
CN110990356B (zh) 一种用于逻辑镜像的实时自动扩容方法和系统
CN111061690B (zh) 一种基于rac的数据库日志文件读取方法和装置
CN114442958A (zh) 一种分布式存储系统的存储优化方法及装置
CN107329695B (zh) 一种分布式存储内存管理方法、系统及计算机存储介质
CN112860188A (zh) 一种数据迁移方法、系统、设备以及介质
CN113377278A (zh) 固态硬盘、垃圾回收及控制方法、设备、系统及存储介质
US11592986B2 (en) Methods for minimizing fragmentation in SSD within a storage system and devices thereof
US20210064270A1 (en) Method and adevice for downloading resources
US20100217787A1 (en) Controller, information recording device, access device, information recording system, and information recording method
CN114115750B (zh) 一种应用于全闪存存储的缓存方法和装置
CN115599299A (zh) 一种存储桶管理方法、装置及电子设备和存储介质
CN114153599A (zh) 一种内存写入优化方法、装置、设备及介质
CN115167778A (zh) 存储的管理方法、系统及服务器
CN113886138A (zh) 一种用户配置文件管理方法、装置、设备及计算机介质
CN112148203B (zh) 存储器管理方法、装置、电子设备及存储介质
CN115599287A (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