CN114328739A - 数据同步、读取方法及装置、电子设备、存储介质及产品 - Google Patents
数据同步、读取方法及装置、电子设备、存储介质及产品 Download PDFInfo
- Publication number
- CN114328739A CN114328739A CN202111652125.9A CN202111652125A CN114328739A CN 114328739 A CN114328739 A CN 114328739A CN 202111652125 A CN202111652125 A CN 202111652125A CN 114328739 A CN114328739 A CN 114328739A
- Authority
- CN
- China
- Prior art keywords
- task
- storage system
- executed
- data
- target
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据同步方法及装置、数据读取方法及装置、电子设备、存储介质和计算机程序产品,涉及数据处理技术领域,尤其涉及数据库技术领域。该方法包括:获取主存储系统中写入的目标数据;基于目标数据,生成待执行任务;向任务执行部件发送第一同步信号,以控制任务执行部件获取待执行任务,并将目标数据同步到至少一个从存储系统中。本公开将数据写入的任务中,利用任务执行部件对任务的执行来实现多存储系统的数据同步的方案,能够支持任意数量和类型的存储系统进行数据同步,不仅提高了在异构存储系统中数据同步的准确性,还提高了场景适用性。
Description
技术领域
本公开涉及数据处理领域,尤其涉及数据库技术领域。
背景技术
随着互联网的蓬勃发展,互联网应用和服务的类型越来越多,功能越来越复杂。以前的互联网应用和服务中通常采用关系型数据库来存储和检索数据,近年来这种单一的存储系统无法满足互联网服务或互联网应用的需求。互联网应用和服务开始使用多种存储系统组成异构存储系统,来满足复杂多样的存储和检索需求。当服务中使用到多种存储系统之后,需要保证各存储系统中保存的数据具备一致性。
发明内容
本公开提供了一种数据同步方法及装置、数据读取方法及装置、电子设备、存储介质和计算机程序产品。
根据本公开的一方面,提供了一种数据同步方法,包括:
获取主存储系统中写入的目标数据;
基于所述目标数据,生成待执行任务;
向任务执行部件发送第一同步信号,以控制所述任务执行部件获取所述待执行任务,并将所述目标数据同步到至少一个从存储系统中。
根据本公开的另一方面,提供了一种数据读取方法,包括:
响应于接收到的针对目标从存储系统的数据读取信号,确定读取数据在主存储系统中对应的第一版本号,以及所述读取数据在所述目标从存储系统中对应的第二版本号;
基于所述第一版本号和所述第二版本号,从所述目标从存储系统和待执行任务中的任一个获取所述读取数据。
根据本公开的另一方面,提供了一种数据同步装置,包括:
数据获取模块,用于获取主存储系统中写入的目标数据;
任务生成模块,用于基于所述目标数据,生成待执行任务;
同步控制模块,用于向任务执行部件发送第一同步信号,以控制所述任务执行部件获取所述待执行任务,并将所述目标数据同步到至少一个从存储系统中。
根据本公开的另一方面,提供了数据读取装置,包括:
版本确定模块,用于响应于接收到的针对目标从存储系统的数据读取信号,确定读取数据在主存储系统中对应的第一版本号,以及所述读取数据在所述目标从存储系统中对应的第二版本号;
读取模块,用于基于所述第一版本号和所述第二版本号,从所述目标从存储系统和待执行任务中的任一个获取所述读取数据。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现本公开任一实施例中的方法。
本公开实施例的技术方案将数据写入的任务中,利用任务执行部件对任务的执行来实现多存储系统的数据同步的方案,能够支持任意数量和类型的存储系统进行数据同步,不仅提高了在多个存储系统中数据同步的准确性,保证多个存储系统中存储的数据具备一致性,还提高了场景适用性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开一实施例数据同步方法的流程图之一;
图2是根据本公开一实施例数据读取方法的流程图之一;
图3是根据本公开一实施例中服务端的框图;
图4是根据本公开一实施例数据同步方法的流程图之二;
图5是根据本公开一实施例数据读取方法的流程图之二;
图6是根据本公开一实施例中数据同步装置的框图;
图7是根据本公开一实施例中数据读取装置的框图;
图8是用来实现本公开实施例的数据同步方法或者数据读取方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
随着互联网的发展和功能的复杂化,互联网服务使用多种存储系统组成异构存储系统,来满足复杂多样的存储和检索需求。当服务中使用到多种存储系统之后,出现了数据一致性的问题。目前一般通过搭建消息同步系统或实现分布式事务的方式来解决数据一致性的问题。但是上述方式存在使用场景局限性大、数据同步过程中数据不一致、同步过程可靠性差、开发和维度成本较高等问题。
针对上述技术缺陷,本公开实施例提供了一种数据同步方法及装置、数据读取方法及装置、电子设备、存储介质和计算机程序产品,本公开实施例将数据写入映射得到的任务中,利用任务执行系统对任务的执行来实现多存储系统的数据同步的方案,支持任意数量和类型的存储系统,提高了场景适用性。另外,本公开实施例通过失败任务重试和定时查询失败任务,保证了任务执行的效率和数据同步的准确性。另外,本公开实施例通过数据版本号的设置和比较,能够保证在数据同步过程中,从从存储系统中能够获取到最新的数据,克服了数据同步过程中数据不一致的问题,能够无视数据同步过程中的时间差。另外,上述方案转为异构存储系统设计,开发维护成本低。
下面通过具体的实施例对本公开提供的数据同步方法进行说明。
图1为本公开一实施例中数据同步方法的流程图,本公开实施例的方法可以是具有计算能力的设备执行的,用于将存入主存储系统中的数据同步到至少一个从存储系统中。如图1所示,该数据同步方法包括:
S110、获取主存储系统中写入的目标数据。
S120、基于目标数据,生成待执行任务。
S130、向任务执行部件发送第一同步信号,以控制任务执行部件获取待执行任务,并将目标数据同步到至少一个从存储系统中。
上述目标数据是写入了主存储系统,并且需要同步到从存储系统中的数据。在获取到主存储中写入的目标数据之后,可以将目标数据写入到映射得到的初始任务中,得到上述待执行任务。
在执行上述步骤S110之前,可以在多个存储系统中选取一个作为主存储系统,其他存储系统作为从存储系统,规定只能由该主存储系统写入数据,并且生成的待执行任务存储在主存储系统中,之后,利用任务执行部件从主存储系统中获取待执行任务,并将待执行任务中的目标数据同步到从存储系统中。
将待执行任务存储在主存储系统中,能够将存入主存储系统的目标数据及时写入任务中,不仅有利于提高数据同步的效率,还能够保证读取到最新版本的目标数据,提高了多存储系统中数据读取的一致性。
在实际应用中,可以是每生成一个待执行任务就发送一次第一同步信号,以控制任务执行部件从主存储系统中获取该待执行任务,并将目标数据同步到至少一个从存储系统中。也可以是在满足数据同步条件的情况下,向任务执行部件发送第一同步信号。任务执行部件接收到第一同步信号之后,从主存储系统中获取至少一个待执行任务,并按照每个待执行任务的同步时间信息,将每个待执行任务对应的目标数据依次同步到至少一个从存储系统中。
示例性地,上述数据同步条件可以是每隔一个预设的时间间隔,即每隔一个预设的时间间隔向任务执行部件发送一次第一同步信号。
任务执行部件获取的待执行任务的数量N可以根据实际场景灵活设定,任务执行部件按照同步时间信息对应的同步时间从早到晚的顺序,每次从主存储系统中获取N个待执行任务。若主存储系统中存储的待执行任务的数量小于N,则将主存储系统中存储的所有待执行任务取出。
上述同步时间信息与待执行任务的生成时间相对应,示例性地,可以基于待执行任务的生成时间确定同步时间信息。
任务执行部件在获取到多个待执行任务之后,可以按照每个待执行任务的同步时间信息,将每个待执行任务对应的目标数据依次同步到至少一个从存储系统中。示例性地,基于同步时间信息,将生成的较早的待执行任务先执行,之后再执行生成较晚的待执行任务。
在获取到多个待执行任务时,基于每个待执行任务的同步时间信息,将每个待执行任务对应的目标数据依次同步到至少一个从存储系统中,能够保证多个目标数据或者多批目标数据能够有序地同步到各个从存储系统中,提高了数据同步的准确性。
上述至少一个从存储系统可以是预先设定的需要同步主存储系统中的数据的至少一个从存储系统。
示例性地,主存储系统与上述至少一个从存储系统可以组成异构存储系统,即主存储系统的类型与至少一个从存储系统的类型不同,提高了本公开实施例的方案的适用场景。当然,上述主存储系统和所有的从存储系统也可以是相同的数据库结构,本公开对此并不进行限定。
在将某一待执行任务中的目标数据同步到预设的至少一个从存储系统之后,可以将该待执行任务的任务状态标记为已完成。任务执行部件在基于第一同步信号获取待执行任务时,不去获取任务状态标记为已完成的任务,只获取任务状态为未完成的待执行任务。这里,任务状态为未完成的待执行任务可以包括已经执行过但未执行成功的任务,以及未被执行过的任务。另外,任务执行部件在基于第一同步信号获取待执行任务时,可以只获取未被执行过的任务,不获取已经执行过但未执行成功的任务,本公开对此并不进行限定。
在目标数据成功同步到预设的至少一个从存储系统中时,将待执行任务的任务状态标记为已完成,能够避免任务执行部件获取到已经执行成功的待执行任务,避免已经执行成功的待执行任务再次被执行,提高了数据同步的效率和准确性,避免资源浪费。
上述实施例设置多个存储系统中的一个为主存储系统,规定只能由该主存储系统写入数据。写入的目标数据映射为一个待执行任务存入主存储系统。通过任务执行部件从主存储系统中获取待执行任务,并将其中的目标数据写入每个从存储系统,本公开上述实施例的方案支持任意数量和类型的存储系统,提高了场景适用性。
在一些实施例中,若未成功将目标数据同步到预设的至少一个从存储系统中,则基于待执行任务,向消息处理部件发送第一任务重试信号。消息处理部件基于接收的第一任务重试信号,按照预设频率向任务执行部件发送针对待执行任务的第二任务重试信号。任务执行部件基于接收的第二任务重试信号持续执行将目标数据同步到预设的至少一个从存储系统中的操作,直到将待执行任务中的目标数据成功同步到预设的至少一个从存储系统中。
上述第一任务重试信号和第二任务重试信号均可以包括待执行任务的标识信息。任务执行部件基于第二任务重试信号中的标识信息定位到需要重试的待执行任务,之后执行定位到的待执行任务。
示例性地,上述消息处理部件是能够接收信号,并且可以向其他部件发送信号的部件,例如可以是分布式消息队列。利用上述分布式消息队列能够实现按照预设频率,多次向任务执行部件发送执行失败的待执行任务的重试信号,能够有效提高执行失败的待执行任务的数据同步效率。
对于数据同步失败的待执行任务,利用消息队列等消息处理部件向任务执行部件发送第二任务重试信号,以使任务执行部件再次或多次对该任务执行数据同步操作,不仅提高了执行失败的待执行任务的数据同步效率,还保证了待执行任务中的目标数据能够同步到预设的一个或多个从存储系统中。
在一些实施例中,为了避免待执行任务长期不被执行,或者为了避免待执行任务被遗漏,本公开实施例的数据同步方法还可以包括如下步骤:
按照预设时间间隔,启动任务查询脚本,利用任务查询脚本查找在预设时长内未被任务执行部件执行的待执行任务;在查找到预设时长内未被执行的待执行任务之后,向任务执行部件发送第二同步信号,任务执行部件基于接收的第二同步信号将查找出的待执行任务对应的目标数据同步到至少一个从存储系统中。
预设时长内未被执行的,并且任务状态为未完成的待执行任务待执行任务可以包括预设时长内未被执行、预设时长之前已经执行过但未执行成功的任务,以及,预设时长内以及预设时长之前均未被执行过的任务。
上述设置定时查询长时间内未被执行的待执行任务的功能,能够避免丢失未成功执行数据同步操作的任务,保证了数据同步的准确性。
在一些实施例中,还可以在每次数据更新之后设置和存储数据对应的版本号,以在从存储系统中读取数据时定位到最新的数据。具体可以在将目标数据存储到主存储系统之后,确定目标数据针对主存储系统的第一版本号,并将第一版本号存储在主存储系统中;在将目标数据同步到某一从存储系统中之后,确定目标数据针对该从存储系统的第二版本号,并将第二版本号存储在该从存储系统中。
上述第一版本号和第二版本号可以用于在数据读取操作过程中定位最新版本的目标数据,例如可以基于第一版本号和第二版本号确定对应的从存储系统是否已经成功同步了对应的目标数据,即确定从存储系统是否同步了最新版本的目标数据,如果从存储系统同步成功,则从从存储系统中获取最新版本的目标数据;如果从存储系统还未成功同步目标数据的最新版本,则从对应的待执行任务或者主存储系统中获取最新版本的目标数据。通过上述方式能够忽略存储系统同步数据过程中的时间差,提高了数据读取的准确性。
如图2所示,本公开实施例还提供了一种数据读取方法,该方法可以是数据读取设备执行的,用于从一个从存储系统中读取数据。如图2所示,该数据读取方法包括:
S210、响应于接收到的针对目标从存储系统的数据读取信号,确定读取数据在主存储系统中对应的第一版本号,以及读取数据在目标从存储系统中对应的第二版本号。
S220、基于第一版本号和第二版本号,从目标从存储系统和待执行任务中的任一个获取需要读取的读取数据。
上述数据读取信号中包括需要读取的数据的标识信息,根据该标识信息能够定位到第一版本号、第二版本号,以及需要读取的数据的最新版本对应的待执行任务。
基于第一版本号和第二版本号能够确定目标从存储系统是否成功同步了需要读取的数据的最新版本,若目标从存储系统成功同步了需要读取的数据的最新版本,则从目标从存储系统中获取需要读取的数据;若目标从存储系统未成功同步需要读取的数据的最新版本,则基于数据读取信号定位到对应待执行任务,并从对应的待执行任务中获取需要读取的数据。该方式能够忽略存储系统同步数据过程中的时间差,提高了数据读取的准确性。
上述待执行任务是基于读取数据生成的,具体可以是读取数据存储到主存储系统之后,将读取数据写入初始任务中得到了上述待执行任务。上述待执行任务存储在主存储系统中。
在一些实施例中,第一版本号可以包括读取数据在主存储系统中更新的第一次数;第二版本号包括读取数据在对应的从存储系统中更新的第二次数。在第二次数小于第一次数的情况下,主存储系统对读取数据更新的次数比较多,目标从存储系统对读取数据更新的次数较少,即目标从存储系统未更新到最新的版本的读取数据,此时确定目标从存储系统针对读取数据未同步完成,可以从对应的待执行任务中获取最新版本的读取数据。
在第二次数等于所述第一次数的情况下,存储系统对读取数据更新的次数与目标从存储系统对读取数据更新的次数相同,即目标从存储系统更新到最新的版本的读取数据,此时确定目标从存储系统针对读取数据同步完成,可以从目标从存储系统中获取最新版本的读取数据。
在实际应用中,可以在主存储系统和各个从存储系统中均增加一个版本号的字段,字段的类型是数字,对应目标数据或者读取数据每增加一次更新,数值加1。
通过上述第一次数和第二次数能够准确地判断目标从存储系统是否更新了读取数据的最新版本,基于此判断结果能够准确地确定获取最新版本的读取数据的位置,保证了读取到的读取数据为最新版本。
在一些实施例中,第一版本号可以包括读取数据在主存储系统最新存储的第一标识信息;第二版本号包括读取数据在对应的从存储系统中最新存储的第二标识信息。在第二标识信息与第一标识信息不匹配的情况下,目标从存储系统未更新到最新的版本的读取数据,此时确定目标从存储系统针对所述读取数据未同步完成,可以从对应的待执行任务中获取最新版本的读取数据。
在第二标识信息与第一标识信息相匹配的情况下,目标从存储系统更新到最新的版本的读取数据,此时确定目标从存储系统针对读取数据同步完成,可以从目标从存储系统中获取最新版本的读取数据。
通过上述第二标识信息与第一标识信息能够准确地判断目标从存储系统是否更新了读取数据的最新版本,基于此判断结果能够准确地确定获取最新版本的读取数据的位置,保证了读取到的读取数据为最新版本。
上述实施例的方法专门为了多个存储系统进行数据同步和数据读取设计,开发和维护成本相对较低。
下面再通过一个实施例对本公开的数据同步方法以及数据读取方法进行说明。如图3所示,本实施例的数据同步方法和数据读取方法可以由业务系统中数据读写部件来完成。其中,业务系统可以布置在服务端,同时服务端上布置有主存储系统、多个从存储系统、任务执行部件、消息处理部件以及任务查询脚本。通过业务执行系统中的数据读写部件实现将存入主存储系统的目标数据同步到多个从存储系统中,同时配合消息处理部件实现数据同步失败的待执行任务再次执行,配合任务查询脚本查找长时间不被执行的,并且未完成数据同步的待执行任务,以免遗漏待执行任务,提高了数据同步的效率和准确性。另外,主存储系统中设置有第一版本号,从存储系统中设置有第二版本号,通过第一版本号和第二版本号能够定位到最新版本的目标数据。
如图4所示,本实施例的数据同步方法包括如下步骤:
第一、主系统中写入目标数据后,将目标数据写入初始任务中,得到待执行任务;
第二、任务执行部件启动任务查询,查询主存储系统中是否存在未完成的待执行任务;这里未完成的待执行任务包括任务状态为待重试的任务;
第三、若主存储系统中存在未完成的待执行任务,则任务执行部件获取未完成的待执行任务,并执行获取的待执行任务,将待执行任务中的目标数据同步到预设的至少一个从存储系统中;
第四、若成功将目标数据同步到预设的至少一个从存储系统中,则将待执行任务的任务状态标记为已完成;否则向消息处理部件发送第一任务重试信号,以使消息处理部件按照预设频率向任务执行部件发送针对待执行任务的第二任务重试信号,直到任务执行部件基于第二任务重试信号将目标数据同步到预设的至少一个从存储系统中。另外,可以将待执行任务的任务状态标记为待重试。
如图5所示,本实施例的数据读取方法包括如下步骤:
第一、接收针对目标从存储系统的数据读取信号;
第二、基于数据读取信号,确定读取数据在主存储系统中对应的第一版本号,以及在目标从存储系统中对应的第二版本号;
第三、对比第一版本号和第二版本号;
第四、若第一版本号与第二版本号相同,则目标从存储系统针对读取数据同步完成,从目标从存储系统中获取上述读取数据;否则目标从存储系统针对读取数据同步未完成,从读取数据对应的待执行任务中获取上述读取数据。
本公开上述实施例适用于大多数场景,支持任意数量和类型的存储系统,并且可以无视数据同步过程中的时间差,在数据同步过程中也能保障读取的数据是最新版本的数据,保证了多存储系统中数据读取的一致性。同时,本公开实施例的方法以及对应的装置专为多存储系统设计,开发和维护成本较低。
基于同一发明构思,本公开实施例中还提供了数据同步方法对应的数据同步装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据同步方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图6是根据本公开一实施例中数据同步装置的框图。如图6所示,该装置包括:
数据获取模块610,用于获取主存储系统中写入的目标数据。
任务生成模块620,用于基于目标数据,生成待执行任务。
同步控制模块630,用于向任务执行部件发送第一同步信号,以控制任务执行部件获取待执行任务,并将目标数据同步到至少一个从存储系统中。
在一些实施例中,同步控制模块630还用于:
确定所述目标数据针对所述主存储系统的第一版本号;
将所述第一版本号存储在所述主存储系统中;
确定所述目标数据针对所述从存储系统的第二版本号;
将所述第二版本号存储在所述从存储系统中;
其中,所述第一版本号和所述第二版本号用于在数据读取操作过程中定位最新版本的目标数据。
在一些实施例中,任务生成模块620用于:
将目标数据写入初始任务中,得到待执行任务;
将待执行任务存入主存储系统;
向任务执行部件发送第一同步信号,以控制任务执行部件从主存储系统中获取待执行任务。
在一些实施例中,同步控制模块630还用于:
在将目标数据成功同步到预设的至少一个从存储系统中的情况下,将待执行任务的任务状态标记为已完成;
向任务执行部件发送第一同步信号,以控制任务执行部件获取任务状态为未完成的待执行任务。
在一些实施例中,同步控制模块630还用于:
在未成功将目标数据同步到预设的至少一个从存储系统中的情况下,基于待执行任务,向消息处理部件第一任务重试信号,以使消息处理部件按照预设频率向任务执行部件发送针对待执行任务的第二任务重试信号,直到任务执行部件基于第二任务重试信号将目标数据同步到预设的至少一个从存储系统中。
在一些实施例中,消息处理部件包括分布式消息队列。
在一些实施例中,同步控制模块630还用于:
按照预设时间间隔,启动任务查询脚本,以利用任务查询脚本查找在预设时长内未被任务执行部件执行,并且任务状态为未完成的待执行任务;
向任务执行部件发送第二同步信号,以控制任务执行部件将查找出的待执行任务对应的目标数据同步到至少一个从存储系统中。
在一些实施例中,主存储系统的类型与至少一个从存储系统的类型不同。
在一些实施例中,待执行任务为多个,同步控制模块630用于:
在满足数据同步条件的情况下,向任务执行部件发送第一同步信号,以控制任务执行部件获取多个待执行任务,并按照每个待执行任务的同步时间信息,将每个待执行任务对应的目标数据依次同步到至少一个从存储系统中。
基于同一发明构思,本公开实施例中还提供了数据读取方法对应的数据读取装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据读取方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图7是根据本公开一实施例中数据读取装置的框图。如图7所示,该装置包括:
版本确定模块710,用于响应于接收到的针对目标从存储系统的数据读取信号,确定读取数据在主存储系统中对应的第一版本号,以及读取数据在目标从存储系统中对应的第二版本号。
读取模块720,用于基于第一版本号和第二版本号,从目标从存储系统和待执行任务中的任一个获取所述读取数据。
在一些实施例中,读取模块720用于:
在基于第一版本号和第二版本号,确定目标从存储系统针对读取数据未同步完成的情况下,从读取数据对应的待执行任务中获取读取数据;其中,待执行任务是基于读取数据生成的,待执行任务存储在主存储系统中。
在一些实施例中,读取模块720用于:
在基于第一版本号和第二版本号,确定目标从存储系统针对读取数据同步完成的情况下,从目标从存储系统中获取读取数据。
在一些实施例中,第一版本号包括所述读取数据在主存储系统中更新的第一次数;第二版本号包括读取数据在对应的从存储系统中更新的第二次数;
读取模块720还用于:
在第二次数小于第一次数的情况下,确定目标从存储系统针对读取数据未同步完成;
在第二次数等于第一次数的情况下,确定目标从存储系统针对读取数据同步完成。
在一些实施例中,第一版本号包括读取数据在主存储系统最新存储的第一标识信息;第二版本号包括读取数据在对应的从存储系统中最新存储的第二标识信息;
读取模块720还用于:
在第二标识信息与第一标识信息不匹配的情况下,确定目标从存储系统针对读取数据未同步完成;
在第二标识信息与第一标识信息相匹配的情况下,确定目标从存储系统针对读取数据同步完成。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元810,其可以根据存储在只读存储器(ROM)820中的计算机程序或者从存储单元880加载到随机访问存储器(RAM)830中的计算机程序,来执行各种适当的动作和处理。在RAM 830中,还可存储设备800操作所需的各种程序和数据。计算单元810、ROM820以及RAM830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
设备800中的多个部件连接至I/O接口850,包括:输入单元860,例如键盘、鼠标等;输出单元870,例如各种类型的显示器、扬声器等;存储单元880,例如磁盘、光盘等;以及通信单元890,例如网卡、调制解调器、无线通信收发机等。通信单元890允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元810可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元810的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元810执行上文所描述的各个方法和处理,例如数据读取方法或数据同步方法。例如,在一些实施例中,数据同步方法或数据读取方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元880。在一些实施例中,计算机程序的部分或者全部可以经由ROM 820和/或通信单元890而被载入和/或安装到设备800上。当计算机程序加载到RAM 830并由计算单元810执行时,可以执行上文描述的数据读取方法的一个或多个步骤,或者执行上文描述的数据同步方法的一个或多个步骤。备选地,在其他实施例中,计算单元810可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据同步方法或者数据读取方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (31)
1.一种数据同步方法,包括:
获取主存储系统中写入的目标数据;
基于所述目标数据,生成待执行任务;
向任务执行部件发送第一同步信号,以控制所述任务执行部件获取所述待执行任务,并将所述目标数据同步到至少一个从存储系统中。
2.根据权利要求1所述的方法,还包括:
确定所述目标数据针对所述主存储系统的第一版本号;
将所述第一版本号存储在所述主存储系统中;
确定所述目标数据针对所述从存储系统的第二版本号;
将所述第二版本号存储在所述从存储系统中;
其中,所述第一版本号和所述第二版本号用于在数据读取操作过程中定位最新版本的目标数据。
3.根据权利要求1所述的方法,其中,所述基于所述目标数据,生成待执行任务,包括:
将所述目标数据写入初始任务中,得到待执行任务;
将所述待执行任务存入所述主存储系统;
所述向任务执行部件发送第一同步信号,以控制所述任务执行部件获取所述待执行任务,包括:
向所述任务执行部件发送第一同步信号,以控制所述任务执行部件从所述主存储系统中获取所述待执行任务。
4.根据权利要求1所述的方法,还包括:
在将所述目标数据成功同步到预设的至少一个从存储系统中的情况下,将所述待执行任务的任务状态标记为已完成;
所述向任务执行部件发送第一同步信号,以控制所述任务执行部件获取所述待执行任务,包括:
向所述任务执行部件发送第一同步信号,以控制所述任务执行部件获取任务状态为未完成的待执行任务。
5.根据权利要求1所述的方法,还包括:
在未成功将所述目标数据同步到预设的至少一个从存储系统中的情况下,基于所述待执行任务,向消息处理部件发送第一任务重试信号,以使所述消息处理部件按照预设频率向所述任务执行部件发送针对所述待执行任务的第二任务重试信号,直到所述任务执行部件基于所述第二任务重试信号将所述目标数据同步到预设的至少一个从存储系统中。
6.根据权利要求5所述的方法,其中,所述消息处理部件包括分布式消息队列。
7.根据权利要求1至6任一项所述的方法,还包括:
按照预设时间间隔,启动任务查询脚本,以利用所述任务查询脚本查找在预设时长内未被所述任务执行部件执行,并且任务状态为未完成的待执行任务;
向所述任务执行部件发送第二同步信号,以控制所述任务执行部件将查找出的待执行任务对应的目标数据同步到至少一个从存储系统中。
8.根据权利要求1至6任一项所述的方法,其中,所述主存储系统的类型与至少一个所述从存储系统的类型不同。
9.根据权利要求1至6任一项所述的方法,其中,所述待执行任务为多个,所述向任务执行部件发送第一同步信号,包括:
在满足数据同步条件的情况下,向所述任务执行部件发送第一同步信号,以控制所述任务执行部件获取多个待执行任务,并按照每个待执行任务的同步时间信息,将每个待执行任务对应的目标数据依次同步到至少一个从存储系统中。
10.一种数据读取方法,包括:
响应于接收到的针对目标从存储系统的数据读取信号,确定读取数据在主存储系统中对应的第一版本号,以及所述读取数据在所述目标从存储系统中对应的第二版本号;
基于所述第一版本号和所述第二版本号,从所述目标从存储系统和待执行任务中的任一个获取所述读取数据。
11.根据权利要求10所述的方法,其中,所述基于所述第一版本号和所述第二版本号,从所述目标从存储系统和待执行任务中的任一个获取所述读取数据,包括:
在基于所述第一版本号和所述第二版本号,确定所述目标从存储系统针对所述读取数据未同步完成的情况下,从所述读取数据对应的待执行任务中获取所述读取数据;其中,所述待执行任务是基于所述读取数据生成的,所述待执行任务存储在所述主存储系统中。
12.根据权利要求10或11所述的方法,其中,所述基于所述第一版本号和所述第二版本号,从所述目标从存储系统和待执行任务中的任一个获取所述读取数据,包括:
在基于所述第一版本号和所述第二版本号,确定所述目标从存储系统针对所述读取数据同步完成的情况下,从所述目标从存储系统中获取所述读取数据。
13.根据权利要求10至12任一项所述的方法,其中,所述第一版本号包括所述读取数据在主存储系统中更新的第一次数;所述第二版本号包括所述读取数据在对应的从存储系统中更新的第二次数;
所述方法还包括:
在所述第二次数小于所述第一次数的情况下,确定所述目标从存储系统针对所述读取数据未同步完成;
在所述第二次数等于所述第一次数的情况下,确定所述目标从存储系统针对所述读取数据同步完成。
14.根据权利要求10至12任一项所述的方法,其中,所述第一版本号包括所述读取数据在所述主存储系统最新存储的第一标识信息;所述第二版本号包括所述读取数据在对应的从存储系统中最新存储的第二标识信息;
所述方法还包括:
在所述第二标识信息与所述第一标识信息不匹配的情况下,确定所述目标从存储系统针对所述读取数据未同步完成;
在所述第二标识信息与所述第一标识信息相匹配的情况下,确定所述目标从存储系统针对所述读取数据同步完成。
15.一种数据同步装置,包括:
数据获取模块,用于获取主存储系统中写入的目标数据;
任务生成模块,用于基于所述目标数据,生成待执行任务;
同步控制模块,用于向任务执行部件发送第一同步信号,以控制所述任务执行部件获取所述待执行任务,并将所述目标数据同步到至少一个从存储系统中。
16.根据权利要求15所述的装置,所述同步控制模块还用于:
确定所述目标数据针对所述主存储系统的第一版本号;
将所述第一版本号存储在所述主存储系统中;
确定所述目标数据针对所述从存储系统的第二版本号;
将所述第二版本号存储在所述从存储系统中;
其中,所述第一版本号和所述第二版本号用于在数据读取操作过程中定位最新版本的目标数据。
17.根据权利要求15所述的装置,其中,所述任务生成模块用于:
将所述目标数据写入初始任务中,得到待执行任务;
将所述待执行任务存入所述主存储系统;
向所述任务执行部件发送第一同步信号,以控制所述任务执行部件从所述主存储系统中获取所述待执行任务。
18.根据权利要求15所述的装置,所述同步控制模块还用于:
在将所述目标数据成功同步到预设的至少一个从存储系统中的情况下,将所述待执行任务的任务状态标记为已完成;
向所述任务执行部件发送第一同步信号,以控制所述任务执行部件获取任务状态为未完成的待执行任务。
19.根据权利要求15所述的装置,所述同步控制模块还用于:
在未成功将所述目标数据同步到预设的至少一个从存储系统中的情况下,基于所述待执行任务,向消息处理部件发送第一任务重试信号,以使所述消息处理部件按照预设频率向所述任务执行部件发送针对所述待执行任务的第二任务重试信号,直到所述任务执行部件基于所述第二任务重试信号将所述目标数据同步到预设的至少一个从存储系统中。
20.根据权利要求19所述的装置,其中,所述消息处理部件包括分布式消息队列。
21.根据权利要求15至20任一项所述的装置,所述同步控制模块还用于:
按照预设时间间隔,启动任务查询脚本,以利用所述任务查询脚本查找在预设时长内未被所述任务执行部件执行,并且任务状态为未完成的待执行任务;
向所述任务执行部件发送第二同步信号,以控制所述任务执行部件将查找出的待执行任务对应的目标数据同步到至少一个从存储系统中。
22.根据权利要求15至20任一项所述的装置,其中,所述主存储系统的类型与至少一个所述从存储系统的类型不同。
23.根据权利要求15至20任一项所述的装置,其中,所述待执行任务为多个,所述同步控制模块用于:
在满足数据同步条件的情况下,向所述任务执行部件发送第一同步信号,以控制所述任务执行部件获取多个待执行任务,并按照每个待执行任务的同步时间信息,将每个待执行任务对应的目标数据依次同步到至少一个从存储系统中。
24.一种数据读取装置,包括:
版本确定模块,用于响应于接收到的针对目标从存储系统的数据读取信号,确定读取数据在主存储系统中对应的第一版本号,以及所述读取数据在所述目标从存储系统中对应的第二版本号;
读取模块,用于基于所述第一版本号和所述第二版本号,从所述目标从存储系统和待执行任务中的任一个获取所述读取数据。
25.根据权利要求24所述的装置,其中,所述读取模块用于:
在基于所述第一版本号和所述第二版本号,确定所述目标从存储系统针对所述读取数据未同步完成的情况下,从所述读取数据对应的待执行任务中获取所述读取数据;其中,所述待执行任务是基于所述读取数据生成的,所述待执行任务存储在所述主存储系统中。
26.根据权利要求24或25所述的装置,其中,所述读取模块用于:
在基于所述第一版本号和所述第二版本号,确定所述目标从存储系统针对所述读取数据同步完成的情况下,从所述目标从存储系统中获取所述读取数据。
27.根据权利要求24至26任一项所述的装置,其中,所述第一版本号包括所述读取数据在主存储系统中更新的第一次数;所述第二版本号包括所述读取数据在对应的从存储系统中更新的第二次数;
所述读取模块还用于:
在所述第二次数小于所述第一次数的情况下,确定所述目标从存储系统针对所述读取数据未同步完成;
在所述第二次数等于所述第一次数的情况下,确定所述目标从存储系统针对所述读取数据同步完成。
28.根据权利要求24至26任一项所述的装置,其中,所述第一版本号包括所述读取数据在所述主存储系统最新存储的第一标识信息;所述第二版本号包括所述读取数据在对应的从存储系统中最新存储的第二标识信息;
所述读取模块还用于:
在所述第二标识信息与所述第一标识信息不匹配的情况下,确定所述目标从存储系统针对所述读取数据未同步完成;
在所述第二标识信息与所述第一标识信息相匹配的情况下,确定所述目标从存储系统针对所述读取数据同步完成。
29.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-14中任一项所述的方法。
30.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-14中任一项所述的方法。
31.一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111652125.9A CN114328739A (zh) | 2021-12-30 | 2021-12-30 | 数据同步、读取方法及装置、电子设备、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111652125.9A CN114328739A (zh) | 2021-12-30 | 2021-12-30 | 数据同步、读取方法及装置、电子设备、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328739A true CN114328739A (zh) | 2022-04-12 |
Family
ID=81019451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111652125.9A Pending CN114328739A (zh) | 2021-12-30 | 2021-12-30 | 数据同步、读取方法及装置、电子设备、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328739A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028188A (zh) * | 2023-01-30 | 2023-04-28 | 合众新能源汽车股份有限公司 | 云端计算任务的调度系统、方法和计算机可读介质 |
-
2021
- 2021-12-30 CN CN202111652125.9A patent/CN114328739A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028188A (zh) * | 2023-01-30 | 2023-04-28 | 合众新能源汽车股份有限公司 | 云端计算任务的调度系统、方法和计算机可读介质 |
CN116028188B (zh) * | 2023-01-30 | 2023-12-01 | 合众新能源汽车股份有限公司 | 云端计算任务的调度系统、方法和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230012642A1 (en) | Method and device for snapshotting metadata, and storage medium | |
CN111782235A (zh) | 一种数据升级、查询方法和装置 | |
CN113193947A (zh) | 实现分布式全局序的方法、设备、介质及程序产品 | |
CN115510058A (zh) | 一种通讯录信息搜索方法、装置、设备及存储介质 | |
CN114328739A (zh) | 数据同步、读取方法及装置、电子设备、存储介质及产品 | |
CN113626449A (zh) | 数据存储、数据查询方法及相关设备 | |
CN115454971A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN116028517A (zh) | 一种融合数据库系统及电子设备 | |
CN116108094A (zh) | 一种数据整合方法、装置、电子设备以及存储介质 | |
US20220129418A1 (en) | Method for determining blood relationship of data, electronic device and storage medium | |
CN113076343B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN113656144B (zh) | 一种数据发布系统、方法、装置、电子设备及存储介质 | |
CN113360689B (zh) | 图像检索系统、方法、相关装置及计算机程序产品 | |
CN115687529A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN116756246A (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN115904720A (zh) | 一种资源组生成方法、装置、设备及存储介质 | |
CN115168486A (zh) | 时钟同步方法、装置、电子设备和可读存储介质 | |
CN117271667A (zh) | 数据读取方法、装置、电子设备及存储介质 | |
CN115858104A (zh) | 一种事务提交序号快照获取方法、装置、设备及存储介质 | |
CN113377402A (zh) | 多版本并发存储方法和装置 | |
CN114840544A (zh) | 数据发布方法、数据更新方法、装置、设备及存储介质 | |
CN115495528A (zh) | 分布式数据库语句执行方法、装置、设备及存储介质 | |
CN117633113A (zh) | 一种数据同步方法、装置、设备及介质 | |
CN116303369A (zh) | 一种基于数据库的自动编码方法、装置、电子设备及介质 | |
CN113609145A (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 |