CN112395284B 数据处理方法、装置、数据库系统、电子设备及存储介质 (阿里巴巴集团控股有限公司)_第1页
CN112395284B 数据处理方法、装置、数据库系统、电子设备及存储介质 (阿里巴巴集团控股有限公司)_第2页
CN112395284B 数据处理方法、装置、数据库系统、电子设备及存储介质 (阿里巴巴集团控股有限公司)_第3页
CN112395284B 数据处理方法、装置、数据库系统、电子设备及存储介质 (阿里巴巴集团控股有限公司)_第4页
CN112395284B 数据处理方法、装置、数据库系统、电子设备及存储介质 (阿里巴巴集团控股有限公司)_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(12)发明专利地址英属开曼群岛大开曼资本大厦一座四(74)专利代理机构北京同钧律师事务所16037接收用于指示针对数据库的数据处理请求,生成对应的分布式事务接收所迷数据库返回的所述第一预提交任务的第一执行扶态信息、和、所迷第二预提交任务的第二执行状态信息接收用于指示针对数据库的数据处理请求,生成对应的分布式事务接收所迷数据库返回的所述第一预提交任务的第一执行扶态信息、和、所迷第二预提交任务的第二执行状态信息事务包括指示针对数据表的第一预提交任务,执行状态信息和所述第二执行状态信息均指示处理方法可以保证数据表和外置索引表的数据一致性。2接收针对数据库的数据处理请求,生成对应的分布式事务,其中,所述分布式事务包括指示针对数据表的第一预提交任务,和,指示针对与所述数据表对应的外置索引表的第二预提交任务;接收所述数据库返回的所述第一预提交任务的第一执行状态信息和所述第二预提交任务的第二执行状态信息,所述第一执行状态信息用于指示所述第一预提交任务涉及的各实例是否成功执行,所述第二执行状态信息用于指示所述第二预提交任务涉及的各实例是否成功执行;若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式事务以完成所述数据表和所述外置索引表的数据处理。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第一执行状态信息和所述第二执行状态信息中至少一个指示任务执行失败,则生成回滚消息,以通过所述回滚消息指示对所述第一预提交任务和/或所述第二预提交任务进行回滚操作。3.根据权利要求1所述的方法,其特征在于,所述接收针对数据库的数据处理请求,生获取所述数据处理请求中的SQL语句;判断所述SQL语句是否为包含插入操作的SQL语句;根据判断结果确定查询语句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务。4.根据权利要求3所述的方法,其特征在于,所述根据所述判断结果确定查询语句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务,包括:若所述判断结果指示为包含插入操作的SQL语句,则确定根据所述SQL语句生成第一查询语句,其中,所述第一查询语句用于指示查询与所述SQL语句指示的待处理记录冲突的记根据所述第一查询语句获得第一查询结果;根据所述第一查询结果和所述SQL语句,生成所述分布式事务。5.根据权利要求4所述的方法,其特征在于,所述根据所述第一查询结果和所述SQL语若确定所述SQL语句为包括指示放弃冲突记录的第一子句的插入语句,则根据所述SQL语句指示的所述待处理记录和所述第一查询结果,确定所述待处理记录中与所述第一查询结果不匹配的第一记录;生成指示向所述数据表中插入所述第一记录的所述第一预提交任务,和,指示向所述外置索引表中插入所述第一记录的所述第二预提交任务;根据所述第一预提交任务和所述第二预提交任务生成所述分布式事务。6.根据权利要求4所述的方法,其特征在于,所述根据所述第一查询结果和所述SQL语若确定所述SQL语句为包括指示更新记录的第二子句的插入语句时,则获取所述SQL语句指示的所述待处理记录中与所述第一查询结果不匹配的第一记录和与所述第一查询结3果匹配的第二记录;生成指示向所述数据表中插入所述第一记录,且使用所述第二记录更新所述数据表中的所述第一查询结果的所述第一预提交任务;以及,生成指示向所述外置索引表中插入所述第一记录,且使用所述第二记录更新所述外置索引表中所述第一查询结果的所述第二预提交任务;根据生成的所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。7.根据权利要求4所述的方法,其特征在于,所述根据所述第一查询结果和所述SQL语若确定所述SQL语句为用于指示进行记录替换的替换语句,则根据所述第一查询结果、所述SQL语句及所述SQL语句指示的待处理记录,生成所述第一预提交任务和所述第二预提交任务,并根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务;其中,所述第一预提交任务指示删除所述数据表中所述第一查询结果,并向所述数据表中插入所述待处理记录;所述第二预提交任务指示删除所述外置索引表中所述第一查询结果,并向所述外置索引表中插入所述待处理记录。8.根据权利要求4-7任一项所述的方法,其特征在于,所述第一查询结果包括表冲突记录,或者,所述第一查询结果包括表冲突记录和索9.根据权利要求3所述的方法,其特征在于,所述根据所述判断结果确定查询语句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务,包括:若所述判断结果指示所述SQL语句不包含插入操作,则根据所述SQL语句生成第二查询语句,其中,所述第二查询语句用于指示获取所述数据表中符合所述SQL语句中的条件子句根据所述第二查询语句获得第二查询结果;根据所述第二查询结果和所述SQL语句,生成所述分布式事务。10.根据权利要求9所述的方法,其特征在于,所述根据所述第二查询结果和所述SQL语当所述SQL语句为更新语句时,根据所述SQL语句生成第一预提交任务和所述第二预提交任务;其中,所述第一预提交任务指示根据所述SQL语句更新所述数据表中第二查询结果;所述第二预提交任务指示根据所述SQL语句更新所述外置索引表中与第二查询结果对应的记录;根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。11.根据权利要求9所述的方法,其特征在于,所述根据所述第二查询结果和所述SQL语当所述SQL语句为删除语句时,根据所述SQL语句生成第一预提交任务和所述第二预提交任务;其中,所述第一预提交任务指示根据所述SQL语句删除所述数据表中第二查询结果;所述第二预提交任务指示根据所述SQL语句删除所述外置索引表中与第二查询结果对应的记录;根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。12.根据权利要求3所述的方法,其特征在于,所述获取所述数据处理请求中的SQL语4从所述数据处理请求中获取原始SQL语句,并将所述原始SQL语句中的动态函数替换为常量;根据替换结果生成替换后的SQL语句。13.根据权利要求12所述的方法,其特征在于,所述根据替换结果生成替换后的SQL语根据所述原始SQL语句确定待处理的所述数据表,并确定所述数据表的主键是否为自增主键,且原始SQL语句中是否存在包含插入操作的语句;若是自增主键且存在包含插入操作的语句,则生成全局唯一的自增值,并根据所述自增值和所述替换结果生成替换后的SQL语句。14.一种数据处理装置,其特征在于,包括:事务生成模块,用于接收针对数据库的数据处理请求,生成对应的分布式事务,其中,所述分布式事务包括指示针对数据表的第一预提交任务,和,指示针对与所述数据表对应的外置索引表的第二预提交任务;信息接收模块,用于接收所述数据库返回的所述第一预提交提交模块,用于若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式事务以完成所述数据表和所述外置索引表的数据处理。15.一种数据库系统,其特征在于,包括代理层、存储层和至少一个数据库层,所述至少一个数据库层上配置有多个数据库实例,各所述数据库实例均与至少一个所述存储层连接,所述存储层用于存储所述数据库层中的数据;所述代理层用于执行权利要求1-13中任一项所述的方法指示的操作,以向至少一个所述数据库层中的至少一个所述数据库实例发送所述分布式事务中的所述第一预提交任务接收所述分布式事务的数据库层根据所述第一预提交任务和所示对应的数据库实例与存储层交互,以执行所述第一预提交任务和所述第二预提交任务;17.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-13中任一项所述的数据处理方法对应的操作。18.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-13中任一所述的数据处理方法。5数据处理方法、装置、数据库系统、电子设备及存储介质技术领域[0001]本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置、数据库系背景技术[0002]随着技术的发展,数据库被广泛用于数据记录的存储、查询和分析。在使用数据库进行数据存储的过程中,随着数据量的增多,单个运行数据库的设备的数据处理能力成为瓶颈。为了解决这一问题,采用分库分表策略(如sharding算法),即将数据库和/或数据表进行拆分,形成多个分片,不同的分片可以是一个单独的实例,配置在不同[0003]现有采用上述分库分表策略的数据库在运行过程中,需要使用全局二级索引表。全局二级索引表是一种辅助索引,其可以是非聚簇索引,是用户可以根据具体需求创建的索引表。[0004]现有的未进行分库分表的数据库(例如,MySQL数据库)在进行了数据处理(例如插入数据、删除数据或更新数据)如更新数据后,更新全局二级索引表的方法是,存储引擎在更新数据库中用于存储数据的主表中的记录的同时,把相同数据也更新到全局二级索引表中。但是在分布式MySQLsharding中间件更新全局二级索引表的场景下,这种全局二级索引表的更新方法存在以下问题:[0005]首先,由于存储引擎的数据不对外暴露,导致分布式MySQLsharding中间件无法获取到存储引擎写入主表的数据,也就无法将这些数据更新到全局二级索引表中。[0006]其次,由于只能写入一种数据源,导致全局二级索引表只能使用与主表相同的存储格式。发明内容[0007]有鉴于此,本发明实施例提供一种数据处理方案,以解决上述部分或全部问题。[0008]根据本发明实施例的第一方面,提供了一种数据处理方法,其包括:接收针对数据库的数据处理请求,生成对应的分布式事务,其中,所述分布式事务包括指示针对数据表的第一预提交任务,和,指示针对与所述数据表对应的外置索引表的第二预提交任务;接收所述数据库返回的所述第一预提交任务的第一执行状态信息、和、所述第二预提交任务的第二执行状态信息;若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式事务以完成所述数据表和所述外置索引表的数据处理。[0009]根据本发明实施例的第二方面,提供了一种数据处理装置,其包括:事务生成模块,用于接收用于指示针对数据库的数据处理请求,生成对应的分布式事务,其中,所述分布式事务包括指示针对数据表的第一预提交任务,和,指示针对与所述数据表对应的外置索引表的第二预提交任务;信息接收模块,用于接收所述数据库返回的所述第一预提交任务的第一执行状态信息、和、所述第二预提交任务的第二执行状态信息;提交模块,用于若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式6事务以完成所述数据表和所述外置索引表的数据处理。接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的数据处理方法对应的操作。[0011]根据本发明实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据处理方法。[0012]根据本发明实施例提供的数据处理方案,根据接收的数据处理请求生成对应的分布式事务,以指示数据库对数据表和外置索引表进行处理,并根据第一执行状态信息和第二执行状态信息确定数据表和外置状态表是否可以执行成功,在第一执行状态信息和第二执行状态信息均指示执行成功时,才提交分布式事务对数据表和外置索引表执行数据处理,确保了在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题。附图说明[0013]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。[0014]图1为根据本发明实施例一的一种数据处理方法的步骤流程图;[0015]图2为根据本发明实施例二的一种数据处理方法的步骤流程图;[0016]图3为根据本发明实施例三的一种数据处理方法的步骤流程图;[0017]图4为根据本发明实施例四的一种数据处理方法的步骤流程图;[0018]图5为根据本发明实施例五的一种数据处理方法的步骤流程图;[0019]图6为根据本发明实施例六的一种数据处理装置的结构框图;[0020]图7为根据本发明实施例七的一种数据处理装置的结构框图;[0021]图8a为根据本发明实施例八的一种数据库系统的结构示意图;[0022]图8b为根据本发明实施例八的一种数据库系统执行数据处理方法的示意图;[0023]图8c为根据本发明实施例八的一种数据库系统执行数据处理方法的流程示意图;[0024]图9为根据本发明实施例九的一种电子设备的结构示意图。具体实施方式[0025]为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。[0026]下面结合本发明实施例附图进一步说明本发明实施例具体实现。[0027]实施例一7[0028]参照图1,示出了根据本发明实施例一的一种数据处理方法的步骤流程图。[0029]本实施例的数据处理方法包括以下步骤:[0030]步骤S102:接收用于指示针对数据库的数据处理请求,生成对应的分布式事务。[0031]在本实施例中,以分布式数据库系统中的代理层(如DRDSproxy,DistributedRelationalDatabaseServicesproxy)作为执行主体,对本发明实施例提供的数据处理方法进行说明。其中,分布式数据库系统可以是基于MySQLsharding的场景,也可以为其他类型场景。[0032]在本实施例的分布式数据库中设置有独立的代理层(如DRDSproxy),代理层是在客户端和数据库之间加入的一个服务进程,主要为用户提供分布式数据库的路由能力,客户端的一个SQL语句会根据DRDSproxy的sharding算法路由到一个或多个分库(如MySQL实[0033]代理层接收的数据处理请求可以是指示向数据表中插入记录的请求、或者指示更新数据表中记录的请求、或者指示删除数据表中记录的请求等。[0034]在代理层接收到指示更新数据表中记录的数据处理请求时,对于数据表和外置索引表的分表方式不同的分布式数据库系统,数据处理请求会涉及对多个分库中的记录进行数据处理,为了避免一部分分库的记录可以成功被更新而另一部分记录不能成功被更新的情况出现而导致外置索引表与数据表中的数据不一致,代理层根据数据处理请求生成对应的分布式事务。[0035]所述分布式事务包括第一预提交任务和第二预提交任务。第一预提交任务用于指示对所述数据表进行处理,第二预提交任务用于指示对所述数据表对应的外置索引表进行处理。该分布式事务只有在其包括的所有预提交任务都被成功执行时才能成功执行,由此保证了外置索引表和数据表的数据一致性。所述处理与前述数据处理请求所请求的处理相[0036]需要说明的是,根据数据处理请求中内容的不同,第一预提交任务和第二预提交任务中均可以包括一个或一个以上的分支任务,每个分支任务可以对应一个MySQL实例。不同的分支任务可以对应相同或不同的MySQL实例。[0037]步骤S104:接收所述数据库返回的所述第一预提交任务的第一执行状态信息、和、所述第二预提交任务的第二执行状态信息。[0038]第一执行状态信息用于指示第一预提交任务涉及的各MySQL实例是否成功执行第一预提交任务。例如,第一预提交任务指示向某MySQL实例的数据表中插入记录A,则第一执行状态信息用于指示该记录A是否成功插入数据表中。[0039]同样地,第二执行状态信息用于指示第二预提交任务涉及的各MySQL实例是否成功执行第二预提交任务。例如,第二预提交任务指示向某MySQL实例中的外置索引表中插入记录A,则第二执行状态信息用于指示该记录A是否成功插入外置索引表中。[0040]在实际应用中,第一执行状态信息和第二执行状态信息可以采用任意适当的形式等等。本发明实施例不对第一执行状态信息和第二执行状态信息的具体形式进行限制。[0041]在获取到第一执行状态信息和第二执行状态信息后,可以根据第一执行状态信息和第二执行状态信息确定是否提交分布式事务。例如,若第一执行状态信息和第二执行状8态信息均指示任务执行成功,表示对数据表和外置索引表的数据处理均成功,能够保证两个表的数据一致性,则可以执行步骤S106。反之,若第一执行状态信息和第二执行状态信息中的至少一个指示任务执行失败,表示对数据表和外置索引表中的至少一个的数据处理失败,两者的数据一致性不能保证,则可以指示不提交分布式事务。当然,在至少一个任务执行失败时执行时,本领域技术人员可以根据需要配置执行任何适当的操作,本实施例对此不作限定。[0042]步骤S106:若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式事务以完成所述数据表和所述外置索引表的数据处理。[0043]若第一执行状态信息和第二执行状态信息均指示任务执行成功,则表示分布式事务可以被完整地成功执行,代理层可以指示提交分布式事务,以使该分布式事务涉及的各MySQL实例正式执行任务提交,完成对所述数据表和所述外置索引表的数据处理。[0044]由于只有在第一执行状态信息和第二执行状态信息均指示任务执行成功时才会提交分布式事务,也就是说,只有在数据表和外置索引表均可以成功进行数据处理的情况下才会提交分布式事务,保证了数据表与外置索引表之间的数据一致性,且由于数据表和外置索引表是同时进行数据处理的,因此在保证数据表和外置索引表数据处理的原子性的同时,还可以保证数据表与外置索引表的强一致性。[0045]其中,强一致性与现有技术中最终一致性相对,强一致性是指在任意时刻数据表和外置索引表都处于完全一致状态。相较于最终一致性在达到最终一致之前会存在不一致的中间状态,强一致性可以保证用户任意时刻使用数据库均可以获得准确的数据。[0046]通过本实施例,根据接收的数据处理请求生成对应的分布式事务,以指示数据库对数据表和外置索引表进行处理,并根据第一执行状态信息和第二执行状态信息确定数据表和外置状态表是否可以执行成功,在第一执行状态信息和第二执行状态信息均指示执行成功时,才提交分布式事务对数据表和外置索引表执行数据处理,确保了在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题。[0047]本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,[0049]参照图2,示出了根据本发明实施例二的一种数据处理方法的步骤流程图。[0050]本实施例的数据处理方法包括前述的步骤S102~步骤S106。[0051]其中,所述方法在根据第一执行状态信息和第二执行状态信息确定是否提交分布式事务时,若第一执行状态信息和第二执行状态信息均指示任务执行成功,则执行步骤S106;反之,若第一执行状态信息和第二执行状态信息中至少一个指示任务执行失败,则执行下述的步骤S108。[0052]步骤S108:若所述第一执行状态信息和所述第二执行状态信息中至少一个指示任务执行失败,则生成回滚消息,以通过所述回滚消息指示对所述第一预提交任务和/或所述第二预提交任务进行回滚操作。[0053]当第一执行状态信息和第二执行状态信息中指示一个指示任务执行失败时,例如,第一执行状态信息指示任务执行成功,第二执行状态信息指示任务执行失败时,表示对9数据表的数据处理成功,对外置索引表的数据处理失败。此时数据表与对应的外置索引表的数据不一致,分布式事务不能提交,可以生成回滚消息,将回滚消息发送给涉及的各MySQL实例,使其对第一预提交任务和/或第二预提交任务进行回滚操作,从而使回滚操作后的数据表和外置索引表的数据一致。[0054]需要说明的是,在本实施例中,外置索引表可以是外置全局二级索引表,在其他实施例中,该外置索引表也可以是其他任何适当的外置索引表。分布式数据库中的外置全局二级索引表可以拆分到多个MySQL实例上,且其采用的分片方式可以与数据表的分片方式不相同。[0055]同样地,数据表可以是数据库中的主表,也可以是其他任何适当的数据表。[0056];在某些情况下,数据表使用的存储结构(例如行存数据源或列存数据源)和外置索引表使用的存储结构可能不同。此种情况下,代理层可以生成与存储结构相适应的预提交任务。在执行某个数据处理请求时,根据该数据处理请求生成MySQL数据源能够识别的第一预提交任务,并生成postgreSQL数据源能够识别的第二预提交任务,从而适应不同的存储结构。由此,使得对数据处理请求的处理更具有灵活性和兼容性。[0058]通过本实施例,在确保了在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题的基础上,由于代理层可以根据数据表使用的存储结构生成与之适应的第一预提交任务,根据外置索引表使用的存储结构生成与之适应的第二预提交任务,从而适应外置索引表与数据表使用不同的存储结构的情况,提高了对数据处理请求的处理的灵活性和兼容性。[0059]而且,在第一预提交任务和第二预提交任务中的任意一个执行失败时,可以生成回滚消息,指示涉及的MySQL实例执行回滚操作,确保了外置索引表和数据表的数据强一致性,不存在数据不一致的中间状态。[0060]本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,[0061]实施例三[0062]参照图3,示出了根据本发明实施例三的一种数据处理方法的步骤流程图。[0063]本实施例的数据处理方法包括前述的步骤S102~步骤S106。根据需要其可以包括或不包括步骤S108。[0064]在本实施例中,所述步骤S102包括以下子步骤:[0065]子步骤S1021:获取所述数据处理请求中的SQL语句。[0066]第一种情况中,数据处理请求中不包含动态函数,所述步骤S1021包括:直接将数据处理请求中的原始SQL语句作为获取的SQL语句。[0067]第二种情况中,数据处理请求包含动态函数,所述子步骤S1021包括:从所述数据处理请求中获取原始SQL语句,并将所述原始SQL语句中的动态函数替换为常量;根据替换[0068]例如,原始SQL语句中包括NOW()函数,该函数是指示获取当前系统时间的动态函值为不会变化的常量),将原始SQL语句中的动态函数替换为该值,生成替换后的SQL语句。该替换后的SQL语句即为从数据处理请求中获[0072]在根据替换结果和自增值生成替换后的SQL语句时,可以将生成的自增值加入替values(1,'a','20190803')。[0076]SQL语句包括但不限于插入语句(insert)、更新语句(update)、替换语句[0077]本领域技术人员可以根据需要采用任何适当的方式确定SQL语句是否为包含插入[0078]子步骤S1023:根据所述判断结果确定查询语句,并根据所述查询语句和所述S插入新的记录时由于冲突记录的存在而导致部分或全部插入失败从而影响数据表和外置11第一查询语句用于指示查询与SQL语句指示的待处理记录冲突的记录。在确定查询语句后,本领域技术人员可以根据需要,采用任何适当的方式生成对应的分布式事务。语句可能是更新语句、删除语句等,这些语句操作的对象是数据表和/或外置索引表中已经存在的记录,且这些语句通常都包含条件子句(where子句)。[0082]基于此,第二种情况中,根据判断结果确定根据所述SQL语句生成第二查询语句,第二查询语句用于指示获取数据表中符合SQL语句中的条件子句的记录。在确定查询语句后,本领域技术人员可以根据需要,采用任何适当的方式生成对应的分布式事务。[0083]通过本实施例,确保了在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题。[0084]此外,先对从数据处理请求中获取的原始SQL语句进行动态函数替换、自增主键的自增值生成等处理防止了由于自增值不一致或动态函数计算结果不一致等问题导致后续处理中造成数据表和外置索引表的数据不一致,确保了可靠性。在生成分布式事务之前,对SQL语句是否包含插入操作进行判断,根据判断结果生成对应的查询语句,再根据生成的查询语句和SQL语句生成分布式事务,提升了方案的适应性。[0085]本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,[0087]参照图4,示出了根据本发明实施例四的一种数据处理方法的步骤流程图。[0088]本实施例的数据处理方法包括前述的步骤S102~步骤S106。根据需要其可以包括或不包括步骤S108。其中,所述步骤S102可以采用实施例一或三的实现方式实现,或者采用其他任何适当的实现方式实现。[0089]在本实施例中,在所述步骤S102采用实施例三中的实现方式实现时,所述子步骤S1023,即根据所述判断结果确定查询语句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务的第一种实现方式如下。[0090]所述子步骤S1023包括:若所述判断结果指示为包含插入操作的SQL语句,则确定根据所述SQL语句生成第一查询语句,其中,所述第一查询语句用于指示查询与所述SQL语句指示的待处理记录冲突的记录;根据所述第一查询语句获得第一查询结果;根据所述第[0091]如实施例三中所述,在判断结果指示SQL语句包括插入操作时,为了防止数据表和/或外置索引表中已有记录与新的记录冲突而影响插入操作的执行造成数据表和外置索引表的数据不一致,确定根据SQL语句生成用于指示查询冲突记录中的第一查询语句。[0092]在生成第一查询语句时,若SQL语句涉及的表中具有全局唯一索引,则生成的第一查询语句用于查询数据表和外置索引表,此时,第一查询语句包括分支查询语句A和分支查询语句B。分支查询语句A可以根据SQL语句中涉及的数据表的表名、数据表的主键和其他唯一键生成,用于查询数据表中冲突记录。分支查询语句B可以根据SQL语句中涉及的外置索引表的表名和全局唯一索引键生成,用于查询外置索引表中的冲突记录。[0093]若不存在全局唯一索引,则生成的第一查询语句仅用于查询数据表,其可以根据SQL语句中涉及的数据表的表名、数据表的主键和其他唯一键生成,用于查询数据表中冲突记录,冲突记录例如数据表中已经存在的某个或某些个记录的主键值与SQL语句指示的待处理记录的主键值相同,由于主键具有唯一性,因此这些记录为冲突记录。[0094]通过将第一查询语句发送给涉及的各MySQL实例,由其进行执行,可以获得各MySQL实例返回的查询结果,其总和即为第一查询结果。[0095]根据所述第一查询结果和所述SQL语句,就可以生成所述分布式事务。对于本领域技术人员而言,其可以采用任何适当的方式生成分布式事务,本实施例对此不作限定。[0096]下面例举几种根据所述第一查询结果和所述SQL语句,生成所述分布式事务的情[0097]其中,第一查询结果可以进包括表冲突记录(记作查询结果A),其可以是根据数据表的主键或者主键和其他唯一键进行查询获得的冲突记录。第一查询结果也可以包括表冲突记录(记作查询结果A)和索引冲突记录(记作查询结果B)。索引冲突记录可以是根据全局唯一索引键对外置索引表进行查询获得的冲突记录。name,date)values(1,'a','20190803’)。若第一查询结果指示数据表和外置索引表均无冲突记录,则直接根据该SQL语句,生成分布式事务。该分布式事务中的第一预提交任务指示将该SQL语句指示的待处理记录插入到数据表中;该分布式事务的第二预提交任务指示将该SQL语句指示的待处理记录插入到外置索引表中。[0099]若第一查询结果指示数据表和/或外置索引表中存在冲突记录,则本领域技术人员可以根据需要配置适当的操作,如仍然根据SQL语句生成分布式事务或者执行其他操作,本实施例对此不作限定。[0100]情况二:SQL语句为插入语句,且包括指示放弃冲突记录的第一子句(如ignore子句)。此时,根据所述第一查询结果和所述SQL语句,生成所述分布式事务包括:若确定所述SQL语句为包括指示放弃冲突记录的第一子句的插入语句,则根据所述SQL语句指示的所述待处理记录和所述第一查询结果,确定所述待处理记录中与第一查询结果不匹配的第一记录;生成指示向所述数据表中插入所述第一记录的所述第一预提交任务,和,指示向所述外置索引表中插入所述第一记录的所述第二预提交任务;根据所述第一预提交任务和所述第二预提交任务生成所述分布式事务。[0101]其中,第一记录为SQL语句指示的待处理记录与第一查询结果的差集。换而言之为既不与数据表中的记录冲突,又不与外置索引表中的记录冲突的记录。[0102]情况三:SQL语句为插入语句,且包括指示更新记录的第二子句(如onduplicatekeyupdate子句)。此时,所述根据所述第一查询结果和所述SQL语句,生成所包括:若确定所述SQL语句为包括指示更新记录的第二子句的插入语句时,则获取所述SQL语句指示的所述待处理记录中与所述第一查询结果不匹配的第一记录和与所述第一查询结果匹配的第二记录;生成指示向所述数据表中插入所述第一记录,且使用所述第二记录更新所述数据表中的所述第一查询结果的所述第一预提交任务;以及,生成指示向所述外置索引表中插入所述第一记录,且使用所述第二记录更新所述外置索引表中所述第一查询结果的所述第二预提交任务;根据生成的所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。[0103]由于第二子句指示将待处理记录中未冲突记录插入,并使用待处理记录更新冲突记录,因此,在生成分布式事务时,需要先确定待处理记录中与第一查询结果不匹配的第一[0104]其中,若第一查询结果中既包括表冲突记录(即查询结果A)又包括索引表冲突记录(即查询结果B),则第一记录中的记录可以分为集合X和集合Y两个集合,集合X中的记录为不与查询结果A匹配的记录,集合Y为不与查询结果B匹的记录;同理,第二记录可以分为集合M和集合N,集合M中的记录为与查询结果A匹配的记录,集合N中的记录为与查询结果B匹配的记录。[0105]确定第一记录和第二记录之后,在根据所述第一记录、所述第二记录和所述SQL语记录更新数据表中的查询结果A的第一预提交任务。在根据所述第一记录、所述第二记录和所述SQL语句,生成第二预提交任务时,生成指示向外置索引表中插入集合M中记录、且使用集合N中的记录更新外置索引表中的查询结果B的第二预提交任务。述SQL语句,生成所述分布式事务包括:若确定所述SQL语句为用于指示进行记录替换的替换语句,则根据所述第一查询结果、所述SQL语句及所述SQL语句指示的待处理记录,生成所述第一预提交任务和所述第二预提交任务,并根据所述第一预提交任务和所述第二预提交[0107]其中,由于替换语句的执行需要先执行删除操作,再执行插入操作,因此所述第一预提交任务指示删除所述数据表中所述第一查询结果,并向所述数据表中插入所述待处理记录;所述第二预提交任务指示删除所述外置索引表中所述第一查询结果,并向所述外置索引表中插入所述待处理记录。[0108]具体例如,若第一查询结果包括表冲突记录(即查询结果A)和索引冲突记录(即查询结果B),则生成的第一预提交任务用于指示删除数据表中查询结果A,并将待处理记录插入数据表中。生成的第二预提交任务用于指示删除外置索引表中查询结果B,并将待处理记录插入外置数据表中。[0109]通过本实施例,确保了在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题。[0110]此外,在生成分布式事务时,针对不同的SQL语句生成指示执行不同动作的第一预提交任务和第二预提交任务,进一步提升了方案适用性。[0111]本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,[0112]实施例五[0113]参照图5,示出了根据本发明实施例五的一种数据处理方法的步骤流程图。[0114]本实施例的数据处理方法包括前述的步骤S102~步骤S106。根据需要其可以包括或不包括步骤S108。其中,所述步骤S102可以采用实施例一或三的实现方式实现,或者采用其他任何适当的实现方式实现。[0115]在本实施例中,在所述步骤S102采用实施例三中的实现方式实现时,所述子步骤S1023即根据所述判断结果确定查询语句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务的第二种实现方式如下:[0116]本实施例中,子步骤S1023包括:若所述判断结果指示所述SQL语句不包含插入操作,则根据所述SQL语句生成第二查询语句,其中,所述第二查询语句用于指示获取所述数据表中符合所述SQL语句中的条件子句的记录;根据所述第二查询语句获得第二查询结果;根据所述第二查询结果和所述SQL语句,生成所述分布式事务。[0117]如实施例三中所述,在判断结果指示SQL语句包含插入操作时,其通常为更新语句或删除语句等,由于这些语句的操作对象是数据表和外置索引表中已有记录,因此第二查询语句可以根据SQL语句中的条件子句(例如为where子句)生成,用于获得满足条件子句的件子句生成的第二查询语句为:SELECTid[0118]下面例举几种根据第二查询结果和SQL语句,生成所述分布式事务的情况。生成所述分布式事务包括:当所述SQL语句为更新语句时,根据所述SQL语句生成第一预提交任务和所述第二预提交任务;根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。[0120]其中,所述第一预提交任务指示根据所述SQL语句更新所述数据表中第二查询结果;所述第二预提交任务指示根据所述SQL语句更新所述外置索引表中与第二查询结果对应的记录。这样可以保证数据表与外置索引表的记录同步被更新,以确保两者的数据一致性。[0123]此时,根据第二查询结果和SQL语句生成的第一预提交任务使用的MySQL数据源可以识别的语法可以表示为:UPDATEtbSET='a'WHEREidIN(1,2),用于指示更新数据表中第二查询结果。[0124]若外置索引表使用的数据源与数据表使用数据源相同,则第二预提交任务中只需把数据表名tb修改为外置索引表的表名即可。若外置索引表使用的数据源与数据表使用的数据源不同,则可以生成外置索引表的数据源的语法能够识别的表示方式,以适应数据表和外置索引表采用不同数据源的情况。生成所述分布式事务,包括:当所述SQL语句为删除语句时,根据所述SQL语句生成第一预提交任务和所述第二预提交任务;根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。[0126]其中,所述第一预提交任务指示根据所述SQL语句删除所述数据表中第二查询结果;所述第二预提交任务指示根据所述SQL语句删除所述外置索引表中与第二查询结果对应的记录,以保证数据表和外置索引表的数据一致性。[0127]通过本实施例,数据处理请求确保了在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题。[0128]此外,通过生成查询语句查询数据表的记录,根据查询结果确定需要进行数据处理的记录,并根据查询结果生成同步的针对数据表的第一预提交任务和针对外置索引表的第二预提交任务,解决了不支持分布式数据库系统的外置全局二级索引的问题。[0129]由于是代理层根据数据处理请求生成分布式事务中的第一预提交任务和第二预提交任务,在生成第二预提交任务时将SQL语句转换为目标数据源(即外置索引表)能识别的语句,因此可以解决现有技术中,只能写入一种数据源的问题,避免只能写入行存数据源,不支持列存数据源的问题。本实施例的数据处理方法可以由任意适当的具有数据处理[0131]参照图6,示出了根据本发明实施例六的一种数据处理装置的结构框图。[0132]本实施例的数据处理装置包括:事务生成模块602,用于接收用于指示针对数据库的数据处理请求,生成对应的分布式事务,其中,所述分布式事务包括指示针对数据表的第一预提交任务,和,指示针对与所述数据表对应的外置索引表的第二预提交任务;信息接收模块604,用于接收所述数据库返回的所述第一预提交任务的第一执行状态信息、和、所述第二预提交任务的第二执行状态信息;提交模块606,用于若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式事务以完成所述数据表和所述外置索引表的数据处理。[0133]通过本实施例,根据接收的数据处理请求生成对应的分布式事务,以指示数据库对数据表和外置索引表进行处理,并根据第一执行状态信息和第二执行状态信息确定数据表和外置状态表是否可以执行成功,并在第一执行状态信息和第二执行状态信息均指示执行成功时,才提交分布式事务对数据表和外置索引表执行数据处理,确保了在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题。[0135]参照图7,示出了根据本发明实施例七的一种数据处理装置的结构框图。[0136]本实施例的数据处理装置包括:事务生成模块702,用于接收用于指示针对数据库的数据处理请求,生成对应的分布式事务,其中,所述分布式事务包括指示针对数据表的第一预提交任务,和,指示针对与所述数据表对应的外置索引表的第二预提交任务;信息接收模块704,用于接收所述数据库返回的所述第一预提交任务的第一执行状态信息、和、所述第二预提交任务的第二执行状态信息;提交模块706,用于若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式事务以完成所述数据表和所述外置索引表的数据处理。[0137]可选地,所述装置还包括:回滚模块708,用于若所述第一执行状态信息和所述第二执行状态信息中至少一个指示任务执行失败,则生成回滚消息,以通过所述回滚消息指示对所述第一预提交任务和/或所述第二预提交任务进行回滚操作。[0138]可选地,所述事务生成模块702包括:第一获取模块7021,用于获取所述数据处理请求中的SQL语句;第一确定模块7022,用于判断所述SQL语句是否为包含插入操作的SQL语句;第一生成模块7023,用于根据所述判断结果确定查询语句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务。[0139]可选地,所述第一生成模块7023包括:第二确定模块7023a,用于若所述判断结果一查询语句用于指示查询与所述SQL语句指示的待处理记录冲突的记录;第二获取模块7023b,用于根据所述第一查询语句获得第一查询结果;第二生成模块7023c,用于根据所述[0140]可选地,所述第二生成模块7023c包括:第三确定模块,用于若确定所述SQL语句为包括指示放弃冲突记录的第一子句的插入语句,则根据所述SQL语句指示的所述待处理记录和所述第一查询结果,确定所述待处理记录中与所述第一查询结果不匹配的第一记录;第三生成模块,用于生成指示向所述数据表中插入所述第一记录的所述第一预提交任务,和,指示向所述外置索引表中插入所述第一记录的所述第二预提交任务;第四生成模块,用于根据所述第一预提交任务和所述第二预提交任务生成所述分布式事务。[0141]可选地,所述第二生成模块7023c包括:第四确定模块,用于若确定所述SQL语句为包括指示更新记录的第二子句的插入语句时,则获取所述SQL语句指示的所述待处理记录中与所述第一查询结果不匹配的第一记录和与所述第一查询结果匹配的第二记录;第五生成模块,用于生成指示向所述数据表中插入所述第一记录,且使用所述第二记录更新所述数据表中的所述第一查询结果的所述第一预提交任务;以及,第六生成模块,用于生成指示向所述外置索引表中插入所述第一记录,且使用所述第二记录更新所述外置索引表中所述第一查询结果的所述第二预提交任务;第七生成模块,用于根据生成的所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。[0142]可选地,所述第二生成模块7023c包括:第八生成模块,用于若确定所述SQL语句为用于指示进行记录替换的替换语句,则根据所述第一查询结果、所述SQL语句及所述SQL语句指示的待处理记录,生成所述第一预提交任务和所述第二预提交任务,并根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务;其中,所述第一预提交任务指示删除所述数据表中所述第一查询结果,并向所述数据表中插入所述待处理记录;所述第二预提交任务指示删除所述外置索引表中所述第一查询结果,并向所述外置索引表中插入所述待处理记录。[0143]可选地,所述第一查询结果包括表冲突记录,或者,所述第一查询结果包括表冲突记录和索引冲突记录。[0144]可选地,所述第一生成模块7023包括:第九生成模块7023d,用于若所述判断结果查询语句用于指示获取所述数据表中符合所述SQL语句中的条件子句的记录;第三获取模块7023e,用于根据所述第二查询语句获得第二查询结果;第十生成模块7023f,用于根据所述第二查询结果和所述SQL语句,生成所述分布式事务。[0145]可选地,所述第十生成模块7023f包括:第十一生成模块,用于当所述SQL语句为更新语句时,根据所述SQL语句生成第一预提交任务和所述第二预提交任务;其中,所述第一预提交任务指示根据所述SQL语句更新所述数据表中第二查询结果;所述第二预提交任务指示根据所述SQL语句更新所述外置索引表中与第二查询结果对应的记录;第十二生成模块,用于根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。[0146]可选地,所述第十生成模块7023f包括:第十三生成模块,用于当所述SQL语句为删除语句时,根据所述SQL语句生成第一预提交任务和所述第二预提交任务;其中,所述第一预提交任务指示根据所述SQL语句删除所述数据表中第二查询结果;所述第二预提交任务指示根据所述SQL语句删除所述外置索引表中与第二查询结果对应的记录;第十四生成模块,用于根据所述第一预提交任务和所述第二预提交任务,生成所述分布式事务。[0147]可选地,所述第一获取模块7021包括:替换模块7021a,用于从所述数据处理请求中获取原始SQL语句,并将所述原始SQL语句中的动态函数替换为常量;第十五生成模块7021b,用于根据替换结果生成替换后的SQL语句。[0148]可选地,所述第十五生成模块7021b包句确定待处理的所述数据表,并确定所述数据表的主键是否为自增主键,且原始SQL语句中是否存在包含插入操作的语句;第十六生成模块,用于若是自增主键且存在包含插入操作的语句,则生成全局唯一的自增值,并根据所述自增值和所述替换结果生成替换后的SQL语[0149]需要说明的是,前述的第四生成模块、第七生成模块、第八生成模块、第十二生成模块和第十四生成模块可以是同一个模块,也可以是多个不同的模块。[0150]本实施例的数据处理装置用于实现前述多个方法实施例中相应的数据处理方法,并具有相应方法实施例的有益效果,在此不再赘述。[0152]参照图8a,示出了根据本发明的实施例八的一种数据库系统的结构示意图。[0153]如图8a所示,数据库系统包括代理层、存储层和至少一个数据库层,所述至少一个数据库层上配置有多个数据库实例,各所述数据库实例均与至少一个所述存储层连接,所述存储层用于存储所述数据库层中的数据;所述代理层用于执行前述的数据处理方法指示的操作,以向至少一个所述数据库层中的至少一个所述数据库实例发送所述分布式事务中的所述第一预提交任务和所述第二预提交任务;接收所述分布式事务的数据库层根据所述第一预提交任务和所述第二预提交任务,指示对应的数据库实例与存储层交互,以执行所述第一预提交任务和所述第二预提交任务;并且,向所述代理层返回对应的所述第一执行状态信息和所述第二执行状态信息。[0154]代理层可以部署在独立的服务器中,也可以部署在某一个或某几个数据库层中。在本实施例中,以代理层部署在独立的服务器中为例,代理层还用于获取针对数据库实例中的数据处理请求,并根据分库分表算法将所述数据处理请求路由到至少一个所述数据库实例上,以管理和操作所述多个数据库实例。[0155]数据库层可以是一个或多个,每个数据库层中可以包括一个或多个数据库实例,只需保证配置有多个数据库实例,从而可以分散数据处理压力即可。各数据库实例均对应连接有存储层,存储层用于存储数据表和外置索引表。[0156]需要说明的是,不同的数据库实例连接的存储层可以在同一存储磁盘上,也可以分布在不同的存储磁盘上。[0157]通过本实施例,可以确保在任意时刻数据表和外置索引表中数据均一致,解决了现有技术中最终一致方案中外置索引表存在与数据表中数据不一致的状态,导致用户通过外置索引表进行数据检索时会获得错误的检索结果的问题。[0158]下面结合图8b和图8c,对数据处理过程进行说明如下:[0159]代理层从客户端获取数据处理请求,例如为原始SQL语句,并根据数据处理请求开[0160]根据原始SQL语句,确定待处理的数据表,若需要,则填充待处理的数据表的自增字段。例如,待处理的数据表的主键是自增主键,且原始SQL语句中包含插入操作(如,包含insert语句等)的情况下,填充待处理的数据表的自增主键。若不需要,则可以省略该动作。[0161]若原始SQL语句中存在动态函数,则将原始SQL语句中的动态函数替换为常量,并生成替换后的SQL语句。例如,原始SQL语句中包含now()函数,则将now()替换为对应的当[0162]根据替换后的SQL语句,确定是否包含插入操作。其中,包含插入操作的SQL语句例[0163]在第一种情况中,若包含插入操作,则按主键和唯一键在数据表中查询冲突记录(也称为匹配记录)。并确认是否有全局唯一索引键,若有则按全局唯一索引键在外置索引表中查询冲突记录(也称为匹配记录)。若无全局唯一索引键,则可以省略该动作。[0164]在第一种情况中,子情况A,查询冲突记录后(可能存在冲突记录,也可能不存在冲突记录),若替换后SQL语句包含replace语句,则指示删除数据表和外置索引表中所有冲突记录,并指示将替换后SQL语句指示的所有记录插入到数据表和外置索引表中。在数据表和外置索引表返回的状态都指示处理成功的情况下,提交分布式事务。[0165]在第一种情况中,子情况B,查询冲突记录后,若替换后SQL语句包含onduplicatekeyupdate,则指示向数据表和外置索引表插入替换后的SQL语句指示的所有记录中与冲突记录不匹配的记录,并更新数据表和外置索引表中所有冲突记录。在数据表和外置索引表返回的状态都指示处理成功的情况下,提交分布式事务。[0166]在第一情况中,子情况C,查询冲突记录后,若替换后SQL语句包含ignore,则指示向数据表和外置索引表插入替换后的SQL语句指示的所有记录中与冲突记录不匹配的记录;若替换后SQL语句不包含ignore,则指示向数据表和外置索引表插入替换后的SQL语句指示的所有记录。在数据表和外置索引表返回的状态都指示处理成功的情况下,提交分布式事务。[0167]在第二种情况中,若未包含插入操作,则按替换后的SQL语句中的条件子句在数据表中查询匹配记录。在查询匹配记录后,若替换后的SQL语句为更新语句,则指示更新数据表和外置索引表中的匹配记录,在数据表和外置索引表返回的状态都指示处理成功的情况下,提交分布式事务;若替换后的SQL语句不为更新语句,则指示删除数据表和外置索引表中的匹配记录,在数据表和外置索引表返回的状态都指示处理成功的情况下,提交分布式事务。[0168]通过上述过程,可以保证对数据表和外置索引表的数据处理一致,从而保证两者数据的一致性。[0170]参照图9,示出了根据本发明实施九的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。[0173]处理器802、通信接口804、以及存储器806通过通信总线808完成相互间的通信。[0174]通信接口804,用于与其它电子设备如终端设备或服务器进行通信。[0175]处理器802,用于执行程序810,具体可以执行上述数据处理方法实施例中的相关[0176]具体地,程序810可以包括程序代码,该程序代码包括计算机操作指令。[0177]处理器802可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。[0178]存储器806,用于存放程序810。存储器806可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。[0179]程序810具体可以用于使得处理器802执行以下操作:接收用于指示针对数据库的数据处理请求,生成对应的分布式事务,其中,所述分布式事务包括指示针对数据表的第一预提交任务,和,指示针对与所述数据表对应的外置索引表的第二预提交任务;接收所述数据库返回的所述第一预提交任务的第一执行状态信息、和、所述第二预提交任务的第二执行状态信息;若所述第一执行状态信息和所述第二执行状态信息均指示任务执行成功,则提交所述分布式事务以完成所述数据表和所述外置索引表的数据处理。[0180]在一种可行方式中,程序810还用于使得处理器802若所述第一执行状态信息和所述第二执行状态信息中至少一个指示任务执行失败,则生成回滚消息,以通过所述回滚消息指示对所述第一预提交任务和/或所述第二预提交任务进行回滚操作。[0181]在一种可行方式中,程序810还用于使得处理器802在接收用于指示对数据库中的数据表进行处理的数据处理请求,生成对应的分布式事务时,获取所述数据处理请求中的句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务。[0182]在一种可行方式中,程序810还用于使得处理器802在根据所述判断结果确定查询语句,并根据所述查询语句和所述SQL语句生成对应的所述分布式事务时,若所述判断结果一查询语句用于指示查询与所述SQL语句指示的待处理记录冲突的记录;根据所述第一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论