CN116107517B - 数据同步方法、装置、电子设备和存储介质 - Google Patents

数据同步方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116107517B
CN116107517B CN202310379318.4A CN202310379318A CN116107517B CN 116107517 B CN116107517 B CN 116107517B CN 202310379318 A CN202310379318 A CN 202310379318A CN 116107517 B CN116107517 B CN 116107517B
Authority
CN
China
Prior art keywords
data
layer
memory block
modification
editing
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
CN202310379318.4A
Other languages
English (en)
Other versions
CN116107517A (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.)
Webray Tech Beijing Co ltd
Original Assignee
Webray Tech Beijing 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 Webray Tech Beijing Co ltd filed Critical Webray Tech Beijing Co ltd
Priority to CN202310379318.4A priority Critical patent/CN116107517B/zh
Publication of CN116107517A publication Critical patent/CN116107517A/zh
Application granted granted Critical
Publication of CN116107517B publication Critical patent/CN116107517B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据同步方法、装置、电子设备和存储介质,涉及数据处理技术领域,其中方法包括:在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;在编辑层对应的第一修改记录表中,通过第一进程将每个目标内存块的状态标记为数据修改状态;在同步周期结束时,通过第一进程将编辑层中存储的业务数据同步至固化层,并基于第一修改记录表更新第二修改记录表;在固化层中确定第二修改记录表中状态标记为数据修改状态对应的目标业务数据;将目标业务数据广播至其他设备。本发明在同步周期内只同步发生修改的业务数据,传输的业务数据量相对较小,从而提高了传输性能。

Description

