一种数据库与对象存储的事务一致性处理方法及系统技术方案

技术编号:25835252 阅读:26 留言:0更新日期:2020-10-02 14:16
本发明专利技术公开了一种数据库与对象存储的事务一致性处理方法及系统,其中,该方法包括:获取交易的数据文件及文件元数据信息;在柔性事务表中记录数据文件存储信息;将数据文件上传至对象存储的位置;若上传数据文件失败,返回交易失败信息;若上传数据文件成功,继续执行数据库事务,将对应的文件元数据信息记录至数据库数据表,并删除柔性事务表中数据文件对应的数据文件存储信息;若数据库事务执行成功,返回交易成功信息;若执行失败,返回交易失败信息;定时读取柔性事务表中的数据文件存储信息;在对象存储中批量查找对应的数据文件并进行删除;在删除数据文件成功或在对象存储中未查找到相应数据文件时,将柔性事务表中记录的信息进行删除。

【技术实现步骤摘要】
一种数据库与对象存储的事务一致性处理方法及系统
本专利技术涉及数据库
,尤指一种数据库与对象存储的事务一致性处理方法及系统。
技术介绍
在IT系统设计和建设过程中,技术人员需要保证用户单次交易的原子性,即用户单次交易可能涉及多次数据库操作,需要保证如果交易成功,所有数据库操作全部成功,如果交易失败,不管交易进行到哪一步,都需要保证本次操作所有数据库操作全部回退至操作前的状态。现有成熟的商用数据库产品通常可以使用自带的机制保障用户单次交易所有数据库操作的事务一致性。但是,对于分布式影像管理平台来说,用户单次上传影像包括元数据和影像文件两部分,元数据存储在数据库中,影像文件存储在对象存储中。按照业务规则,要求用户在上传影像时,如果交易成功,则数据库中必须存在该影像的元数据信息,对象存储中必须存在该影像文件;而对于影像修改和删除交易,必须保证存储在数据库中的元数据和存储在对象存储中的影像文件必须同时修改、删除成功或同时修改、删除失败。基于上述分布式影像管理平台,目前常用的保证多种存储中事务一致性的方法多为失败后重试或进行反向操作的方式来实现,具体流程为:用户一次上传影像操作需上传影像文件和影像元数据信息,应用程序校验无误后先将影像元数据信息插入数据库,完成一次数据库事务,再将影像文件上传至对象存储中,如果上传成功,则交易完成,但如果上传影像文件至对象存储失败,则需对已经插入数据库中的元数据信息进行删除操作。或者先上传影像文件至对象存储,再将影像元数据信息插入数据库,如果插入数据库失败,则将对象存储中刚刚上传的影像文件删除。这种方法无法严格保证事务的一致性,例如先将影像元数据信息插入数据库,再将影像文件上传至对象存储的操作流程中,如果长传影像文件至临时存储失败,再去删除数据库元数据信息时,可能出现删除失败的情况,从而导致数据库中存在垃圾数据,反之亦然,如果先上传影像至对象存储再将元数据信息插入数据库,如果插入数据库失败后尝试删除对象存储中影像文件,可能导致影像文件删除失败从而产生垃圾文件。综上来看,仅依靠数据库原有的事务机制无法保证数据库和对象存储的事务一致性,因此,亟需通过一种新的方式保证其事务一致性。
技术实现思路
为解决上述问题,本专利技术提出了一种数据库与对象存储的事务一致性处理方法及系统;主要针对现有技术中,通过数据库及对象存储的机制,无法保证一次用户交易在数据库与对象存储间的事务一致性,本专利技术的方法及系统通过将两个事务转化为同一个数据库事务,再通过异步补偿机制从数据库中读取待补偿事务信息,调用对象存储相关服务,完成对数据文件的相关操作,保证数据库与对象存储的事务一致性。在本专利技术实施例的第一方面,提出了一种数据库与对象存储的事务一致性处理方法,该方法包括:获取交易的数据文件及文件元数据信息;在柔性事务表中记录数据文件存储信息;将所述数据文件上传至对象存储的位置;其中,若上传数据文件失败,返回交易失败信息;若上传数据文件成功,继续执行数据库事务,将对应的所述文件元数据信息记录至数据库数据表,并删除所述柔性事务表中所述数据文件对应的数据文件存储信息;其中,若所述数据库事务执行成功,返回交易成功信息;若所述数据库事务执行失败,返回交易失败信息;定时读取所述柔性事务表中的数据文件存储信息;根据读取到的所述数据文件存储信息,在所述对象存储中批量查找对应的数据文件,将查找到的数据文件进行删除;在删除数据文件成功或在所述对象存储中未查找到相应数据文件时,将柔性事务表中记录的相应数据文件存储信息进行删除。在本专利技术实施例的第二方面,提出了一种数据库与对象存储的事务一致性处理系统,该系统包括:信息获取模块,用于获取交易的数据文件及文件元数据信息;信息记录模块,用于在柔性事务表中记录数据文件存储信息;文件上传模块,用于将所述数据文件上传至对象存储的位置;其中,若上传数据文件失败,返回交易失败信息;若上传数据文件成功,调用数据库事务执行模块;所述数据库事务执行模块,用于执行数据库事务,将对应的所述文件元数据信息记录至数据库数据表,并删除所述柔性事务表中所述数据文件对应的数据文件存储信息;其中,若所述数据库事务执行成功,返回交易成功信息;若所述数据库事务执行失败,返回交易失败信息;定时读取模块,用于定时读取所述柔性事务表中的数据文件存储信息;数据文件批量处理模块,用于根据读取到的所述数据文件存储信息,在所述对象存储中批量查找对应的数据文件,将查找到的数据文件进行删除;柔性事务表信息处理模块,用于在删除数据文件成功或在所述对象存储中未查找到相应数据文件时,将柔性事务表中记录的相应数据文件存储信息进行删除。在本专利技术实施例的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现数据库与对象存储的事务一致性处理方法。在本专利技术实施例的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现数据库与对象存储的事务一致性处理方法。本专利技术提出的数据库与对象存储的事务一致性处理方法及系统,可以将数据库和对象存储的操作事务转化为同一个数据库事务,再通过事后补偿机制来严格的保证两种存储介质的事务一致性;设置的事后补偿机制逻辑严谨、可靠,其由异步处理完成,不在联机交易过程中完成,能够明显的提升联机交易的性能,缩短联机交易的响应时间。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本专利技术一实施例的数据库与对象存储的事务一致性处理方法流程示意图。图2是本专利技术一具体实施例的数据库与对象存储的事务一致性处理方法流程示意图。图3是本专利技术一实施例的数据库与对象存储的事务一致性处理系统架构示意图。图4是本专利技术一具体实施例的影像文件管理平台的影像文件处理关系示意图。图5是本专利技术一实施例的计算机设备结构示意图。具体实施方式下面将参考若干示例性实施方式来描述本专利技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本专利技术,而并非以任何方式限制本专利技术的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术人员知道,本专利技术的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本专利技术的实施方式,提出了一种数据库与对象存储的事务一致性处理方法及系统。在本文档来自技高网
...

