本申请涉及区块链技术领域,尤其涉及一种区块链用户数据表更新方法、设备及存储介质。
背景技术:
随着计算机技术的飞速发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性和实时性要求,也对技术提出了更高的要求。由于区块链具有去中心化、开放性、自治性和信息不可篡改等特点,在金融科技领域得到的广泛的应用。在区块链运行过程中,需要对数据库中的用户数据表的表结构进行更新时,需要通过具备一定权限的运维管理员对区块链网络中的相应节点进行相应的操作,手动关闭相应的节点,然后逐个手动对用户数据表的表结构进行更新,然后重启相应的节点,从而实现在相应节点中更新用户数据表的表结构的过程。
目前,更新区块链网络中的用户数据表的过程中,需用户关闭相应节点,以对相应节点中的用户数据表的表结构进行逐个手动更新,导致更新过程较为繁琐,且容易操作出错,造成区块链网络不能正常运行,且更新用户数据表的智能化程度较低,更新用户数据表的效率较低。
申请内容
为解决上述技术问题,本申请实施例期望提供一种区块链用户数据表更新方法、设备及存储介质,解决了目前需通过用户关闭相应区块链节点并手动更新相应区块链节点中的用户数据表的表结构的问题,实现了无需关闭相应区块链节点,直接自动更新相应区块链节点中的用户数据表的方案,保证了区块链网络能够有效的正常运行,并提高了更新用户数据表的智能化程度,有效提高了更新用户数据表的效率。
本申请的技术方案是这样实现的:
第一方面,一种区块链用户数据表更新方法,所述方法包括:
确定待处理用户数据表;
若检测到待处理用户数据表已标识为已锁状态,获取针对所述待处理用户数据表的目标配置参数;其中,所述已锁状态用于表示所述待处理用户数据表已加锁;
基于所述目标配置参数,对所述待处理用户数据表进行处理,得到参考用户数据表;
对所述参考用户数据表进行解锁处理,得到目标用户数据表;其中,所述目标用户数据表不具备所述已锁状态。
第二方面,一种区块链用户数据表更新设备,所述区块链用户数据表更新设备包括:存储器、处理器和通信总线;其中:
所述存储器,用于存储可执行指令;
所述通信总线,用于实现所述处理器和所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的区块链用户数据表更新程序,实现如上述任一项所述的区块链用户数据表更新方法的步骤。
第三方面,一种存储介质,所述存储介质上存储有区块链用户数据表更新程序,所述区块链用户数据表更新程序被处理器执行时实现如上述任一项所述的区块链用户数据表更新方法的步骤。
本申请实施例中,区块链用户数据表更新设备确定待处理用户数据表,若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数,并基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表,最后对参考用户数据表进行解锁处理,得到目标用户数据表。这样,在待处理用户数据表已锁的状态下,对待处理用户数据表进行处理,得到参考用户数据表,并对参考用户数据表进行解锁处理,得到目标用户数据表,解决了目前需通过用户关闭相应区块链节点并手动更新相应区块链节点中的用户数据表的表结构的问题,实现了无需关闭相应区块链节点,直接自动更新相应区块链节点中的用户数据表的方案,保证了区块链网络能够有效的正常运行,并提高了更新用户数据表的智能化程度,有效提高了更新用户数据表的效率。
附图说明
图1为本申请实施例提供的一种区块链用户数据表更新方法的流程示意图;
图2为本申请实施例提供的另一种区块链用户数据表更新方法的流程示意图;
图3为本申请实施例提供的又一种区块链用户数据表更新方法的流程示意图;
图4为本申请另一实施例提供的一种区块链用户数据表更新方法的流程示意图;
图5为本申请另一实施例提供的另一种区块链用户数据表更新方法的流程示意图;
图6为本申请实施例提供的一种区块链用户数据表更新设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请的实施例提供一种区块链用户数据表更新方法,参照图1所示,方法应用于区块链用户数据表更新设备,该方法包括以下步骤:
步骤101、确定待处理用户数据表。
在本申请实施例中,区块链用户数据表更新设备是具备计算分析能力,且能够作为区块链运行节点的设备,其可以运行至少一个区块链节点,可以是实体设备例如可以各种形式的服务器、台式电脑、笔记本电脑、平板电脑、智能手机,甚至是车载电脑等设备;也可以是虚拟设备,对应的,以太坊区块链中执行智能合约的虚拟机(etheriumvitualmachine,evm)。待处理用户数据表为区块链中用户希望对表结构进行修改例如扩容、缩容等操作的用户数据表。区块链用户数据表更新设备确定待处理用户数据表时,可以是通过用户输入的待处理用户数据表的标识信息来实现的。
步骤102、若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数。
其中,已锁状态用于表示待处理用户数据表已加锁。
在本申请实施例中,加锁(lock)指的是将控制变量置位,控制共享资源不能被其他进程访问,对应的待处理用户数据表已标识为已锁状态时,其他交易不能访问待处理用户数据表,对待处理用户数据表内容进行创建(create)、检索(retrieve)、更新(update)、移除(delete)四类操作。针对待处理用户数据表的目标配置参数指的是用户希望针对待处理用户数据表结构进行改变的参数,例如改变方式、改变位置、改变数量、改变类型以及对应的命名参数等。
步骤103、基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表。
在本申请实施例中,区块链用户数据表更新设备根据接收到的目标配置参数,对待处理用户数据表的结构进行相应的改变,得到参考用户数据表。参考用户数据表可以是基于目标配置参数成功对待处理用户数据表进行改变后得到的,也可以是基于目标配置参数对待处理用户数据表处理时出现失误,基于待处理用户数据表的历史缓存数据进行恢复得到的。
步骤104、对参考用户数据表进行解锁处理,得到目标用户数据表。
其中,目标用户数据表不具备已锁状态。
在本申请实施例中,得到参考用户数据表后,为了不影响后续针对待处理用户数据表的使用,区块链用户数据表更新设备需要对已加锁的与待处理用户数据表对应的参考用户数据表进行解锁处理,得到目标用户数据表,这样,可以使其他交易使用目标用户数据表。
本申请实施例中,区块链用户数据表更新设备确定待处理用户数据表,若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数,并基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表,最后对参考用户数据表进行解锁处理,得到目标用户数据表。这样,在待处理用户数据表已锁的状态下,对待处理用户数据表进行处理,得到参考用户数据表,并对参考用户数据表进行解锁处理,得到目标用户数据表,解决了目前需通过用户关闭相应区块链节点并手动更新相应区块链节点中的用户数据表的表结构的问题,实现了无需关闭相应区块链节点,直接自动更新相应区块链节点中的用户数据表的方案,保证了区块链网络能够有效的正常运行,并提高了更新用户数据表的智能化程度,有效提高了更新用户数据表的效率。
基于前述实施例,本申请的实施例提供一种区块链用户数据表更新方法,参照图2所示,方法应用于区块链用户数据表更新设备,该方法包括以下步骤:
步骤201、确定待处理用户数据表。
在本申请实施例中,以区块链用户数据表更新设备通过接收到用户发送的待处理用户数据表的标识信息实现的为例进行说明,区块链用户数据表更新设备接收到用户发送的待处理用户数据表的标识信息后,根据接收到的待处理用户数据表的标识信息确定待处理用户数据表。其中,待处理用户数据表的标识信息可以是用于唯一标识待处理用户数据表的身份标识,例如可以是待处理用户数据表的命名信息。
步骤202、若检测到待处理用户数据表已标识为已锁状态,检测是否存在调用待处理用户数据表内容的并行交易。
其中,已锁状态用于表示待处理用户数据表已加锁。
在本申请实施例中,区块链用户数据表更新设备对确定的待处理用户数据表的状态进行检测,具体可以通过检测针对待处理用户数据表的状态进行设置的标识位来判断。对应的,在待处理用户数据表已加锁时,区块量用户数据表更新设备会在待处理用户数据表的标识位处进行修改,修改待处理用户数据表的标识位内容为已锁状态,在待处理用户数据表为未加锁的状态时,可以将对应的标识位内容设置为未锁状态,或者设置标识位内容为空。并行交易指的是在待处理用户数据表为已锁状态时,区块链中对待处理用户数据表进行调用的其他交易过程。
步骤203、若存在并行交易,暂停并行交易。
在本申请实施例中,由于待处理用户数据表当前处于已锁状态,并行交易不能访问待处理用户数据表,因此,可以控制并行交易暂停处理,以防止并行交易出现交易失败的情况,在后续待处理用户数据表解锁后,回滚并行交易,执行并行交易,有效提高了并行交易的成功率。
步骤204、获取针对待处理用户数据表的目标配置参数。
在本申请实施例中,目标配置参数可以包括至少一个参数,对应的,目标配置参数的全部参数或者部分参数可以是用户输入至区块链用户数据表更新设备的,在一些应用场景中,用户未输入目标配置参数时,目标配置参数的全部参数可以是预先设置好的默认参数,或者,用户未输入目标配置参数的部分参数时,该部分参数也可以使用预先配置好的默认参数。
步骤205、基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表。
其中,目标配置参数至少包括目标配置参数至少包括以下参数:扩容列数、扩容列的类型和扩容列的命名信息,或目标配置参数至少包括以下参数:扩容行数、扩容行的类型和扩容行的命名信息。
在本申请实施例中,在待处理用户数据表的应用过程中,通常存在待处理用户数据表需要进行扩容的情况,因此,对应的目标配置参数可以是用于对待处理用户数据表进行扩容的参数。例如,待处理用户数据表为横向列表时,对应的目标配置参数至少可以是以下参数:扩容行数、扩容行的类型和扩容行的命名信息。待处理用户数据表为纵向列表时,对应的目标配置参数至少可以是以下参数:扩容列数、扩容列的类型和扩容列的命名信息。
步骤206、对参考用户数据表进行解锁处理,得到目标用户数据表。
其中,目标用户数据表不具备已锁状态。
在本申请实施例中,区块链用户数据表对参考用户数据表进行解锁处理,可以去除参考用户数据表对应的标识位内容已锁状态,并针对参考用户数据表进行修改,使其他进程可访问参考用户数据表,实现解锁处理。
步骤207、基于目标用户数据表,执行并行交易。
在本申请实施例中,由于其他进程可以访问目标用户数据表,因此,对并行交易实现回滚,执行并行交易。
基于前述实施例,在本申请其他实施例中,步骤202可以通过步骤a11~a13来实现:
步骤a11、在待处理用户数据表已标识为已锁状态的情况下,确定区块链包括的交易的交易顺序和交易互斥资源的占用关系。
在本申请实施例中,区块链包括的交易在区块链中具有明确记录,因此可以从区块链中进行统计,得到区块链包括的交易的交易顺序,以及执行交易时交易互斥资源的占用关系。
步骤a12、基于交易的交易顺序和交易互斥资源的占用关系,确定交易依赖关系。
在本申请实施例中,交易的交易顺序可以具体可以通过交易的标识信息来表示交易前后顺序。例如交易包括a、b和c,且交易c执行完后执行交易a,交易a与交易b可同时执行,即交易a与交易b可并行执行,对应的交易顺序可以记为{(c、a);(0,b)},其中,0表示交易b前没有其他交易。交易互斥资源的占用关系也可以采用交易互斥资源的标识信息来表示资源占用关系,例如在交易过程中,执行交易a时,需要用到的资源为a1和a2,执行交易b时,需要用到的资源为a2、b1和b2,这样,交易a与交易b共用资源a1,对应可以记为a1(a,b),a2(a),b1(b),b2(b)。其中,交易依赖关系还可以采用图、表等直观表示形式来表示。
步骤a13、基于交易依赖关系,确定是否存在并行交易。
在本申请实施例中,从交易依赖关系中确定是否存在同一时刻调用待处理用户数据表的至少两个交易,若存在至少两个交易,确定存在调用待处理用户数据表的并行交易。
在一些应用场景中,交易依赖关系也可以是预先确定的,即在判断待处理用户数据表是否加锁处理之前执行的,这样,在对待处理用户数据表进行加锁处理,且加锁成功后,可以将预先确定的交易依赖关系中的待处理用户数据表的标识信息进行标识,标识为已锁状态。对应的,在待处理用户数据表对应的参考用户数据表进行解锁处理后,去除对交易依赖关系中的待处理用户数据表的标识信息标识的已锁状态,这样,在待处理用户数据表的标识信息标识为已锁状态的时间段内,调用待处理用户数据表的交易均可以定义为并行交易。需说明的是,在待处理用户数据表的标识信息标识为已锁状态的时间段内,若存在多个并行交易,可以在待处理用户数据表对应的参考用户数据表进行解锁处理后,得到目标用户数据表时,依次根据多个并行交易的执行先后顺序依次进行回滚,依次重新执行。
基于前述实施例,在本申请其他实施例中,参照图3所示,区块链用户数据表更新设备执行步骤201之后,还用于执行步骤208~210:
步骤208、若检测到待处理用户数据表存在,缓存待处理用户数据表的当前内容至目标存储区域,得到目标缓存数据。
在本申请实施例中,在确定待处理用户数据表后,还需检测区块链中是否存在待处理用户数据表,若检测到待处理用户数据表不存在,直接抛错处理;若检测到待处理用户数据表存在,对待处理用户数据表的当前内容进行缓存,缓存的方式可以采用快照的方式来实现。对应的目标存储区域可以是区块链用户数据表更新设备的内存存储区域。需说明的是,在目标缓存区域中可以按照时间先后顺序,依次存储针对待处理用户数据表不同时间段的快照缓存内容,也可以在目标缓存区域中只存储当前针对待处理用户数据表的快照缓存,即当有新的待处理用户数据表的快照缓存存入目标存储区域时,直接覆盖之前存储的待处理用户数据表的历史快照缓存,以将待处理用户数据表的历史快照缓存删除。
步骤209、对待处理用户数据表进行加锁操作。
步骤210、若检测到待处理用户数据表加锁成功,标记待处理用户数据表为已锁状态。
对应的,在本申请其他实施例中,步骤205可以由步骤b11~b14来实现:
步骤b11、基于目标配置参数,对待处理用户数据表进行处理。
在本申请实施例中,区块链用户数据表更新设备执行步骤b11之后,可以选择执行步骤b12或者步骤b13~b14。若对待处理用户数据表进行处理成功,选择执行步骤b12,若对待处理用户数据表进行处理出现异常,选择执行步骤b13~b14。
步骤b12、若对待处理用户数据表进行处理成功,得到包括与目标配置参数匹配的内容的参考用户数据表。
在本申请实施例中,对待处理用户数据表进行处理成功表明的是:采用目标配置参数对待处理用户数据表的结构进行相应改变操作成功。
步骤b13、若对待处理用户数据表进行处理出现异常,从目标存储区域中,获取距离当前时刻最近的待处理用户数据表对应的历史缓存数据。
在本申请实施例中,对待处理用户数据表进行处理出现异常表明的是:采用目标配置参数对待处理用户数据表的结构进行相应改变操作没有成功,可能是操作过程中出现错误,也能是操作后没有得到期望的数据表。
步骤b14、基于历史缓存数据,恢复待处理用户数据表,得到参考用户数据表。
在本申请实施例中,基在待处理用户数据表出现异常时,采用最近版本的待处理用户数据表的备份数据对待处理用户数据表进行恢复,能够快速恢复待处理用户数据表,降低待处理用户数据表对区块链中的其他交易的影响。
基于前述实施例,在本申请其他实施例中,区块链用户数据表更新设备执行步骤b13之后,还用于执行步骤b15~b16:
步骤b15、生成第一日志信息。
其中,第一日志信息用于记录基于目标配置信息对待处理用户数据表进行处理时出现异常的信息。
步骤b16、存储第一日志信息。
在本申请实施例中,记录第一日志信息,以便后续针对对待处理用户数据表进行处理出现异常的情况进行分析,得到出现异常的原因。
基于前述实施例,在本申请其他实施例中,区块链用户数据表更新设备执行步骤b12之后,还用于执行步骤b17~b18:
步骤b17、若参考用户数据表包括目标配置参数匹配的内容,生成第二日志信息。
其中,第二日志信息用于记录检测到参考用户数据表包括的内容与目标配置参数对应的内容匹配的信息。
步骤b18、存储第二日志信息。
基于前述实施例,本申请实施例提供一种区块链用户数据表更新方法,其中,针对用户数据表进行加锁、修改与释放锁可以通过lock、unlock与alter三个基本操作一一对应来实现。对应的,由于通过数据定义语言来定义包括库、表、列等的数据库对象。数据定义语言包括的常用操作有创建(create)、修改(alter)和删除(drop)等,用于在数据库中创建新表、修改表结构或删除表,以及为表加入索引等。其中,参照图4所示,区块链节点可以用于实现以下步骤:
步骤31、验证用户身份标识信息与预设身份信息是否匹配,若用户身份标识信息与预设身份信息匹配,执行步骤32;若用户身份标识信息与预设身份信息不匹配,执行步骤314。
其中,预设身份信息可以是预先设置的区块链管理员账户信息、运维管理员账户信息,或是可调用数据表的智能合约中指定的可修改表结构的用户地址。
步骤32、检测待扩容用户数据表是否存在,若存在,执行步骤33,若不存在,执行步骤314。
其中,检测待扩容用户数据表是否存在时,可以通过以下具体步骤来实现:首先,区块链节点调取待扩容用户数据表,然后对待扩容用户数据表进行检测,确定待扩容用户数据表是否存在。其中,待扩容用户数据表对应前述待处理用户数据表。
步骤33、对待处理用户数据表的当前状态进行一次快照缓存。
其中,对获取到的待处理用户数据表的当前状态进行一次快照缓存,用于修改失败后快速返回到快照的状态。缓存的快照缓存内容包括待处理用户数据表的结构,快照缓存内容可以在数据库(database,db)的快照缓存表中进行持久化处理,这样,实现了将快照缓存内容保存到特定的备份缓存数据表,并记录了每一步操作的数据库操作日志与操作命令。
步骤34、对待扩容用户数据表进行加锁操作。
其中,可以采用lock操作来对待扩容用户数据表进行加锁操作,使用户不能访问和修改待扩容用户数据表。
步骤35、检测是否存在调用待扩容用户数据表的并行交易,若存在并行交易,执行步骤36,若不存在并行交易,执行步骤37。
其中,步骤34与步骤35可以同时执行。
在检测是否存在调用待扩容用户数据表的并行交易时,可以根据交易的交易顺序及交易的互斥资源的占用关系确定得到与待扩容用户数据表有关的交易依赖关系。在待扩容用户数据表执行步骤34即采用lock加锁后,若执行调用待扩容用户数据表中的内容的并行交易,则会存在由于待扩容用户数据表被锁会出现并行交易失败且导致死锁或数据不一致的问题。
步骤36、暂停执行并行交易。
步骤37、检测待扩容用户数据表是否标记为已锁状态,若已标记为已锁状态,执行步骤38,若未标记为已锁状态,执行步骤311。
其中,检测待扩容用户数据表是否标记为已锁状态来判断是否对待扩容用户数据表加锁操作成功,即待扩容用户数据表中设置有加锁状态位,在对待扩容用户数据表加锁后,可以将其加锁状态位设置为已锁状态的标识,例如设置为1,未加锁时,对应的加锁状态位设置为未锁状态的标识,例如设置为0。
步骤38、对待扩容用户数据表进行扩容操作。
其中,可以通过alter操作对当前节点账本中的待扩容用户数据表进行一次表结构扩容操作,一次仅扩容一列,且列默认值为空。在对待扩容用户数据表进行扩容操作时,首先需要确定针对待扩容用户数据表的入参参数,例如包括待增加列的待扩容用户数据表的表名、待增加列的列类型以及待增加列的列名;然后通过alter操作实现插入与待扩容用户数据表的入参参数对应的列。
步骤39、检测对待扩容用户数据表是否扩容成功,如果成功,执行步骤310,如果扩容失败,执行步骤311。
其中,扩容失败的情况包括以下至少之一:扩容过程中出现错误的提示,即抛错的情况;扩容过程中出现异常的情况;扩容过程中没有问题,但最终没有得到期望的数据表。
步骤310、生成待扩容用户数据表扩容成功的日志信息并存储扩容成功的日志信息,并执行解锁操作释放锁。
其中,可以采用unlock操作来释放锁,以去除对待扩容用户数据表的已锁状态的标识,将扩容操作后的待扩容用户数据表修改为未锁状态,以使并行交易正常运行,降低待扩容用户数据表的扩容操作对区块链运行的影响。其中,日志信息可以是二进制格式的,且记录的内容包括每一操作步骤。
在一些应用场景中,在待扩容用户数据表扩容成功后,可以将待扩容用户数据表对应的快照缓存内容进行删除,或者,在待扩容用户数据表扩容成功后,还可以经过一定区块数或交易数的时间后,删除待扩容用户数据表对应的快照缓存内容,这样,实现对应的存储区域可以是快照缓存表的释放,降低存储区域的存储压力。
步骤311、从缓存表中获取待扩容用户数据表对应的最新历史快照缓存内容,基于获取的历史快照缓存内容恢复待扩容用户数据表为原有的表结构,生成扩容失败的日志信息。
其中,在对待扩容用户数据表进行扩容操作时,会保存sql的二进制日志(binlog)来记录扩容过程中的详细操作。
步骤312、执行解锁操作。
步骤313、执行解锁操作后,若存在暂停执行的并行交易,执行并行交易。
步骤314、抛错。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请实施例中,区块链用户数据表更新设备确定待处理用户数据表,若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数,并基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表,最后对参考用户数据表进行解锁处理,得到目标用户数据表。这样,在待处理用户数据表已锁的状态下,对待处理用户数据表进行处理,得到参考用户数据表,并对参考用户数据表进行解锁处理,得到目标用户数据表,解决了目前需通过用户关闭相应区块链节点并手动更新相应区块链节点中的用户数据表的表结构的问题,实现了无需关闭相应区块链节点,直接自动更新相应区块链节点中的用户数据表的方案,保证了区块链网络能够有效的正常运行,并提高了更新用户数据表的智能化程度,有效提高了更新用户数据表的效率。
基于前述实施例,本申请的实施例提供一种区块链用户数据表更新方法,参照图5所示,方法应用于区块链用户数据表更新设备,该方法包括以下步骤:
步骤401、确定待处理用户数据表。
步骤402、若检测到待处理用户数据表存在,缓存待处理用户数据表的当前内容至目标存储区域,得到目标缓存数据。
步骤403、对待处理用户数据表进行加锁操作。
步骤404、若检测到待处理用户数据表加锁成功,标记待处理用户数据表为已锁状态。
步骤405、若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数。
其中,已锁状态用于表示待处理用户数据表已加锁;目标配置参数至少包括以下参数:扩容列数、扩容列的类型和扩容列的命名信息,或目标配置参数至少包括以下参数:扩容行数、扩容行的类型和扩容行的命名信息。
步骤406、基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表。
步骤407、对参考用户数据表进行解锁处理,得到目标用户数据表。
其中,目标用户数据表不具备已锁状态。
基于前述实施例,在本申请其他实施例中,步骤406可以由步骤c11~c14来实现:
步骤c11、基于目标配置参数,对待处理用户数据表进行处理。
步骤c12、若对待处理用户数据表进行处理成功,得到包括与目标配置参数匹配的内容的参考用户数据表。
步骤c13、若对待处理用户数据表进行处理出现异常,从目标存储区域中,获取距离当前时刻最近的待处理用户数据表对应的历史缓存数据。
步骤c14、基于历史缓存数据,恢复待处理用户数据表,得到参考用户数据表。
基于前述实施例,在本申请其他实施例中,区块链用户数据表更新设备执行步骤c13之后,还用于执行步骤c15~c16。
步骤c15、生成第一日志信息。
其中,第一日志信息用于记录基于目标配置信息对待处理用户数据表进行处理时出现异常的信息。
步骤c16、存储第一日志信息。
基于前述实施例,在本申请其他实施例中,区块链用户数据表更新设备执行步骤c12之后,还用于执行步骤c17~c18。
步骤c17、若参考用户数据表包括目标配置参数匹配的内容,生成第二日志信息。
其中,第二日志信息用于记录检测到参考用户数据表包括的内容与目标配置参数对应的内容匹配的信息。
步骤c18、存储第二日志信息。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请实施例中,区块链用户数据表更新设备确定待处理用户数据表,若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数,并基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表,最后对参考用户数据表进行解锁处理,得到目标用户数据表。这样,在待处理用户数据表已锁的状态下,对待处理用户数据表进行处理,得到参考用户数据表,并对参考用户数据表进行解锁处理,得到目标用户数据表,解决了目前需通过用户关闭相应区块链节点并手动更新相应区块链节点中的用户数据表的表结构的问题,实现了无需关闭相应区块链节点,直接自动更新相应区块链节点中的用户数据表的方案,保证了区块链网络能够有效的正常运行,并提高了更新用户数据表的智能化程度,有效提高了更新用户数据表的效率。
基于前述实施例,本申请的实施例提供一种区块链用户数据表更新设备,参照图6所示,区块链用户数据表更新设备5可以包括:处理器51、存储器52和通信总线53,其中:
存储器52,用于存储可执行指令;
通信总线53,用于实现处理器51和存储器52之间的通信连接;
处理器51,用于执行存储器52中存储的区块链用户数据表更新程序,以实现以下步骤:
确定待处理用户数据表;
若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数;其中,已锁状态用于表示待处理用户数据表已加锁;
基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表;
对参考用户数据表进行解锁处理,得到目标用户数据表;其中,目标用户数据表不具备已锁状态。
在本申请其他实施例中,处理器执行步骤若检测到待处理用户数据表已标识为已锁状态之后,还用于执行以下步骤:
检测是否存在调用待处理用户数据表内容的并行交易;
若存在并行交易,暂停并行交易。
在本申请其他实施例中,处理器执行步骤对参考用户数据表进行解锁处理,得到目标用户数据表之后,还用于执行以下步骤:
基于目标用户数据表,执行并行交易。
在本申请其他实施例中,处理器执行步骤在待处理用户数据表已标识为已锁状态的情况下,检测是否存在调用待处理用户数据表内容的并行交易时,可以通过以下步骤来实现:
在待处理用户数据表已标识为已锁状态的情况下,确定区块链包括的交易的交易顺序和交易互斥资源的占用关系;
基于交易的交易顺序和交易互斥资源的占用关系,确定交易依赖关系;
基于交易依赖关系,确定是否存在并行交易。
在本申请其他实施例中,处理器执行步骤确定待处理用户数据表之后,还用于执行以下步骤:
若检测到待处理用户数据表存在,缓存待处理用户数据表的当前内容至目标存储区域,得到目标缓存数据;
对待处理用户数据表进行加锁操作;
若检测到待处理用户数据表加锁成功,标记待处理用户数据表为已锁状态。
在本申请其他实施例中,处理器执行步骤基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表时,可以通过以下步骤来实现:
基于目标配置参数,对待处理用户数据表进行处理;
若对待处理用户数据表进行处理成功,得到包括与目标配置参数匹配的内容的参考用户数据表;
若对待处理用户数据表进行处理出现异常,从目标存储区域中,获取距离当前时刻最近的待处理用户数据表对应的历史缓存数据;
基于历史缓存数据,恢复待处理用户数据表,得到参考用户数据表。
在本申请其他实施例中,处理器执行步骤若对待处理用户数据表进行处理出现异常之后,还用于执行以下步骤:
生成第一日志信息;其中,第一日志信息用于记录基于目标配置信息对待处理用户数据表进行处理时出现异常的信息;
存储第一日志信息。
在本申请其他实施例中,处理器还用于执行以下步骤:
若参考用户数据表包括目标配置参数匹配的内容,生成第二日志信息;其中,第二日志信息用于记录检测到参考用户数据表包括的内容与目标配置参数对应的内容匹配的信息;
存储第二日志信息。
在本申请其他实施例中,存储器中存储的目标配置参数至少包括目标配置参数至少包括以下参数:扩容列数、扩容列的类型和扩容列的命名信息,或目标配置参数至少包括以下参数:扩容行数、扩容行的类型和扩容行的命名信息。
需说明的是,本实施例中区块链用户数据表更新设备中的单元之间信息交互的具体实现过程,可以参照图1至5对应的实施例提供的区块链用户数据表更新方法中的实现过程,此处不再赘述。
本申请实施例中,区块链用户数据表更新设备确定待处理用户数据表,若检测到待处理用户数据表已标识为已锁状态,获取针对待处理用户数据表的目标配置参数,并基于目标配置参数,对待处理用户数据表进行处理,得到参考用户数据表,最后对参考用户数据表进行解锁处理,得到目标用户数据表。这样,在待处理用户数据表已锁的状态下,对待处理用户数据表进行处理,得到参考用户数据表,并对参考用户数据表进行解锁处理,得到目标用户数据表,解决了目前需通过用户关闭相应区块链节点并手动更新相应区块链节点中的用户数据表的表结构的问题,实现了无需关闭相应区块链节点,直接自动更新相应区块链节点中的用户数据表的方案,保证了区块链网络能够有效的正常运行,并提高了更新用户数据表的智能化程度,有效提高了更新用户数据表的效率。
基于前述实施例,本申请的实施例提供一种计算机可读存储介质,简称为存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如图1至5对应的实施例提供的区块链用户数据表更新方法实现过程,此处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
1.一种区块链用户数据表更新方法,其特征在于,所述方法包括:
确定待处理用户数据表;
若检测到待处理用户数据表已标识为已锁状态,获取针对所述待处理用户数据表的目标配置参数;其中,所述已锁状态用于表示所述待处理用户数据表已加锁;
基于所述目标配置参数,对所述待处理用户数据表进行处理,得到参考用户数据表;
对所述参考用户数据表进行解锁处理,得到目标用户数据表;其中,所述目标用户数据表不具备所述已锁状态。
2.根据权利要求1所述的方法,其特征在于,所述若检测到待处理用户数据表已标识为已锁状态之后,所述方法还包括:
检测是否存在调用所述待处理用户数据表内容的并行交易;
若存在所述并行交易,暂停所述并行交易。
3.根据权利要求2所述的方法,其特征在于,所述对所述参考用户数据表进行解锁处理,得到目标用户数据表之后,所述方法还包括:
基于所述目标用户数据表,执行所述并行交易。
4.根据权利要求2所述的方法,其特征在于,所述在所述待处理用户数据表已标识为已锁状态的情况下,检测是否存在调用所述待处理用户数据表内容的并行交易,包括:
在所述待处理用户数据表已标识为已锁状态的情况下,确定区块链包括的交易的交易顺序和交易互斥资源的占用关系;
基于所述交易顺序和所述互斥资源的占用关系,确定交易依赖关系;
基于所述交易依赖关系,确定是否存在所述并行交易。
5.根据权利要求1至4任一所述的方法,其特征在于,所述确定待处理用户数据表之后,所述方法还包括:
若检测到所述待处理用户数据表存在,缓存所述待处理用户数据表的当前内容至目标存储区域,得到目标缓存数据;
对所述待处理用户数据表进行加锁操作;
若检测到所述待处理用户数据表加锁成功,标记所述待处理用户数据表为已锁状态。
6.根据权利要求1至4任一所述的方法,其特征在于,所述基于所述目标配置参数,对所述待处理用户数据表进行处理,得到参考用户数据表,包括:
基于所述目标配置参数,对所述待处理用户数据表进行处理;
若对所述待处理用户数据表进行处理成功,得到包括与所述目标配置参数匹配的内容的所述参考用户数据表;
若对所述待处理用户数据表进行处理出现异常,从所述目标存储区域中,获取距离当前时刻最近的所述待处理用户数据表对应的历史缓存数据;
基于所述历史缓存数据,恢复所述待处理用户数据表,得到所述参考用户数据表。
7.根据权利要求6所述的方法,其特征在于,所述若对所述待处理用户数据表进行处理出现异常,所述方法还包括:
生成第一日志信息;其中,所述第一日志信息用于记录基于所述目标配置信息对所述待处理用户数据表进行处理时出现异常的信息;
存储所述第一日志信息。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述参考用户数据表包括所述目标配置参数匹配的内容,生成第二日志信息;其中,所述第二日志信息用于记录所述检测到所述参考用户数据表包括的内容与所述目标配置参数对应的内容匹配的信息;
存储所述第二日志信息。
9.根据权利要求1至4、6至8任一所述的方法,其特征在于,所述目标配置参数至少包括以下参数:扩容列数、扩容列的类型和扩容列的命名信息,或所述目标配置参数至少包括以下参数:扩容行数、扩容行的类型和扩容行的命名信息。
10.一种区块链用户数据表更新设备,其特征在于,所述区块链用户数据表更新设备包括:存储器、处理器和通信总线;其中:
所述存储器,用于存储可执行指令;
所述通信总线,用于实现所述处理器和所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的区块链用户数据表更新程序,实现如权利要求1至9中任一项所述的区块链用户数据表更新方法的步骤。
11.一种存储介质,其特征在于,所述存储介质上存储有区块链用户数据表更新程序,所述区块链用户数据表更新程序被处理器执行时实现如权利要求1至9中任一项所述的区块链用户数据表更新方法的步骤。
技术总结