数据同步方法、装置、电子设备和存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据同步方法、装置、电子设备和存储介质。
背景技术
当今计算机算力越来越高,数据交换越来越频繁,进程间交换数据是常见需求。常见的进程间交互技术有管道、消息队列、信号量、共享存储、套接字(Socket)等。
相关技术中,通常将分布在一个设备上的进程的所有业务数据通过定时的方式同步至另一个设备上的进程。
但上述相关技术中,在同步时,需要将所有业务数据同步至另一个设备上的进程,传递的业务数据量大,从而降低了传输性能。
发明内容
针对现有技术存在的问题,本发明实施例提供一种数据同步方法、装置、电子设备和存储介质。
本发明提供一种数据同步方法,应用于电子设备,所述电子设备上运行有第一进程,所述电子设备上设置有共享内存编辑器,所述共享内存编辑器包括编辑层和固化层,所述方法包括:
在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
根据本发明提供的一种数据同步方法,所述通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,包括:
在所述编辑层包括的内存块的数量大于或等于预设值时,通过所述第一进程将所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至所述固化层;
在所述编辑层包括的内存块的数量小于所述预设值时,通过所述第一进程将所述编辑层中所有内存块中的业务数据同步至所述固化层。
根据本发明提供的一种数据同步方法,所述通过所述第一进程将所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至所述固化层,包括:
通过所述第一进程确定所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据在所述编辑层中所在的第一内存块;
通过所述第一进程将所述目标业务数据同步至所述固化层中与所述第一内存块对应的第二内存块中。
根据本发明提供的一种数据同步方法,所述编辑层中每个内存块的大小与所述固化层中每个内存块的大小相同。
根据本发明提供的一种数据同步方法,所述方法还包括:
通过所述第一进程确定每个业务所需的内存空间,并基于每个所述内存空间确定所述内存块的大小。
根据本发明提供的一种数据同步方法,在同步周期内,所述目标内存块中的业务数据发生至少两次修改的情况下,所述目标内存块中存储的业务数据为最后一次修改后的业务数据。
根据本发明提供的一种数据同步方法,所述编辑层中不同内存块存储的业务数据的数据类型不全相同。
本发明还提供一种数据同步装置,包括:
监测单元,用于在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
标记单元,用于在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
同步单元,用于在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
第一确定单元,用于通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
广播单元,用于将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据同步方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据同步方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据同步方法。
本发明提供的数据同步方法、装置、电子设备和存储介质,在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块,在编辑层对应的第一修改记录表中,将每个目标内存块的状态标记为数据修改状态,并在同步周期结束时,将编辑层中存储的业务数据同步至固化层,并基于第一修改记录表更新固化层对应的第二修改记录表,并将在固化层中确定的第二修改记录表中状态标记为数据修改状态对应的目标业务数据广播至其他设备,使得其他设备通过第二进程将目标业务数据写入对应的编辑层,从而实现了第一进程和第二进程间在同步周期内修改的业务数据的同步。可知,本发明在同步周期内只同步发生修改的业务数据,传输的业务数据量相对较小,从而提高了传输性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据同步方法的流程示意图;
图2是本发明实施例提供的编辑层和固化层的示意图;
图3是本发明实施例提供的第一修改记录表的示意图;
图4是本发明实施例提供的数据同步系统的结构示意图;
图5是本发明实施例提供的数据同步装置的结构示意图;
图6是本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图3描述本发明的数据同步方法。
图1是本发明实施例提供的数据同步方法的流程示意图,应用于电子设备,所述电子设备上运行有第一进程,所述电子设备上设置有共享内存编辑器,所述共享内存编辑器包括编辑层和固化层,如图1所示,该数据同步方法包括以下步骤:
步骤101、在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块。
其中,共享内存编辑器通过两层内存来实现,两层内存分别为编辑层和固化层,编辑层用于接收用户的读操作和写操作,固化层用于制作数据镜像,同步周期可以基于业务延时需求进行设定,例如,将同步周期可以设置为100毫秒(ms)。
示例地,在同步周期内,第一进程监测编辑层中业务数据发生修改的每个目标内存块,图2是本发明实施例提供的编辑层和固化层的示意图,如图2所示,编辑层和固化层均由多个内存块组成,假设在同步周期内,内存块A的业务数据发生了修改,设置了两次值,分别为5和25,内存块B的业务数据发生了修改,设置了两次值,分别为10和15,则第一进程就监测到了编辑层的内存块A和内存块B中的业务数据发生了修改,从而将内存块A和内存块B均确定为目标内存块。
步骤102、在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态。
其中,第一修改记录表中的单元格的数量和编辑层中内存块的数量相同,且单元格和内存块一一对应。
示例地,第一进程在监测到编辑层发生修改的每个目标内存块时,在编辑层对应的第一修改记录表中将发生修改的每个目标内存块的状态标记为数据修改状态,即在同步周期内,编辑层做的修改会实时反应在编辑层的内存块和对应的第一修改记录表中;图3是本发明实施例提供的第一修改记录表的示意图,如图3所示,假设单元格A'与内存块A对应,单元格B'与内存块B对应,若内存块A和内存块B均为业务数据发生修改的目标内存块,则可以将单元格A'和单元格B'均设置1,即1就是数据修改的标记,以表示内存块A和内存块B的业务数据在同步周期内发生了修改。
需要说明的是,第一修改记录表中状态为数据未修改状态的单元格的标记可以为空,也可以为0,本发明对此不作限定。
步骤103、在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表。
示例地,在同步周期结束时,可以通过第一进程将编辑层中存储的业务数据同步至固化层,由于编辑层中的业务数据会实时变化,且编辑层对应的第一修改记录表中的信息也随着编辑层中业务数据的变化而变化,所以,本申请设置了固化层,将一个同步周期内编辑层中存储的业务数据同步至固化层,并将第一修改记录表进行拷贝,得到固化层对应的第二修改记录表;这样,在一个同步周期内,固化层中的业务数据和第二修改记录表中的信息不发生变化。
步骤104、通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据。
其中,电子设备上还设置有共享内存同步器,固化层为共享内存同步器提供做数据同步的数据源;共享内存同步器为能够实现数据传输的软件。
示例地,在将编辑层中存储的业务数据同步至固化层后,处理器可以通知共享内存同步器,使得共享内存同步器启动后,通过固化层对应的第二修改记录表,将固化层中在该同步周期同步的修改过的业务数据提取出来,得到该同步周期对应的修改过的目标业务数据。如图3所示,第一修改记录表中记录了编辑层中内存块A和内存块B的业务数据在同步周期内发生了修改,由于第二修改记录表拷贝了第一修改记录表的数据,所以,第二修改记录表中记录了固化层中与内存块A对应的内存块和内存块B对应的内存块的业务数据在同步周期内发生了修改,则目标业务数据为固化层中与内存块A对应的内存块中的业务数据、以及固化层中与内存块B对应的内存块中的业务数据。
步骤105、将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
其中,其他设备为与电子设备上运行的第一进程共享同一块共享内存的进程对应的设备。
示例地,共享内存同步器在得到该同步周期对应的修改过的业务数据时,将目标业务数据以块的方式广播至其他设备的共享内存同步器,其他设备的共享内存同步器在接收到目标业务数据时,将目标业务数据写入对应的编辑层,从而实现了进程间业务数据的同步。
需要说明的是,在一个同步周期结束时,编辑层对应的第一修改记录表清空,以记录下一个同步周期内编辑层中修改的业务数据对应的内存块的状态;对应地,在下一个同步周期内,需要重新拷贝第一修改记录表,得到固化层对应的新的第二修改记录表。
本发明提供的数据同步方法,在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块,在编辑层对应的第一修改记录表中,将每个目标内存块的状态标记为数据修改状态,并在同步周期结束时,将编辑层中存储的业务数据同步至固化层,并基于第一修改记录表更新固化层对应的第二修改记录表,并将在固化层中确定的第二修改记录表中状态标记为数据修改状态对应的目标业务数据广播至其他设备,使得其他设备通过第二进程将目标业务数据写入对应的编辑层,从而实现了第一进程和第二进程间在同步周期内修改的业务数据的同步。可知,本发明在同步周期内只同步发生修改的业务数据,传输的业务数据量相对较小,从而提高了传输性能。
在一实施例中,上述步骤103中的通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,具体可通过以下方式实现:
在所述编辑层包括的内存块的数量大于或等于预设值时,通过所述第一进程将所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至所述固化层;
在所述编辑层包括的内存块的数量小于所述预设值时,通过所述第一进程将所述编辑层中所有内存块中的业务数据同步至所述固化层。
示例地,在编辑层包括的内存块的数量大于或等于预设值时,说明编辑层占用的内存空间较大,可以基于第一修改记录表中每个单元格标记的状态来同步,具体地,将第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至固化层;如图3所示,第一修改记录表中记录了编辑层中内存块A和内存块B的业务数据在同步周期内发生了修改,则只将编辑层中内存块A和内存块B的业务数据作为目标业务数据同步至固化层,无需将编辑层中无发生修改的业务数据重复同步到固化层,以提高同步速率。
在编辑层包括的内存块的数量小于预设值时,说明编辑层占用的内存空间较小,可以将编辑层中的所有业务数据拷贝至固化层,无需在编辑层中查找在同步周期内发生修改的业务数据,以提高同步速率。
本发明实施例提供的数据同步方法,基于编辑层包括的内存块的数量与预设值的比较,采用不同的方式同步业务数据,以提高同步速率。
在一实施例中,上述所述通过所述第一进程将所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至所述固化层,具体可通过以下方式实现:
通过所述第一进程确定所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据在所述编辑层中所在的第一内存块;
通过所述第一进程将所述目标业务数据同步至所述固化层中与所述第一内存块对应的第二内存块中。
示例地,编辑层中的内存块和固化层中的内存块一一对应,在需要将编辑层的目标业务数据同步至固化层时,可以先确定编辑层中存储目标业务数据的第一内存块,然后将目标业务数据同步至固化层中与第一内存块对应的第二内存块中。
需要说明的是,在编辑层包括的内存块的数量小于预设值时,也可以将编辑层中每个内存块的业务数据同步至固化层对应的内存块中。
本发明实施例提供的数据同步方法,先确定目标业务数据在编辑层中所在的第一内存块,再将目标业务数据同步至固化层中与第一内存块对应的第二内存块中,实现了编辑层和固化层中对应内存块的业务数据的同步。
在一实施例中,所述编辑层中每个内存块的大小与所述固化层中每个内存块的大小相同。
示例地,编辑层的内存大小和固化层的内存大小可以相同,且均划分为N个内存块,以传递的业务需求来设定每个内存块的大小,例如,可以设定每个内存块的大小为100个字节。
本发明实施例提供的数据同步方法,将编辑层中每个内存块和固化层中每个内存块设置为相同大小,节约了对内存空间的占用。
在一实施例中,该数据同步方法还包括以下步骤:
通过所述第一进程确定每个业务所需的内存空间,并基于每个所述内存空间确定所述内存块的大小。
示例地,编辑层可以存储不同业务对应的业务数据,在划分编辑层和固化层的内存块时,可以确定每个业务所需的内存空间,综合考虑每个业务所需的内存空间,基于综合考虑的结果确定每个内存块的大小;例如,编辑层需要存储三个业务对应的业务数据,三个业务分别为业务1、业务2和业务3,业务1所需的内存空间为10千字节(Kilobyte,KB),业务2所需的内存空间为1KB,业务3所需的内存空间为5KB,则每个内存块的大小可以以三个业务的繁忙程度来确定,若三个业务的繁忙程度相同,则每个内存块的大小可以以所需的内存空间为最小的业务2来确定,可以将每个内存块的大小设置为1KB,以提高每个内存块的利用率;若业务3最繁忙,则可以将每个内存块的大小设置为5KB或者2.5KB等,尽量提高每个内存块的利用率。
本发明实施例提供的数据同步方法,基于每个业务所需的内存空间的大小确定内存块的大小,以提高每个内存块的利用率。
在一实施例中,在同步周期内,所述目标内存块中的业务数据发生至少两次修改的情况下,所述目标内存块中存储的业务数据为最后一次修改后的业务数据。
示例地,在同步周期内,编辑层中目标内存块中的业务数据发生至少两次修改的情况下,目标内存块中存储的业务数据为最后一次修改后的业务数据;如图2所示,在同步周期内,内存块A修改了2次,设置了2次值,分别为5和25,则编辑层的内存块A中存储的是最新值25;对应地,固化层与内存块A对应的内存块中的业务数据也为25;在同步周期内,内存块B也修改了2次,设置了2次值,分别为10和15,则编辑层的内存块B中存储的是最新值15;对应地,固化层与内存块B对应的内存块中的业务数据也为15。
本发明实施例提供的数据同步方法,在同步周期内,目标内存块中的业务数据发生多次修改时,编辑层的目标内存块中存储的业务数据为最后一次修改的业务数据,这样,在同步周期结束时,同步至固化层的业务数据也只是最后一次修改的业务数据,则广播至其他设备的业务数据也是最后一次修改的业务数据,无需将中间修改的业务数据广播至其他设备,避免了冗余数据的同步。
在一实施例中,所述编辑层中不同内存块存储的业务数据的数据类型不全相同。
其中,数据类型可以为全局变量、链表、数组等。
示例地,编辑层中包括多个内存块,可以基于需求在不同内存块中存储不同数据类型的业务数据,例如,涉及的业务有业务1、业务2和业务3,编辑层中每个内存块的大小为1KB,内存块有20个,假设业务1所需的内存空间为5KB,业务2所需的内存空间为10KB,业务3所需的内存空间为5KB,则可以在前5个内存块中存储业务1对应的业务数据,在中间10个内存块中存储业务2对应的业务数据,在后5个内存块中存储业务3对应的业务数据。
需要说明的是,还可以在编辑层的不同内存块中存储同一业务的业务数据,本发明对此不作限定。
本发明实施例提供的数据同步方法,编辑层中不同内存块存储的业务数据的数据类型不全相同,这样,任意数据类型的业务数据在同步周期内发生修改时,都可以同步至固化层,进而广播至其他设备。可知,本发明提供了不同数据类型的异构业务数据的通用同步机制,也提供了不同数据类型的异构业务数据的跨设备的同步机制,能够同时实现不同数据类型的异构业务数据的同步。
图4是本发明实施例提供的数据同步系统的结构示意图,如图4所示,以三个设备为例,三个设备分别为设备A、设备B和设备C,设备A上运行有进程A和进程D,设备B上运行有进程B,设备C上运行有进程C,且设备A上设置有共享内存编辑器A和共享内存同步器A,设备B上设置有共享内存编辑器B和共享内存同步器B,设备C上设置有共享内存编辑器C和共享内存同步器C,共享内存同步器A、共享内存同步器B和共享内存同步器C之间可以相互通信,进程A和进程D共用共享内存编辑器A和共享内存同步器A,通过共享内存编辑器A实现进程A和进程D的业务数据的同步,每个共享内存编辑器均包括编辑层和固化层,编辑层用于接收用户的读操作和写操作,固化层用于制作数据镜像,固化层为共享内存同步器提供做数据同步的数据源。进程可以申请编辑层中的内存块,也可以访问编辑层中的内存块,对内存块中的业务数据进行读操作或者写操作等。
下面对本发明提供的数据同步装置进行描述,下文描述的数据同步装置与上文描述的数据同步方法可相互对应参照。
图5是本发明实施例提供的数据同步装置的结构示意图,如图5所示,应用于电子设备,所述电子设备上运行有第一进程,所述电子设备上设置有共享内存编辑器,所述共享内存编辑器包括编辑层和固化层,该数据同步装置500包括监测单元501、标记单元502、同步单元503、第一确定单元504和广播单元505;其中:
监测单元501,用于在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
标记单元502,用于在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
同步单元503,用于在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
第一确定单元504,用于通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
广播单元505,用于将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
本发明提供的数据同步装置,在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块,在编辑层对应的第一修改记录表中,将每个目标内存块的状态标记为数据修改状态,并在同步周期结束时,将编辑层中存储的业务数据同步至固化层,并基于第一修改记录表更新固化层对应的第二修改记录表,并将在固化层中确定的第二修改记录表中状态标记为数据修改状态对应的目标业务数据广播至其他设备,使得其他设备通过第二进程将目标业务数据写入对应的编辑层,从而实现了第一进程和第二进程间在同步周期内修改的业务数据的同步。可知,本发明在同步周期内只同步发生修改的业务数据,传输的业务数据量相对较小,从而提高了传输性能。
基于上述任一实施例,所述同步单元503具体用于:
在所述编辑层包括的内存块的数量大于或等于预设值时,通过所述第一进程将所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至所述固化层;
在所述编辑层包括的内存块的数量小于所述预设值时,通过所述第一进程将所述编辑层中所有内存块中的业务数据同步至所述固化层。
基于上述任一实施例,所述同步单元503还具体用于:
通过所述第一进程确定所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据在所述编辑层中所在的第一内存块;
通过所述第一进程将所述目标业务数据同步至所述固化层中与所述第一内存块对应的第二内存块中。
基于上述任一实施例,所述编辑层中每个内存块的大小与所述固化层中每个内存块的大小相同。
基于上述任一实施例,所述数据同步装置500还包括:
第二确定单元,用于通过所述第一进程确定每个业务所需的内存空间,并基于每个所述内存空间确定所述内存块的大小。
基于上述任一实施例,在同步周期内,所述目标内存块中的业务数据发生至少两次修改的情况下,所述目标内存块中存储的业务数据为最后一次修改后的业务数据。
基于上述任一实施例,所述编辑层中不同内存块存储的业务数据的数据类型不全相同。
图6是本发明实施例提供的电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行数据同步方法,该方法包括:在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据同步方法,该方法包括:在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据同步方法,该方法包括:在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据同步方法,其特征在于,应用于电子设备,所述电子设备上运行有第一进程,所述电子设备上设置有共享内存编辑器,所述共享内存编辑器包括编辑层和固化层,所述方法包括:
在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
2.根据权利要求1所述的数据同步方法,其特征在于,所述通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,包括:
在所述编辑层包括的内存块的数量大于或等于预设值时,通过所述第一进程将所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至所述固化层;
在所述编辑层包括的内存块的数量小于所述预设值时,通过所述第一进程将所述编辑层中所有内存块中的业务数据同步至所述固化层。
3.根据权利要求2所述的数据同步方法,其特征在于,所述通过所述第一进程将所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据同步至所述固化层,包括:
通过所述第一进程确定所述第一修改记录表中状态标记为数据修改状态对应的目标业务数据在所述编辑层中所在的第一内存块;
通过所述第一进程将所述目标业务数据同步至所述固化层中与所述第一内存块对应的第二内存块中。
4.根据权利要求1所述的数据同步方法,其特征在于,所述编辑层中每个内存块的大小与所述固化层中每个内存块的大小相同。
5.根据权利要求4所述的数据同步方法,其特征在于,所述方法还包括:
通过所述第一进程确定每个业务所需的内存空间,并基于每个所述内存空间确定所述内存块的大小。
6.根据权利要求1-5任一项所述的数据同步方法,其特征在于,在同步周期内,所述目标内存块中的业务数据发生至少两次修改的情况下,所述目标内存块中存储的业务数据为最后一次修改后的业务数据。
7.根据权利要求1-5任一项所述的数据同步方法,其特征在于,所述编辑层中不同内存块存储的业务数据的数据类型不全相同。
8.一种数据同步装置,其特征在于,包括:
监测单元,用于在同步周期内,通过第一进程监测编辑层中业务数据发生修改的每个目标内存块;
标记单元,用于在所述编辑层对应的第一修改记录表中,通过所述第一进程将每个所述目标内存块的状态标记为数据修改状态;
同步单元,用于在所述同步周期结束时,通过所述第一进程将所述编辑层中存储的业务数据同步至固化层,并基于所述第一修改记录表更新所述固化层对应的第二修改记录表;
第一确定单元,用于通过所述第一进程在所述固化层中确定所述第二修改记录表中状态标记为数据修改状态对应的目标业务数据;
广播单元,用于将所述目标业务数据广播至其他设备,以使所述其他设备通过第二进程将所述目标业务数据写入对应的编辑层。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据同步方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据同步方法。
CN202310379318.4A 2023-04-11 2023-04-11 数据同步方法、装置、电子设备和存储介质 Active CN116107517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310379318.4A CN116107517B (zh) 2023-04-11 2023-04-11 数据同步方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310379318.4A CN116107517B (zh) 2023-04-11 2023-04-11 数据同步方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN116107517A CN116107517A (zh) 2023-05-12
CN116107517B true CN116107517B (zh) 2023-06-09