【技术保护点】
1.一种数据库与对象存储的事务一致性处理方法,其特征在于,该方法包括:/n获取交易的数据文件及文件元数据信息;/n在柔性事务表中记录数据文件存储信息;/n将所述数据文件上传至对象存储的位置;其中,/n若上传数据文件失败,返回交易失败信息;/n若上传数据文件成功,继续执行数据库事务,将对应的所述文件元数据信息记录至数据库数据表,并删除所述柔性事务表中所述数据文件对应的数据文件存储信息;其中,若所述数据库事务执行成功,返回交易成功信息;若所述数据库事务执行失败,返回交易失败信息;/n定时读取所述柔性事务表中的数据文件存储信息;/n根据读取到的所述数据文件存储信息,在所述对象存储中批量查找对应的数据文件,将查找到的数据文件进行删除;/n在删除数据文件成功或在所述对象存储中未查找到相应数据文件时,将柔性事务表中记录的相应数据文件存储信息进行删除。/n

【技术特征摘要】
1.一种数据库与对象存储的事务一致性处理方法,其特征在于,该方法包括:
获取交易的数据文件及文件元数据信息;
在柔性事务表中记录数据文件存储信息;
将所述数据文件上传至对象存储的位置;其中,
若上传数据文件失败,返回交易失败信息;
若上传数据文件成功,继续执行数据库事务,将对应的所述文件元数据信息记录至数据库数据表,并删除所述柔性事务表中所述数据文件对应的数据文件存储信息;其中,若所述数据库事务执行成功,返回交易成功信息;若所述数据库事务执行失败,返回交易失败信息;
定时读取所述柔性事务表中的数据文件存储信息;
根据读取到的所述数据文件存储信息,在所述对象存储中批量查找对应的数据文件,将查找到的数据文件进行删除;
在删除数据文件成功或在所述对象存储中未查找到相应数据文件时,将柔性事务表中记录的相应数据文件存储信息进行删除。


2.根据权利要求1所述的数据库与对象存储的事务一致性处理方法,其特征在于,在柔性事务表中记录的所述数据文件存储信息包括:
数据文件的数量及数据文件存储在对象存储的位置。


3.根据权利要求2所述的数据库与对象存储的事务一致性处理方法,其特征在于,在柔性事务表中记录数据文件存储信息,还包括:
在记录数据文件存储信息成功后,将所述数据文件上传至对象存储的位置;
在记录数据文件存储信息失败后,返回交易失败信息。


4.根据权利要求2所述的数据库与对象存储的事务一致性处理方法,其特征在于,将所述数据文件上传至对象存储的位置,包括:
若文件上传的位置与所述柔性事务表中记录的对象存储的位置不一致,或文件上传发生报错,判定上传数据文件失败,返回交易失败信息。


5.根据权利要求1所述的数据库与对象存储的事务一致性处理方法,其特征在于,所述数据库事务包括两个操作:
第一操作是将对应的所述文件元数据信息记录至数据库数据表;
第二操作是删除所述柔性事务表中所述数据文件对应的数据文件存储信息;
其中,所述两个操作的结果保持相同,为全部执行成功或全部执行失败。


6.根据权利要求1所述的数据库与对象存储的事务一致性处理方法,其特征在于,根据读取到的所述数据文件存储信息,在所述对象存储中批量查找对应的数据文件,将查找到的数据文件进行删除,包括:
若删除数据文件失败,等待下一次定时读取所述柔性事务表中的数据文件存储信息,进一步处理删除失败的数据文件。


7.根据权利要求6所述的数据库与对象存储的事务一致性处理方法,其特征在于,在删除数据文件成功或在所述对象存储中未查找到相应数据文件时,将柔性事务表中记录的相应数据文件存储信息进行删除,包括:
若删除柔性事务表中记录的相应数据文件存储信息失败,等待下一次定时读取所述柔性事务表中的数据文件存储信息,进一步处理删除失败的柔性事务表中记录的相应数据文件存储信息。


8.一种数据库与对象存储的事务一致性处理系统,其特征在于,该系统包括:
信息获取模块,用于获取交易的数据文件及文件元数据信息;
信息记录模块,用于在柔性事务表中记录数据文件存储信息;
文件上传模块,用于...

【专利技术属性】
技术研发人员:牛安宇李小平张煌辉瞿欢秦荣倩李慧刘朝晨刘湘袁琳
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1