CN113704026B - 一种分布式金融内存数据库安全同步方法、装置、介质 - Google Patents
一种分布式金融内存数据库安全同步方法、装置、介质 Download PDFInfo
- Publication number
- CN113704026B CN113704026B CN202111261034.2A CN202111261034A CN113704026B CN 113704026 B CN113704026 B CN 113704026B CN 202111261034 A CN202111261034 A CN 202111261034A CN 113704026 B CN113704026 B CN 113704026B
- Authority
- CN
- China
- Prior art keywords
- writing
- write
- memory database
- backup
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明提出了一种分布式金融内存数据库安全同步方法、装置、设备及存储介质,所述方法包括:监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及该进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据,然后,该写入进程请求写入服务器创建一备份进程,该写入进程将所述上下文数据传递给该备份进程;写入服务器从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。提升了数据同步的实效性。
Description
技术领域
本发明涉及数据库技术领域,具体涉及一种分布式金融内存数据库安全同步方法、装置、设备及存储介质。
背景技术
内存数据库是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能,因此,为了提高数据的访问速度,银行、证券等行业 采用分布式内存数据库以提高数据的访问性能。
但是,现有技术中,一般是将数据写入存储节点后再向备份节点同步数据,这种操作方式,导致在写入数据时若存在错误,则需要将错误修复后或多次尝试才能将数据写入,影响了数据写入的效率,降低了内存数据库的性能。
此外,现有技术中,进程写入的返回状态不确定时,难以判断是写入是否正确,以及现有技术中,备份节点的选择一般仅考虑其处理能力、内存等计算能力,创建的进行越多浪费的内存越多,且在同步数据时,可能导致数据存在错误等等缺陷。
发明内容
本发明针对上述现有技术中一个或多个技术缺陷,提出了如下技术方案。
一种分布式金融内存数据库安全同步方法,所述分布式金融内存数据库包括位于M个内存数据库节点和N个备份内存数据库节点,所述M个内存数据库节点和N个备份内存数据库节点的位置不同,所述方法包括:
监测步骤,对所述M个内存数据库节点上的所有写入进程的执行状态进行监测,如果监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及该进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据;
请求步骤,监测到某一写入进程的执行状态存在错误后,该写入进程请求写入服务器创建一备份进程,在所述备份进程创建后,该写入进程将所述上下文数据传递给该备份进程;
备份写入步骤,写入服务器基于预设的调度策略从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
安全同步步骤,写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,则所述写入服务器创建一锁定进程,使用该锁定进程锁定该目标内存数据库节点中的目标表以禁止其他进程对该目标表进行操作,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。
更进一步地,在监测步骤中,所述上下文数据为待写入目标内存数据库节点的金融操作数据,所述金融操作数据为银行账户的创建、修改或删除数据。
更进一步地,所述对所述M个内存数据库节点上的所有写入进程的执行状态进行监测的操作为:写入服务器读取所述M个内存数据库节点上的写入进程返回的执行状态,如果所述执行状态是成功,则写入进程的执行状态不存在错误,如果执行状态为失败,则写入进程的执行状态存在错误,如果执行状态为待定,所述写入服务器创建一读取进程读取该执行状态为待定的写入进程写入的金融操作数据,所述写入服务器判断读取出来的金融操作数据是否与在写入服务器上缓存的用于写入的金融操作数据是否一致,如果否,则所述写入进程的执行状态存在错误,在所述写入进程的执行状态存在错误时,则创建一三元组(PID,DMID,DATA)记录该写入进程的标识PID、该进行写入的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA。
更进一步地,在所述请求步骤中,当监测到某一写入进程的执行状态存在错误后,该写入进程发出请求触发写入服务器创建一备份进程,所述请求包括所述DATA在写入进程所申请的内存中的地址add及数据长度L,在所述备份进程创建后,所述备份进程基于所述地址add及数据长度L获取所述DATA。
更进一步地,当监测到某一写入进程的执行状态存在错误后,所述写入服务器尝试再次执行该写入进程的操作,直到尝试N次都反馈执行状态存在错误时,该写入进程才发出请求触发写入服务器创建一备份进程,N为大于1的整数。
更进一步地,在备份写入步骤中,所述预设的调度策略为:计算所述N个备份内存数据库节点的每一个的当前状态值Si,基于每个备份内存数据库节点的位置Pi对所述Si进行校准,得到校准后的每个备份内存数据库节点的状态值Sci,基于Sci的大小选择一个数据库节点作为目标备份内存数据库节点供所述备份进程写入所述上下文数据并记录写入位置。
其中,校准计算为:Sci=Si+α(1-e-Pi);
其中,α为权重数据,可以基于经验或基于历史数据通过机器学习的方式确定,Si的值可以是基于每个备份内存数据库节点可使用的内存量M、可占用的带宽W以及处理器的算力C等指标计算出来。
更进一步地,在安全同步步骤中,所述写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据(也就是能够进行同步数据)的操作为:所述写入服务器基于目标内存数据库节点的标识判断数据库的操作状态,如果数据库的操作状态为正常,则尝试访问原来的写入进程的写入位置,如果可访问,则返回可以同步数据的操作,如果不可访问,则标记该写入位置无法访问,使得后续的写入进程不再向该位置写入数据。
更进一步地,如果可以同步数据,则所述写入服务器创建一锁定进程,所述锁定进程获取写入进程的标识PID,基于所述PID查找待写入的数据表的ID,基于所述数据表的ID使用该锁定进程锁定所述目标表,以禁止其他进程对该目标表进行操作,然后所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。
本发明还提出了一种分布式金融内存数据库安全同步装置,所述分布式金融内存数据库包括位于M个内存数据库节点和N个备份内存数据库节点,所述M个内存数据库节点和N个备份内存数据库节点的位置不同,所述装置包括:
监测单元,对所述M个内存数据库节点上的所有写入进程的执行状态进行监测,如果监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及该进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据;
请求单元,监测到某一写入进程的执行状态存在错误后,该写入进程请求写入服务器创建一备份进程,在所述备份进程创建后,该写入进程将所述上下文数据传递给该备份进程;
备份写入单元,写入服务器基于预设的调度策略从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
安全同步单元,写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,则所述写入服务器创建一锁定进程,使用该锁定进程锁定该目标内存数据库节点中的目标表以禁止其他进程对该目标表进行操作,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。
更进一步地,在监测单元中,所述上下文数据为待写入目标内存数据库节点的金融操作数据,所述金融操作数据为银行账户的创建、修改或删除数据。
更进一步地,所述对所述M个内存数据库节点上的所有写入进程的执行状态进行监测的操作为:写入服务器读取所述M个内存数据库节点上的写入进程返回的执行状态,如果所述执行状态是成功,则写入进程的执行状态不存在错误,如果执行状态为失败,则写入进程的执行状态存在错误,如果执行状态为待定,所述写入服务器创建一读取进程读取该执行状态为待定的写入进程写入的金融操作数据,所述写入服务器判断读取出来的金融操作数据是否与在写入服务器上缓存的用于写入的金融操作数据是否一致,如果否,则所述写入进程的执行状态存在错误,在所述写入进程的执行状态存在错误时,则创建一三元组(PID,DMID,DATA)记录该写入进程的标识PID、该进行写入的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA。
更进一步地,在所述请求单元中,当监测到某一写入进程的执行状态存在错误后,该写入进程发出请求触发写入服务器创建一备份进程,所述请求包括所述DATA在写入进程所申请的内存中的地址add及数据长度L,在所述备份进程创建后,所述备份进程基于所述地址add及数据长度L获取所述DATA。
更进一步地,当监测到某一写入进程的执行状态存在错误后,所述写入服务器尝试再次执行该写入进程的操作,直到尝试N次都反馈执行状态存在错误时,该写入进程才发出请求触发写入服务器创建一备份进程,N为大于1的整数。
更进一步地,在备份写入单元中,所述预设的调度策略为:计算所述N个备份内存数据库节点的每一个的当前状态值Si,基于每个备份内存数据库节点的位置Pi对所述Si进行校准,得到校准后的每个备份内存数据库节点的状态值Sci,基于Sci的大小选择一个数据库节点作为目标备份内存数据库节点供所述备份进程写入所述上下文数据并记录写入位置。
其中,校准计算为:Sci=Si+α(1-e-Pi);
其中,α为权重数据,可以基于经验或基于历史数据通过机器学习的方式确定,Si的值可以是基于每个备份内存数据库节点可使用的内存量M、可占用的带宽W以及处理器的算力C等指标计算出来。
更进一步地,在安全同步单元中,所述写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据(也就是能够进行同步数据)的操作为:所述写入服务器基于目标内存数据库节点的标识判断数据库的操作状态,如果数据库的操作状态为正常,则尝试访问原来的写入进程的写入位置,如果可访问,则返回可以同步数据的操作,如果不可访问,则标记该写入位置无法访问,使得后续的写入进程不再向该位置写入数据。
更进一步地,如果可以同步数据,则所述写入服务器创建一锁定进程,所述锁定进程获取写入进程的标识PID,基于所述PID查找待写入的数据表的ID,基于所述数据表的ID使用该锁定进程锁定所述目标表,以禁止其他进程对该目标表进行操作,然后所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。
本发明还提出了一种分布式金融内存数据库安全同步设备,所述设备包括处理器和存储器,所述处理器与所述处理器通过总线连接,所述存储器上存储有计算机程序,所述处理器执行所述存储器上的计算机程序时实现上述之任一的方法。
本发明还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行上述之任一的方法。
本发明的技术效果在于:本发明的一种分布式金融内存数据库安全同步方法、装置、设备及存储介质,该方法包括:一种分布式金融内存数据库安全同步方法,所述分布式金融内存数据库包括位于M个内存数据库节点和N个备份内存数据库节点,所述M个内存数据库节点和N个备份内存数据库节点的位置不同,所述方法包括:监测步骤,对所述M个内存数据库节点上的所有写入进程的执行状态进行监测,如果监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及该进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据;请求步骤,监测到某一写入进程的执行状态存在错误后,该写入进程请求写入服务器创建一备份进程,在所述备份进程创建后,该写入进程将所述上下文数据传递给该备份进程;备份写入步骤,写入服务器基于预设的调度策略从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;安全同步步骤,写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,则所述写入服务器创建一锁定进程,使用该锁定进程锁定该目标内存数据库节点中的目标表以禁止其他进程对该目标表进行操作,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。本发明中,监测到写入存储节点(即内存数据库节点,也称为目标内存数据库节点、目标节点)数据存在错误时,直接构建备份进程获取需要写入的上下文数据写入到根据预定策略选择的备份节点(即备份内存数据库节点),即本发明中,在写入数据存在错误时,直接使用另一个备份进程将该数据写入备份节点,在检测到目标节点正常后,即可以同步操作后,将备份节点中的数据同步到目标节点,避免了写入进程一直等待目标节点恢复正常,提高了分布式内存数据库的写入效率;本发明中创建了三元组(PID,DMID,DATA)进行相应数据保存,其可以在多个写入进程出现错误时,通过该三元组可以快速的创建对应的备份进程,以后后续的数据同步,DATA可以使用其在内存中的地址进行表示,而不必实际上将该数据复制一份,通过该三元组提高了多个写入进程出错时备份及同步的速度;本发明,备份进程通过内存的地址和数据的长度共享所述写入进程的所申请的内存,从而,降低了内存的使用量,提高了写入服务器了执行效率,进而了提升了数据同步的实效性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是根据本发明的实施例的一种分布式金融内存数据库安全同步方法的流程图。
图2是根据本发明的实施例的一种分布式金融内存数据库安全同步装置的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的一种分布式金融内存数据库安全同步方法,所述分布式金融内存数据库包括位于M个内存数据库节点和N个备份内存数据库节点,所述M个内存数据库节点和N个备份内存数据库节点的位置不同,所述方法包括:
监测步骤S101,对所述M个内存数据库节点上的所有写入进程的执行状态进行监测,如果监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及该进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据;
请求步骤S102,监测到某一写入进程的执行状态存在错误后,该写入进程请求写入服务器创建一备份进程,在所述备份进程创建后,该写入进程将所述上下文数据传递给该备份进程;
备份写入步骤S103,写入服务器基于预设的调度策略从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
安全同步步骤S104,写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,则所述写入服务器创建一锁定进程,使用该锁定进程锁定该目标内存数据库节点中的目标表以禁止其他进程对该目标表进行操作,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。
本发明中,监测到写入存储节点(即内存数据库节点,也称为目标内存数据库节点、目标节点)数据存在错误时,直接构建备份进程获取需要写入的上下文数据写入到根据预定策略选择的备份节点(即备份内存数据库节点),即本发明中,在写入数据存在错误时,直接使用另一个备份进程将该数据写入备份节点,在检测到目标节点正常后,即可以同步操作后,将备份节点中的数据同步到目标节点,避免了写入进程一直等待目标节点恢复正常,提高了分布式内存数据库的写入效率,这是本发明的一个重要发明点。
在一个实施例中,在监测步骤中,所述上下文数据为待写入目标内存数据库节点的金融操作数据,所述金融操作数据为银行账户的创建、修改或删除数据。
在一个实施例中,所述对所述M个内存数据库节点上的所有写入进程的执行状态进行监测的操作为:写入服务器读取所述M个内存数据库节点上的写入进程返回的执行状态,如果所述执行状态是成功,则写入进程的执行状态不存在错误,如果执行状态为失败,则写入进程的执行状态存在错误,如果执行状态为待定,所述写入服务器创建一读取进程读取该执行状态为待定的写入进程写入的金融操作数据,所述写入服务器判断读取出来的金融操作数据是否与在写入服务器上缓存的用于写入的金融操作数据是否一致,如果否,则所述写入进程的执行状态存在错误,在所述写入进程的执行状态存在错误时,则创建一三元组(PID,DMID,DATA)记录该写入进程的标识PID、该进行写入的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA。由于在写入过程中,可能存在多个写入进程出现错误,为了便于查找出现错误的进程及对应的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA,本发明中创建了三元组(PID,DMID,DATA)进行相应数据保存,其可以在多个写入进程出现错误时,通过该三元组可以快速的创建对应的备份进程,以后后续的数据同步,DATA可以使用其在内存中的地址进行表示,而不必实际上将该数据复制一份,通过该三元组提高了多个写入进程出错时备份及同步的速度,这是本发明的另一个重要发明点。
在一个实施例中,在所述请求步骤S102中,当监测到某一写入进程的执行状态存在错误后,该写入进程发出请求触发写入服务器创建一备份进程,所述请求包括所述DATA在写入进程所申请的内存中的地址add及数据长度L,在所述备份进程创建后,所述备份进程基于所述地址add及数据长度L获取所述DATA。这样,备份进程申请开辟的内存大小小于写入进程申请的内存大小,即,备份进程通过内存的地址和数据的长度共享所述写入进程的所申请的内存,从而,降低了内存的使用量,提高了写入服务器了执行效率,进而了提升了数据同步的实效性,这是本发明的一个重要发明点。
在一个实施例中,当监测到某一写入进程的执行状态存在错误后,所述写入服务器尝试再次执行该写入进程的操作,直到尝试N次都反馈执行状态存在错误时,该写入进程才发出请求触发写入服务器创建一备份进程,一般来说,N为3-5次,即写入服务器尝试多次后,仍然无法将上下文数据正确写入目标内存数据库节点,才将启动将上下文数据写入备份内存数据库节点,从而避免一发生错误就立即写入备份节点,降低了数据操作的次数,整体上提高了内存数据的操作效率,这是本发明的另一个重要发明点。
在一个实施例中,在备份写入步骤S103中,所述预设的调度策略为:计算所述N个备份内存数据库节点的每一个的当前状态值Si,基于每个备份内存数据库节点的位置Pi对所述Si进行校准,得到校准后的每个备份内存数据库节点的状态值Sci,基于Sci的大小选择一个数据库节点作为目标备份内存数据库节点供所述备份进程写入所述上下文数据并记录写入位置,Pi可以是基于备份节点与目标之间的距离而对应设置的数字大小。
其中,校准计算为:Sci=Si+α(1-e-Pi);
其中,α为权重数据,可以基于经验或基于历史数据通过机器学习的方式确定,Si的值可以是基于每个备份内存数据库节点可使用的内存量M、可占用的带宽W以及处理器的算力C等指标计算出来,本发明的重点是使用位置参数对现有的状态值进行校准,从而更能体现出来所选择的目标备份内存数据库节点的客观性,提高了内存数据库整体的操作性能,该计算公式体现了本发明的一个重要发明构思。
在一个实施例中,在安全同步步骤S104中,所述写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据(也就是能够进行同步数据)的操作为:所述写入服务器基于目标内存数据库节点的标识判断数据库的操作状态,如果数据库的操作状态为正常,则尝试访问原来的写入进程的写入位置,如果可访问,则返回可以同步数据的操作,如果不可访问,则标记该写入位置无法访问,使得后续的写入进程不再向该位置写入数据,通过这种方法,确保了金融内存数据库的操作准确性,且提高了后续数据的写入效率,避免了后续的写入错误,这是本发明的另一个重要发明点。
在一个实施例中,如果可以同步数据,则所述写入服务器创建一锁定进程,所述锁定进程获取写入进程的标识PID,基于所述PID查找待写入的数据表的ID,基于所述数据表的ID使用该锁定进程锁定所述目标表,以禁止其他进程对该目标表进行操作,然后所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。本发明实现了在写入数据库内存节点出错时,先将数据写入备份节点,待目标数据库节点可以同步操作后,从备份节点将数据写入目标数据库节点,避免了写入数据出错时,一直尝试或待目标数据库节点修复后再进行写入导致写入效率低的缺陷,在同步过程中,锁定进程基于原写入进程的PID查找对应的目标操作表,此时,原写入进程已经可能消失,但其PID记录在三元组中,可以使用其PID进行目标表的确定,但此时,三元组中的DATA由于原写入进程的可能灭失,其中的数据可能存在错误,因此,不能将三元组的DATA写入到目标表中,需要从备份节点中进行读取后在写入,在提高操作效率的同时保证了数据同步的安全性、可靠性,这是本发明的重要发明构思体现。
图2示出了本发明的一种分布式金融内存数据库安全同步装置,所述分布式金融内存数据库包括位于M个内存数据库节点和N个备份内存数据库节点,所述M个内存数据库节点和N个备份内存数据库节点的位置不同,所述装置包括:
监测单元201,对所述M个内存数据库节点上的所有写入进程的执行状态进行监测,如果监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及该进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据;
请求单元202,监测到某一写入进程的执行状态存在错误后,该写入进程请求写入服务器创建一备份进程,在所述备份进程创建后,该写入进程将所述上下文数据传递给该备份进程;
备份写入单元203,写入服务器基于预设的调度策略从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
安全同步单元204,写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,则所述写入服务器创建一锁定进程,使用该锁定进程锁定该目标内存数据库节点中的目标表以禁止其他进程对该目标表进行操作,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。
本发明中,监测到写入存储节点(即内存数据库节点,也称为目标内存数据库节点、目标节点)数据存在错误时,直接构建备份进程获取需要写入的上下文数据写入到根据预定策略选择的备份节点(即备份内存数据库节点),即本发明中,在写入数据存在错误时,直接使用另一个备份进程将该数据写入备份节点,在检测到目标节点正常后,即可以同步操作后,将备份节点中的数据同步到目标节点,避免了写入进程一直等待目标节点恢复正常,提高了分布式内存数据库的写入效率,这是本发明的一个重要发明点。
在一个实施例中,在监测单元中,所述上下文数据为待写入目标内存数据库节点的金融操作数据,所述金融操作数据为银行账户的创建、修改或删除数据。
在一个实施例中,所述对所述M个内存数据库节点上的所有写入进程的执行状态进行监测的操作为:写入服务器读取所述M个内存数据库节点上的写入进程返回的执行状态,如果所述执行状态是成功,则写入进程的执行状态不存在错误,如果执行状态为失败,则写入进程的执行状态存在错误,如果执行状态为待定,所述写入服务器创建一读取进程读取该执行状态为待定的写入进程写入的金融操作数据,所述写入服务器判断读取出来的金融操作数据是否与在写入服务器上缓存的用于写入的金融操作数据是否一致,如果否,则所述写入进程的执行状态存在错误,在所述写入进程的执行状态存在错误时,则创建一三元组(PID,DMID,DATA)记录该写入进程的标识PID、该进行写入的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA。由于在写入过程中,可能存在多个写入进程出现错误,为了便于查找出现错误的进程及对应的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA,本发明中创建了三元组(PID,DMID,DATA)进行相应数据保存,其可以在多个写入进程出现错误时,通过该三元组可以快速的创建对应的备份进程,以后后续的数据同步,DATA可以使用其在内存中的地址进行表示,而不必实际上将该数据复制一份,通过该三元组提高了多个写入进程出错时备份及同步的速度,这是本发明的另一个重要发明点。
在一个实施例中,在所述请求单元中,当监测到某一写入进程的执行状态存在错误后,该写入进程发出请求触发写入服务器创建一备份进程,所述请求包括所述DATA在写入进程所申请的内存中的地址add及数据长度L,在所述备份进程创建后,所述备份进程基于所述地址add及数据长度L获取所述DATA。这样,备份进程申请开辟的内存大小小于写入进程申请的内存大小,即,备份进程通过内存的地址和数据的长度共享所述写入进程的所申请的内存,从而,降低了内存的使用量,提高了写入服务器了执行效率,进而了提升了数据同步的实效性,这是本发明的一个重要发明点。
在一个实施例中,当监测到某一写入进程的执行状态存在错误后,所述写入服务器尝试再次执行该写入进程的操作,直到尝试N次都反馈执行状态存在错误时,该写入进程才发出请求触发写入服务器创建一备份进程,一般来说,N为3-5次,即写入服务器尝试多次后,仍然无法将上下文数据正确写入目标内存数据库节点,才将启动将上下文数据写入备份内存数据库节点,从而避免一发生错误就立即写入备份节点,降低了数据操作的次数,整体上提高了内存数据的操作效率,这是本发明的另一个重要发明点。
在一个实施例中,在备份写入单元203中,所述预设的调度策略为:计算所述N个备份内存数据库节点的每一个的当前状态值Si,基于每个备份内存数据库节点的位置Pi对所述Si进行校准,得到校准后的每个备份内存数据库节点的状态值Sci,基于Sci的大小选择一个数据库节点作为目标备份内存数据库节点供所述备份进程写入所述上下文数据并记录写入位置,Pi可以是基于备份节点与目标之间的距离而对应设置的数字大小。
其中,校准计算为:Sci=Si+α(1-e-Pi);
其中,α为权重数据,可以基于经验或基于历史数据通过机器学习的方式确定,Si的值可以是基于每个备份内存数据库节点可使用的内存量M、可占用的带宽W以及处理器的算力C等指标计算出来,本发明的重点是使用位置参数对现有的状态值进行校准,从而更能体现出来所选择的目标备份内存数据库节点的客观性,提高了内存数据库整体的操作性能,该计算公式体现了本发明的一个重要发明构思。
在一个实施例中,在安全同步单元204中,所述写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据(也就是能够进行同步数据)的操作为:所述写入服务器基于目标内存数据库节点的标识判断数据库的操作状态,如果数据库的操作状态为正常,则尝试访问原来的写入进程的写入位置,如果可访问,则返回可以同步数据的操作,如果不可访问,则标记该写入位置无法访问,使得后续的写入进程不再向该位置写入数据,通过这种装置,确保了金融内存数据库的操作准确性,且提高了后续数据的写入效率,避免了后续的写入错误,这是本发明的另一个重要发明点。
在一个实施例中,如果可以同步数据,则所述写入服务器创建一锁定进程,所述锁定进程获取写入进程的标识PID,基于所述PID查找待写入的数据表的ID,基于所述数据表的ID使用该锁定进程锁定所述目标表,以禁止其他进程对该目标表进行操作,然后所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表。本发明实现了在写入数据库内存节点出错时,先将数据写入备份节点,待目标数据库节点可以同步操作后,从备份节点将数据写入目标数据库节点,避免了写入数据出错时,一直尝试或待目标数据库节点修复后再进行写入导致写入效率低的缺陷,在同步过程中,锁定进程基于原写入进程的PID查找对应的目标操作表,此时,原写入进程已经可能消失,但其PID记录在三元组中,可以使用其PID进行目标表的确定,但此时,三元组中的DATA由于原写入进程的可能灭失,其中的数据可能存在错误,因此,不能将三元组的DATA写入到目标表中,需要从备份节点中进行读取后在写入,在提高操作效率的同时保证了数据同步的安全性、可靠性,这是本发明的重要发明构思体现。
本发明一个实施例中提出了一种分布式金融内存数据库安全同步设备,所述设备包括处理器和存储器,所述处理器与所述处理器通过总线连接,所述存储器上存储有计算机程序,所述处理器执行所述存储器上的计算机程序时实现上述的方法,该设备可以是台式计算机、服务器、笔记本、智能终端等等。
本发明一个实施例中提出了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,当所述计算机存储介质上的计算机程序被处理器执行时实现上述的方法,该计算机存储介质可以是硬盘、DVD、CD、闪存等等存储器。
本发明的为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质 中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的装置。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (2)
1.一种分布式金融内存数据库安全同步方法,其特征在于,所述分布式金融内存数据库包括位于M个内存数据库节点和N个备份内存数据库节点,所述M个内存数据库节点和N个备份内存数据库节点的位置不同,所述方法包括:
监测步骤,对所述M个内存数据库节点上的所有写入进程的执行状态进行监测,如果监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据;
请求步骤,监测到某一写入进程的执行状态存在错误后,该写入进程请求写入服务器创建一备份进程,在所述备份进程创建后,该写入进程将所述上下文数据传递给该备份进程;
备份写入步骤,写入服务器基于预设的调度策略从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
安全同步步骤,写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,则所述写入服务器创建一锁定进程,使用该锁定进程锁定该目标内存数据库节点中的目标表以禁止其他进程对该目标表进行操作,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表;其中,在监测步骤中,所述上下文数据为待写入目标内存数据库节点的金融操作数据;
其中,所述对所述M个内存数据库节点上的所有写入进程的执行状态进行监测的操作为:写入服务器读取所述M个内存数据库节点上的写入进程返回的执行状态,如果所述执行状态是成功,则写入进程的执行状态不存在错误,如果执行状态为失败,则写入进程的执行状态存在错误,如果执行状态为待定,所述写入服务器创建一读取进程读取该执行状态为待定的写入进程写入的金融操作数据,所述写入服务器判断读取出来的金融操作数据是否与在写入服务器上缓存的用于写入的金融操作数据是否一致,如果否,则所述写入进程的执行状态存在错误,在所述写入进程的执行状态存在错误时,则创建一三元组(PID,DMID,DATA)记录该写入进程的标识PID、该进行写入的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA;
其中,在所述请求步骤中,当监测到某一写入进程的执行状态存在错误后,该写入进程发出请求触发写入服务器创建一备份进程,所述请求包括所述DATA在写入进程所申请的内存中的地址add及数据长度L,在所述备份进程创建后,所述备份进程基于所述地址add及数据长度L获取所述DATA;
其中,当监测到某一写入进程的执行状态存在错误后,所述写入服务器尝试再次执行该写入进程的操作,直到尝试N次都反馈执行状态存在错误时,该写入进程才发出请求触发写入服务器创建一备份进程,N为大于1的整数;
其中,在备份写入步骤中,所述预设的调度策略为:计算所述N个备份内存数据库节点的每一个的当前状态值Si,基于每个备份内存数据库节点的位置Pi对所述Si进行校准,得到校准后的每个备份内存数据库节点的状态值Sci,基于Sci的大小选择一个数据库节点作为目标备份内存数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
其中,校准计算为:Sci=Si+α(1-e-Pi);
其中,α为权重数据,基于历史数据通过机器学习的方式确定,Si的值是基于每个备份内存数据库节点可使用的内存量M、可占用的带宽W以及处理器的算力C指标计算出来。
2.一种分布式金融内存数据库安全同步装置,其特征在于,所述分布式金融内存数据库包括位于M个内存数据库节点和N个备份内存数据库节点,所述M个内存数据库节点和N个备份内存数据库节点的位置不同,所述装置包括:
监测单元,对所述M个内存数据库节点上的所有写入进程的执行状态进行监测,如果监测到某一写入进程的执行状态存在错误,则记录该进程的标识以及进行写入的目标内存数据库节点的标识,并保存该写入进程的上下文数据;
请求单元,监测到某一写入进程的执行状态存在错误后,该写入进程请求写入服务器创建一备份进程,在所述备份进程创建后,该写入进程将所述上下文数据传递给该备份进程;
备份写入单元,写入服务器基于预设的调度策略从N个备份内存数据库节点选择一个数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
安全同步单元,写入服务器基于目标内存数据库节点的标识判断当前时间该目标内存数据库节点是否可以同步数据,如果是,则所述写入服务器创建一锁定进程,使用该锁定进程锁定该目标内存数据库节点中的目标表以禁止其他进程对该目标表进行操作,所述服务器创建迁移进程基于写入位置读取所述上下文数据后写入到所述目标表;
其中,在监测单元中,所述上下文数据为待写入目标内存数据库节点的金融操作数据;
其中,所述对所述M个内存数据库节点上的所有写入进程的执行状态进行监测的操作为:写入服务器读取所述M个内存数据库节点上的写入进程返回的执行状态,如果所述执行状态是成功,则写入进程的执行状态不存在错误,如果执行状态为失败,则写入进程的执行状态存在错误,如果执行状态为待定,所述写入服务器创建一读取进程读取该执行状态为待定的写入进程写入的金融操作数据,所述写入服务器判断读取出来的金融操作数据是否与在写入服务器上缓存的用于写入的金融操作数据是否一致,如果否,则所述写入进程的执行状态存在错误,在所述写入进程的执行状态存在错误时,则创建一三元组(PID,DMID,DATA)记录该写入进程的标识PID、该进行写入的目标内存数据库节点的标识DMID以及该写入进程的上下文数据DATA;
其中,在所述请求单元中,当监测到某一写入进程的执行状态存在错误后,该写入进程发出请求触发写入服务器创建一备份进程,所述请求包括所述DATA在写入进程所申请的内存中的地址add及数据长度L,在所述备份进程创建后,所述备份进程基于所述地址add及数据长度L获取所述DATA;其中,当监测到某一写入进程的执行状态存在错误后,所述写入服务器尝试再次执行该写入进程的操作,直到尝试N次都反馈执行状态存在错误时,该写入进程才发出请求触发写入服务器创建一备份进程,N为大于1的整数;
其中,在备份写入单元中,所述预设的调度策略为:计算所述N个备份内存数据库节点的每一个的当前状态值Si,基于每个备份内存数据库节点的位置Pi对所述Si进行校准,得到校准后的每个备份内存数据库节点的状态值Sci,基于Sci的大小选择一个数据库节点作为目标备份内存数据库节点供所述备份进程写入所述上下文数据并记录写入位置;
其中,校准计算为:Sci=Si+α(1-e-Pi);
其中,α为权重数据,基于历史数据通过机器学习的方式确定,Si的值是基于每个备份内存数据库节点可使用的内存量M、可占用的带宽W以及处理器的算力C指标计算出来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111261034.2A CN113704026B (zh) | 2021-10-28 | 2021-10-28 | 一种分布式金融内存数据库安全同步方法、装置、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111261034.2A CN113704026B (zh) | 2021-10-28 | 2021-10-28 | 一种分布式金融内存数据库安全同步方法、装置、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704026A CN113704026A (zh) | 2021-11-26 |
CN113704026B true CN113704026B (zh) | 2022-01-25 |
Family
ID=78647284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111261034.2A Active CN113704026B (zh) | 2021-10-28 | 2021-10-28 | 一种分布式金融内存数据库安全同步方法、装置、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704026B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599595B (zh) * | 2022-08-26 | 2023-04-11 | 北京万里开源软件有限公司 | 一种基于分布式数据库的物理备份方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6950871B1 (en) * | 2000-06-29 | 2005-09-27 | Hitachi, Ltd. | Computer system having a storage area network and method of handling data in the computer system |
CN101720040A (zh) * | 2009-11-11 | 2010-06-02 | 四川长虹电器股份有限公司 | 融合高速存储器和dma通道的视频解码优化方法 |
CN106330523A (zh) * | 2015-07-03 | 2017-01-11 | 中国移动通信集团广西有限公司 | 一种集群服务器容灾系统、方法和服务器节点 |
CN106685743A (zh) * | 2017-03-09 | 2017-05-17 | 上海亿账通区块链科技有限公司 | 区块链集群处理系统和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4512621B2 (ja) * | 2007-08-06 | 2010-07-28 | 株式会社日立製作所 | 分散システム |
CN111475483B (zh) * | 2019-01-24 | 2023-05-05 | 阿里巴巴集团控股有限公司 | 数据库迁移方法、装置及计算设备 |
CN112685224A (zh) * | 2019-10-17 | 2021-04-20 | 伊姆西Ip控股有限责任公司 | 任务管理的方法、设备和计算机程序产品 |
CN112434008A (zh) * | 2020-11-18 | 2021-03-02 | 星环信息科技(上海)股份有限公司 | 分布式数据库升级方法、设备及介质 |
-
2021
- 2021-10-28 CN CN202111261034.2A patent/CN113704026B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6950871B1 (en) * | 2000-06-29 | 2005-09-27 | Hitachi, Ltd. | Computer system having a storage area network and method of handling data in the computer system |
CN101720040A (zh) * | 2009-11-11 | 2010-06-02 | 四川长虹电器股份有限公司 | 融合高速存储器和dma通道的视频解码优化方法 |
CN106330523A (zh) * | 2015-07-03 | 2017-01-11 | 中国移动通信集团广西有限公司 | 一种集群服务器容灾系统、方法和服务器节点 |
CN106685743A (zh) * | 2017-03-09 | 2017-05-17 | 上海亿账通区块链科技有限公司 | 区块链集群处理系统和方法 |
Non-Patent Citations (2)
Title |
---|
An implementation and performance analysis of backup system using concurrent log processing in real-time DBMS;Mikyong Han等;《Proceedings Fourth International Workshop on Real-Time Computing Systems and Applications》;IEEE;20020806;第118-125页 * |
内存数据库的架构设计与应用;孙晓莹等;《信息与电脑(理论版)》;20191125;第31卷(第22期);第133-135页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113704026A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189348B2 (en) | High availability database management system and database management method using same | |
CN107479823B (zh) | 随机读写文件测试中的数据校验方法和装置 | |
CN111880956B (zh) | 一种数据同步方法和装置 | |
CN110046029A (zh) | 应用于集群内多级缓存的数据处理方法和装置 | |
JP6870466B2 (ja) | 制御プログラム、制御方法、制御装置、及びデータベースサーバ | |
CN113704026B (zh) | 一种分布式金融内存数据库安全同步方法、装置、介质 | |
US10783021B2 (en) | Transaction management for multi-node clusters | |
CN113254536A (zh) | 数据库事务处理方法、系统、电子设备及存储介质 | |
CN115145697A (zh) | 数据库事务的处理方法、装置及电子设备 | |
CN108475201A (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
US9804781B2 (en) | Storage media performance management | |
US20170235781A1 (en) | Method, server and computer program stored in computer readable medium for managing log data in database | |
US20170177615A1 (en) | TRANSACTION MANAGEMENT METHOD FOR ENHANCING DATA STABILITY OF NoSQL DATABASE BASED ON DISTRIBUTED FILE SYSTEM | |
CN109508140B (zh) | 存储资源管理方法、装置、电子设备及电子设备、系统 | |
US11682429B2 (en) | System and method for write-retry management | |
US7949632B2 (en) | Database-rearranging program, database-rearranging method, and database-rearranging apparatus | |
US11275666B1 (en) | Method and apparatus for identifying high importance devices of a consistency group | |
CN114461455A (zh) | 一种流复制集群的磁盘坏块修复方法及装置 | |
CN110287164B (zh) | 一种数据恢复方法、装置及计算机设备 | |
JP2008299360A (ja) | 履歴情報管理方法及び履歴情報管理システム | |
US9053074B2 (en) | Computer product, writing control method, writing control apparatus, and system | |
CN112988708A (zh) | 版本更新方法及装置、计算机可读存储介质、处理器 | |
JP5224928B2 (ja) | データベース整合性チェック装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 | |
CN112562774B (zh) | 存储设备挂载方法、装置、计算机设备和存储介质 | |
CN111752915B (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 |