Family

ID=86262000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310379318.4A Active CN116107517B (zh) 2023-04-11 2023-04-11 数据同步方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116107517B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309818A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 存储数据的方法及装置
CN109032817A (zh) * 2018-07-25 2018-12-18 天津凯发电气股份有限公司 一种电能质量管理系统共享内存实现方法
CN111538779A (zh) * 2020-03-25 2020-08-14 平安健康保险股份有限公司 一种增量数据同步的方法、装置、计算机设备及存储介质
CN111813550A (zh) * 2020-07-08 2020-10-23 深圳市腾讯网域计算机网络有限公司 数据处理方法、装置、服务器和存储介质
CN114327946A (zh) * 2021-12-24 2022-04-12 北京百度网讯科技有限公司 共享内存访问控制方法、装置、电子设备及自动驾驶车辆
CN114510394A (zh) * 2022-01-25 2022-05-17 网易(杭州)网络有限公司 服务器内存的分析方法、装置及计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI526849B (zh) * 2013-12-31 2016-03-21 Insyde Software Corp Portable electronic device, dual heterogeneity operating system sharing file, recording media and computer program products
US11783067B2 (en) * 2020-10-13 2023-10-10 Microsoft Technology Licensing, Llc Setting modification privileges for application instances

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309818A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 存储数据的方法及装置
CN109032817A (zh) * 2018-07-25 2018-12-18 天津凯发电气股份有限公司 一种电能质量管理系统共享内存实现方法
CN111538779A (zh) * 2020-03-25 2020-08-14 平安健康保险股份有限公司 一种增量数据同步的方法、装置、计算机设备及存储介质
CN111813550A (zh) * 2020-07-08 2020-10-23 深圳市腾讯网域计算机网络有限公司 数据处理方法、装置、服务器和存储介质
CN114327946A (zh) * 2021-12-24 2022-04-12 北京百度网讯科技有限公司 共享内存访问控制方法、装置、电子设备及自动驾驶车辆
CN114510394A (zh) * 2022-01-25 2022-05-17 网易(杭州)网络有限公司 服务器内存的分析方法、装置及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
快速更新注册表一法;姜迪;;电脑校园(06);全文 *

Also Published As

Publication number Publication date
CN116107517A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN107295080B (zh) 应用于分布式服务器集群的数据存储方法和服务器
CN109683826B (zh) 用于分布式存储系统的扩容方法和装置
CN101808137B (zh) 数据传输方法、装置和系统
CN104750738B (zh) 一种更新数据信息的方法、数据节点、管理节点及系统
CN111399764B (zh) 数据存储方法、读取方法、装置、设备及存储介质
CN102279857B (zh) 一种实现数据复制的方法及系统
EP3713195B1 (en) Log processing method, related device, and system
CN115146002A (zh) 跨数据中心的数据同步方法及装置
CN110807035A (zh) 流水号生成方法、装置、设备及存储介质
CN116107517B (zh) 数据同步方法、装置、电子设备和存储介质
CN113297229B (zh) 路由读请求、反馈报文的方法以及各自装置、数据库
CN114785662B (zh) 一种存储管理方法、装置、设备及机器可读存储介质
CN105511808A (zh) 一种数据操作方法、系统及相关装置
CN115189931A (zh) 一种分布式密钥管理方法、装置、设备、存储介质
CN111966650B (zh) 一种运维大数据共享数据表的处理方法、装置及存储介质
CN110471922B (zh) 记账节点的内容扩展方法、设备及计算机可读存储介质
CN115705269A (zh) 数据同步方法、系统、服务器及存储介质
CN113297322A (zh) 数据同步方法、系统以及装置
CN109558205B (zh) 磁盘访问方法及装置
CN111666338B (zh) 数据复制方法、控制节点及电子设备
CN111026810A (zh) 数据同步方法、装置及存储介质
CN111405313A (zh) 存储流媒体数据的方法和系统
CN111142921A (zh) 软件升级方法及装置
CN109542353B (zh) 一种面向广域分布式存储系统的一致性算法
CN114448781B (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