CN113297305A - 会话状态处理方法、装置、设备和存储介质 - Google Patents
会话状态处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113297305A CN113297305A CN202010688242.XA CN202010688242A CN113297305A CN 113297305 A CN113297305 A CN 113297305A CN 202010688242 A CN202010688242 A CN 202010688242A CN 113297305 A CN113297305 A CN 113297305A
- Authority
- CN
- China
- Prior art keywords
- session
- connection
- database
- session state
- processing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 304
- 238000000034 method Methods 0.000 claims abstract description 101
- 239000003795 chemical substances by application Substances 0.000 description 95
- 230000008569 process Effects 0.000 description 55
- 238000010586 diagram Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种会话状态处理方法、装置、设备和存储介质,以解决现有技术中,为了保证Session状态的正确性,将前后端连接锁定,导致后端连接无法被其他前端连接复用的问题。所述方法包括:向数据库发送第一连接请求;接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;根据所述会话追踪信息更新所述第一会话的第一会话状态信息,保证第一会话的Session状态的正确性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种会话状态处理方法和装置、一种电子设备和一种存储介质。
背景技术
在数据库领域,为了减少后端连接(后端连接即数据库代理到数据库的连接)的数量,对于使用数据库长连接以及短连接的服务,经常采用多路复用连接池的方式来选取后端连接。
目前,当收到来自前端(客户端到数据库代理)的连接请求时,多路复用连接池的实现方法中,通常直接选取后端连接执行请求。然而,不同请求所在会话(Session)状态不同,如果直接复用后端连接可能会造成解码问题。比如,一个Session字符集设定为Latin1(Latin1是单字节编码ISO-8859-1的别名)的前端连接,如果复用了字符集为通用转换格式(Universal Character Set/Unicode Transformation Format,UTF-8)的后端连接,则会造成获取的文本数据在不能在客户端进行解码。因此,选取后端连接的过程中,需要保证Session状态的正确性。
现有技术中,为了保证Session状态的正确性,通常将前后端连接锁定。数据库代理在收到客户端的连接请求后,通过对收到的结构化查询语言(Structured QueryLanguage,SQL)进行解析,得到本次请求的Session状态改变语句。在此过程中,数据库代理为了保证Session状态的一致,会将前后端连接锁定。然而,将前后端连接锁定后,会导致后端连接无法被其他前端连接复用,降低后端连接的可复用率。
发明内容
本申请实施例提供了一种会话状态处理方法,以解决现有技术中,为了保证Session状态的正确性,将前后端连接锁定,导致后端连接无法被其他前端连接复用的问题。
相应的,本申请实施例还提供了一种会话状态处理装置、一种电子设备以及一种存储介质,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种会话状态处理方法,所述方法包括:
向数据库发送第一连接请求;
接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
本申请实施例公开了一种会话状态处理方法,所述方法包括:
接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的。
本申请实施例公开了一种会话状态处理方法,所述方法包括:
接收并处理数据库代理的第一连接请求;
向所述数据库代理反馈处理结果,并在所述处理结果中携带会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话命令的第一类型、第一关键字以及第一值。
本申请实施例还公开了一种会话状态处理装置,所述装置包括:
请求发送模块,用于向数据库发送第一连接请求;
第一信息获取模块,用于接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;
状态更新模块,用于根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
本申请实施例还公开了一种会话状态处理装置,所述装置包括:
第三信息获取模块,用于接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
后端连接匹配模块,用于根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的。
本申请实施例还公开了一种会话状态处理装置,所述装置包括:
请求接收模块,用于接收并处理数据库代理的第一连接请求;
结果反馈模块,用于向所述数据库代理反馈处理结果,并在所述处理结果中携带会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话命令的第一类型、第一关键字以及第一值。
本申请实施例还公开了一种数据处理系统,包括:客户端、数据库代理和数据库;
其中,所述数据库代理用于:
向所述数据库发送第一连接请求;
接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;
根据所述会话追踪信息更新所述第一会话的第一会话状态信息;
接收所述客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的;
所述数据库用于:
接收并处理所述数据库代理的第一连接请求;
向所述数据库代理反馈处理结果,并在所述处理结果中携带所述会话追踪信息。
本申请实施例还公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的方法。
本申请实施例还公开了一个或多个机器可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的方法。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,数据库在向数据库代理响应第一连接请求时,携带会话追踪信息;数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
附图说明
图1是本申请实施例的一种会话状态处理的应用示意图之一;
图2是本申请实施例的一种会话状态处理的应用示意图之二;
图3是本申请的另一种会话状态处理方法实施例的步骤流程图;
图4是本申请的又一种会话状态处理方法实施例的步骤流程图;
图5是本申请的又一种会话状态处理方法实施例的步骤流程图;
图6是本申请的一种会话状态处理装置实施例的结构框图;
图7是本申请的另一种会话状态处理装置实施例的结构框图;
图8是本申请的又一种会话状态处理装置实施例的结构框图;
图9是本申请的另一种会话状态处理装置实施例的结构框图;
图10是本申请一实施例提供的数据处理系统的结构示意图;
图11是本申请一实施例提供的装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
本申请实施例中可应用于数据库等数据处理领域,对数据处理领域的客户端提供数据的新增、查询、更新以及删除等操作;根据所述会话追踪信息维护会话状态信息,控制前后端连接的会话状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
如图1所示,图1示出了本申请实施例的一应用场景示意图。图1中客户端1和客户端2为数据库的客户端,客户端需要连接数据库时,首先向数据库代理发送连接请求,并建立连接;客户端与数据库代理所建立的连接为前端连接,如图1中前端连接1、前端连接2所示;可以理解的是,每个客户端与数据库代理可以建立一个或多个前端连接,图1中仅示意了一个前端连接。本申请实施例中,数据库代理可与数据库代理服务器互换,数据库代理可以是跳板机(Jump Server,又称堡垒机)。
在客户端与数据库保持连接时,可以使用长连接服务或者短连接服务。具体地,长连接服务即长时间保持客户端与服务端的连接状态,长连接在没有数据通信时,定时发送数据包,以维持连接状态;长连接主要用于在少数客户端与数据库的频繁通信的场景中,此场景中如果用短连接频繁通信,容易引发会发生套接字(Socket)出错,并且频繁创建Socket连接也是对资源的浪费。但是对于服务端来说,长连接也会耗费一定的资源,需要专门的线程(unix环境下可以用进程管理)来负责维护连接状态。因此,长连接和短连接的选择要视情况而定。
使用数据库长连接服务时,可能会出现客户端与数据库建立大量空闲连接的场景。例如,多个客户端直接连接数据库,与数据库建立了大量连接的情况,由于并非所有连接处于活跃态,导致数据库同时接收的请求数并发量会远小于连接数量。这种情况下,维持大量空闲连接对于数据库本身而言,其开销很大,因此,这部分连接由数据库代理进行保持,以减少与数据库建立的连接数量。
对于使用短连接的服务,其通过对数据库长连接进行多路复用,以提高数据库连接的利用效率;当处理连续的短连接请求时,数据库代理可复用已有的长连接,避免重复建立连接,减少建连的资源消耗。
以查询数据为例,客户端向需查询数据时,客户端向数据库代理发送连接请求,请求建立前端连接;数据库代理接收连接请求后,为上述前端连接匹配后端连接;在匹配的过程中,需使用Session状态相同的后端连接,匹配前端连接。因此,需要保证后端连接的Session状态的正确性。
具体地,Session用于数据库对客户端的状态管理,客户端将实际的数据保存在数据库中;对于每个客户端的数据,以Session ID作为唯一的key。数据库通过这个key来确认客户端的身份。Session状态例如当前连接的参数、变量以及临时表等。每个Session的状态互相独立。
在步骤101中,数据库代理向数据库发送第一连接请求。
所述第一连接请求用于请求与数据库建立连接,即后端连接;当前端连接与后端连接匹配后,客户端可以执行数据处理操作,数据处理操作例如新增、查询、更新以及删除等操作。以一个具体的应用场景来说,客户端在进行用户画像分析,可预先将大量的用户的参数,例如生理参数、行为数据等用户数据存储在数据库中,数据库为该客户端建立数据表,用于存储用户数据;后续客户端需要进行数据处理操作时,首先向数据路代理发送前端连接请求,通过数据库代理建立客户端与数据库之间的连接。
可选地,如图1所示,客户端1在向数据库代理发送前端连接1的连接请求时,会携带所述前端连接的Session状态。
数据库代理接收所述连接请求后,根据前端连接的Session状态,生成第一连接请求并发送给数据库,比如生成设置Session状态的报文,将所述报文携带在第一连接请求中,使得第一连接请求的Session状态与前端连接保持一致。
数据库代理向数据库发送第一连接请求所使用的后端连接,可以是复用的其他长连接的后端连接,也可以与数据库建立一个连接。比如,若客户端向数据库代理发送连接请求时所使用的前端连接已绑定有后端连接,则使用该后端连接发送所示第一连接请求;若未绑定,则数据库代理建立与数据库之间的连接以发送所示第一连接请求。
在步骤102中,数据库代理接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值。
其中,数据库在接收到第一连接请求之后,响应所述第一连接请求,处理第一连接请求所请求的数据处理操作,得到处理操作的数据处理结果;数据处理结果即针对数据处理操作的处理结果,比如数据处理操作为增加或删除操作时,数据处理结果即是否完成增加或删除操作;此外,处理结果中,还可包括数据部分,即所述处理操作对应的结果数据,比如数据处理操作为查询操作,则数据处理结果为所查询到的查询数据。
处理结果中,除数据处理结果之外,还包括会话追踪信息(Session Track);会话追踪信息为数据库报文协议中,服务端(即数据库)向客户端发送报文中的一个字段,用于保持数据库与客户端之间的连接状态;会话追踪信息可包括已经执行的会话命令(SessionCommand)的类型、关键字和值。
具体地,类型代表会话命令的种类,如系统变量,用户变量或是创建临时表等类型。关键字代表会话命令的名称,如对于变量,则关键字为变量名;对于创建临时表,关键字为表名。值代表会话命令的内容,如对于变量,值为变量的值;对于创建临时表,值为临时表的建表语句。每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态。
结合图1,数据库在处理来自数据库代理通过后端连接1发送的第一连接请求后,处理第一连接请求中的数据处理操作,得到数据处理结果;并获取所述第一连接请求对应的第一会话的会话追踪信息,将会话追踪信息与数据处理结果一并作为处理结果发送至数据库代理。
在步骤103中,数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
此外,现有技术中,数据库代理采用白名单的方式判断Session状态改变的合法性;使用一个Session状态的白名单记载合法参数,对于合法参数直接默认Session状态的改变合法;而对于白名单外的参数,不进行Session状态的判断,由此带来的问题是,如果前端连接在选取后端连接时不匹配会话状态是否一致,可能会出现非预期内的异常问题。而本申请实施例中,通过会话追踪信息实现了对前后端连接会话状态的记录;数据库代理在为前端连接匹配后端连接时,可将前端连接与后端连接进行会话状态的匹配,以保证了Session内部的状态一致,从而避免上述问题。
现有技术中,通过解析SQL语句的方法得到会话命令,存在一定的局限性;比如用户使用"set a=@b;"这种语句,即将b变量的值赋给a,此时法得知a的准确值;如果要保证Session状态的正确性,只能将后端连接与前端连接锁定,规避可能产生的非预期结果,但这样就大大降低了连接的可复用率。而作为SQL语句的真正执行者,数据库可确定准确的值,因此,通过数据库返回的会话追踪信息,可以获取会话命令准确的值,无需锁定连接,便可保证连接的可复用率。
在一个可选实施例中,数据库代理执行步骤103时包括:
对所述会话追踪信息进行数据处理,得到第一处理数据,所述第一处理数据的数据形式为Map数据结构;
将所述第一会话的会话状态信息更新为所述第一处理数据。
参见图1,数据库代理在接收到数据库返回的处理结果,并从处理结果中提取会话追踪信息之后,需要对会话追踪信息进行保存,作为第一会话的会话状态信息。由于会话追踪信息作为一个完整的字符串,其占用内存较大,为了提升效率,可将会话追踪信息转换为Map数据结构的第一处理数据。Map数据结构是一种可高效进行增、删、改、查的简单数据结构;Map数据结构以key-value的形式保存数据,根据key来查找value的值;key值唯一,在同一个Map容器中不能重复。
这样,数据库代理将第一会话的会话状态信息更新为第一处理数据,以减小大量会话的会话状态信息的内存占用;同时,Map数据结构的字符形式相对于原始字符串更为简要,在为前端连接匹配后端连接的过程中,通过匹配Map数据结构的会话状态信息,相较于匹配原始字符串,可提高匹配效率。
在一个可选实施例中,数据库代理对所述会话追踪信息进行数据处理,得到第一处理数据时,对所述第一类型、第一关键字进行哈希处理,得到第一哈希值;以及,对所述第一值进行哈希处理,得到第二哈希值;
其中,所述第一哈希值为所述第一处理数据的Map关键字,所述第二哈希值所述第一处理数据的Map值。
具体地,第一类型代表第一会话的会话命令的种类,如系统变量,用户变量或是创建临时表等类型;第一关键字代表第一会话的会话命令的名称,如对于变量,则第一关键字为变量名;对于创建临时表,第一关键字为表名。第一值代表第一会话的会话命令的内容,如对于变量,第一值为变量的值;对于创建临时表,第一值为临时表的建表语句。在对所述会话追踪信息进行数据处理的过程中,将第一类型、第一关键字进行哈希处理,得到第一哈希值,也即第一哈希值为(第一类型+第一关键字)的哈希值;对所述第一值进行哈希处理,得到第二哈希值,也即第二哈希值为第一值的哈希值。
分别得到第一哈希值和第二哈希值之后,将第一哈希值作为Map关键字(即value),将第二哈希值作为Map值(即key),这样,便得到了完整的Map数据结构;以key-value的形式保存会话状态信息,在后续匹配会话状态信息时,可根据key来查找value的值,即根据类型+关键字查找值,得到类型、关键字、值,便可唯一确定一条会话命令。
在数据库代理处理前端连接的过程中,接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
数据库代理的客户端即数据库的客户端,如图1中客户端1和客户端2所示,客户端需要连接数据库时,比如进行数据的新增、查询、更新以及删除等操作,首先向数据库代理发送连接请求,并建立连接;客户端与数据库代理所建立的连接为前端连接,如图1中前端连接1、前端连接2所示;该前端连接可以是长连接或者短连接,长连接与数据库建立或保持后端连接,短连接可复用长连接的后端连接,可避免重复建立连接,减少建连的资源消耗。
数据库代理接收到来自客户端的第二连接请求时,对第二连接请求进行解析,获得其中的第二会话的第二会话状态信息,第二会话状态信息即前端连接的会话状态信息,数据库代理获取第二会话状态信息后,匹配包括所述第二会话状态信息的后端连接,以保证前后端连接状态一致。
具体地,所述第二会话状态信息至少包括第二类型、第二关键字以及第二值;第二类型代表第二会话的会话命令的种类,如系统变量,用户变量或是创建临时表等类型;第二关键字代表第二会话的会话命令的名称,如对于变量,则第二关键字为变量名;对于创建临时表,第二关键字为表名。第二值代表第二会话的会话命令的内容,如对于变量,第二值为变量的值;对于创建临时表,第二值为临时表的建表语句。相应的,所述第二会话状态信息也可以转换为Map数据结构,则第二会话状态信息的Map关键字为(第二类型+第二关键字)的哈希值。
所述后端连接对应的目标会话的目标会话状态信息包括所述第二会话状态信息,也后端连接的会话命令需要包括前端连接的会话命令,且对应的值相同。比如,第二会话的会话命令状态为“a=1,b=1”,那么对于会话状态信息为“a=1,b=2”或“a=1,c=1”的后端连接不能与第二会话的前端连接匹配;而对于会话状态信息为“a=1,b=1”或“a=1,b=1,c=1”的后端连接,其可以匹配第二会话的前端连接。
在一个可选实施例中,数据库代理根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接包括:
对所述第二会话状态信息进行数据处理,得到第二处理数据;所述第二处理数据的数据形式为Map数据结构;
根据所述第二处理数据为所述第二连接请求匹配目标后端连接。
数据库代理首先对第二会话状态信息进行数据处理,得到第二处理数据,第二处理数据的数据形式为Map数据结构;然后根据所述第二处理数据为所述第二连接请求匹配目标后端连接;对于两个Map数据,分别匹配value以及key。
具体地,所述第二处理数据中包括:对所述第二类型、第二关键字进行第三数据处理得到的第三哈希值;以及,对所述第二值进行第四数据处理得到的第四哈希值;也即第三哈希值为(第二类型+第二关键字)的哈希值,第四哈希值为第二值的哈希值。
这样,将所述第三哈希值作为所述第二处理数据的Map关键字,所述将第四哈希值作为所述第二处理数据的Map值,所述目标会话状态信息包括所述第三哈希值以及第四哈希值。可选地,数据库代理在计算得到每个第二会话的第三哈希值以及第四哈希值后,可存储所述第三哈希值以及第四哈希值,以避免重复计算。
在一个可选实施例中,在数据库代理为第二会话匹配后端连接的过程中,将第二会话状态信息处理得到Map数据结构的第二处理数据,然后将第二处理数据中的与可用的后端连接的第一处理数据相匹配,也即将第三哈希值、第四哈希值分别与第一哈希值、第二哈希值相匹配,得到匹配的后端连接,作为第二会话的后端连接。由于Session状态仅会在执行会话命令时改变,仅需要在会话命令更新时计算哈希值,而在匹配连接过程中。只需要比较转换后的哈希值是否相同即可,无需重复计算哈希值。
在匹配过程中,数据库代理还判断所述第二会话是否预先匹配有后端连接,比如在客户端首次与数据库建立连接时,成功匹配后端连接,则数据库代理可以记录该后端连接与前端连接之间的匹配关系。
具体地,数据库代理在获取所述第二连接请求对应的第二会话的第二会话状态信息之后,若所述第二会话匹配有历史后端连接,则为所述第二连接请求匹配所述历史后端连接;或
若所述第二会话未匹配有历史后端连接,则根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
参见图1,数据库代理接收到客户端发送的第二连接请求之后,根据第二会话状态信息匹配后端连接,首先判断第二会话是否匹配有历史后端连接;比如,第二会话对应前端连接1,前端连接1与后端连接1具有预先匹配关系,则数据库代理直接将前端连接1与后端连接1;若第二会话未匹配历史后端连接,则数据库代理从连接池中为所述第二会话匹配后端连接。在匹配的过程中,使用与第二会话的Session状态相同的后端连接,以保证后端连接的Session状态的正确性。
在一个可选实施例中,数据库代理完成前后端连接,并根据所述会话追踪信息更新所述第一会话的第一会话状态信息之后,将所述处理结果中的数据处理结果发送至第一前端连接的客户端;数据处理结果即针对数据处理操作的处理结果,需要反馈给客户端,比如数据处理操作为增加或删除操作时,数据处理结果即是否完成增加或删除操作;此外,处理结果中,还可包括数据部分,即所述处理操作对应的结果数据,比如数据处理操作为查询操作,则数据处理结果为所查询到的查询数据。
所述第一前端连接为所述第一连接请求对应的前端连接,至此完成一次客户端至数据库的数据交互。
在一个可选实施例中,若所述第一会话对应的第一后端连接未被锁定且未处于事务中,将所述第一后端连接放入连接池中;或
若所述第一后端连接被锁定或所述第一后端连接处于事务中,保持与所述第一后端连接的连接状态。
在某种情况下,为了保证会话状态一致,需要将后端连接和前端连接绑定,该后端连接不可被其他前端连接继续复用,处于这种状态的后端连接被称为锁定连接,即该后端连接处于锁定状态,处于锁定状态的后端连接即不可复用连接。处于事务中即该后端连接被数据库事务(transaction)使用中,数据库事务指可访问数据库并可能操作各种数据项的一个数据库操作序列,事务由事务开始与事务结束之间执行的全部数据库操作组成;数据库操作序列中的各项操作,或者全部执行或者全部不执行,是一个不可分割的工作单位。对于支持事务的数据库,在同一事务中的请求需要保证一致性,所以如果当前连接处在事务里,需要保持当前后端连接不会被其他前端连接复用,直至当前事务结束。
在一个可选实施例中,数据库代理在将所述处理结果中的数据处理结果发送至第一前端连接的客户端发送至第一前端连接的客户端之后,或者更新第一后端连接的会话状态信息之后,若所述第一会话对应的第一后端连接未被锁定且未处于事务中,将所述第一后端连接放入连接池中,以被其他前端连接复用,提高后端连接的可复用率;或若所述第一后端连接被锁定或所述第一后端连接处于事务中,保持与所述第一后端连接的连接状态。
本申请实施例中,数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
作为本申请实施例的另一个方面,数据库接收并处理数据库代理的第一连接请求;向所述数据库代理反馈处理结果,并在所述处理结果中携带会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话命令的第一类型、第一关键字以及第一值。
所述第一连接请求用于数据库代理请求与数据库建立连接,即后端连接;当前端连接与后端连接匹配后,客户端可以通过数据库代理执行数据处理操作。客户端需要进行数据处理操作时,首先向数据路代理发送前端连接请求,通过数据库代理建立客户端与数据库之间的连接。
数据库接收第一连接请求后,解析第一连接请求,处理第一连接请求所请求的数据处理操作,得到处理操作的数据处理结果;数据处理结果即针对数据处理操作的处理结果,比如数据处理操作为增加或删除操作时,数据处理结果即是否完成增加或删除操作;此外,处理结果中,还可包括数据部分,即所述处理操作对应的结果数据,比如数据处理操作为查询操作,则数据处理结果为所查询到的查询数据。除数据处理结果之外,数据库还将所述会话追踪信息携带在处理结果中,一并发送给数据库代理,使得数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性。
会话追踪信息为数据库报文协议中,服务端(即数据库)向客户端发送报文中的一个字段,用于保持数据库与客户端之间的连接状态;会话追踪信息可包括已经执行的会话命令的类型、关键字和值。类型代表会话命令的种类,如系统变量,用户变量或是创建临时表等类型。关键字代表会话命令的名称,如对于变量,则关键字为变量名;对于创建临时表,关键字为表名。值代表会话命令的内容,如对于变量,值为变量的值;对于创建临时表,值为临时表的建表语句。每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态。
上述实施例中,客户端、数据库代理以及数据库所执行的步骤流程如图2所示,参见图2,在建立连接阶段,客户端1执行第1步,请求与数据代理建立连接。
第2步,数据库代理对客户端的身份进行校验,并在校验通过后与客户端建立连接。
在校验的过程中,可通过客户端的身份标识号校验;若校验不通过则返反馈客户端拒绝连接。
在发送请求阶段,第3步,客户端1向数据库代理发送第二连接请求,请求访问数据库。
第4步,数据库代理为第二连接请求匹配第一后端连接。
数据库代理首先判断第二连接请求的第二会话是否绑定有历史后端连接:若有,则为所述第二连接请求匹配历史后端连接;否则,根据第二会话的会话状态信息匹配后端连接。
第5步,数据库代理向数据库发送第一连接请求。
数据库接收到第一连接请求之后,解析第一连接请求,处理第一连接请求所请求的数据处理操作,得到处理操作的数据处理结果,并将会话追踪信息携带在处理结果中,一并发送给数据库代理。
第6步,数据库将处理结果发送至数据库代理。
数据库代理根据所述处理结果中会话追踪信息更新所述第一会话的第一会话状态信息。
第7步,数据库代理将数据处理结果发送给客户端1,至此完成了一次数据交互。
在关闭连接阶段,第8步,客户端1向数据库代理发送quit报文。
第9步,数据库代理处理后端连接,若第一后端连接未被锁定且未处于事务中,将所述第一后端连接放入连接池中;若第一后端连接被锁定或所述第一后端连接处于事务中,保持与所述第一后端连接的连接状态。
第10步,数据库代理向客户端1发送关闭连接的响应消息。
本申请实施例中,数据库在向数据库代理响应第一连接请求时,携带会话追踪信息;数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
在上述实施例的基础上,本申请实施例还提供了一种会话状态处理方法,能够控制前后端连接的会话状态一致,避免造成解码问题,且可提高后端连接的复用率。
参照图3,示出了本申请的一种会话状态处理方法实施例的步骤流程图。
可选地,所述方法应用于数据库代理;如图3所示,所述方法包括与以下步骤:
步骤301,向数据库发送第一连接请求。
所述第一连接请求用于请求与数据库建立连接,即后端连接;当前端连接与后端连接匹配后,客户端可以执行数据处理操作,数据处理操作例如新增、查询、更新以及删除等操作。以一个具体的应用场景来说,客户端在进行用户画像分析,可预先将大量的用户的参数,例如生理参数、行为数据等用户数据存储在数据库中,数据库为该客户端建立数据表,用于存储用户数据;后续客户端需要进行数据处理操作时,首先向数据路代理发送前端连接请求,通过数据库代理建立客户端与数据库之间的连接。
步骤302,接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值。
其中,数据库在接收到第一连接请求之后,响应所述第一连接请求,处理第一连接请求所请求的数据处理操作,得到处理操作的数据处理结果;数据处理结果即针对数据处理操作的处理结果,比如数据处理操作为增加或删除操作时,数据处理结果即是否完成增加或删除操作;此外,处理结果中,还可包括数据部分,即所述处理操作对应的结果数据,比如数据处理操作为查询操作,则数据处理结果为所查询到的查询数据。
处理结果中,除数据处理结果之外,还包括会话追踪信息(Session Track);会话追踪信息为数据库报文协议中,服务端(即数据库)向客户端发送报文中的一个字段,用于保持数据库与客户端之间的连接状态;会话追踪信息可包括已经执行的会话命令(SessionCommand)的类型、关键字和值。
具体地,类型代表会话命令的种类,如系统变量,用户变量或是创建临时表等类型。关键字代表会话命令的名称,如对于变量,则关键字为变量名;对于创建临时表,关键字为表名。值代表会话命令的内容,如对于变量,值为变量的值;对于创建临时表,值为临时表的建表语句。每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态。
步骤303,根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
一个示例中,所述根据所述会话追踪信息更新所述第一会话的第一会话状态信息的步骤,包括:
对所述会话追踪信息进行数据处理,得到第一处理数据,所述第一处理数据的数据形式为Map数据结构;
将所述第一会话的会话状态信息更新为所述第一处理数据。
另一个示例中,所述对所述会话追踪信息进行数据处理,得到第一处理数据的步骤,包括:
对所述第一类型、第一关键字进行哈希处理,得到第一哈希值;以及,对所述第一值进行哈希处理,得到第二哈希值;
其中,所述第一哈希值为所述第一处理数据的Map关键字,所述第二哈希值所述第一处理数据的Map值。
另一个示例中,所述方法还包括:
接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
另一个示例中,所述第二会话状态信息至少包括第二类型、第二关键字以及第二值;
所述后端连接对应的目标会话的目标会话状态信息包括所述第二会话状态信息。
另一个示例中,所述根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接的步骤,包括:
对所述第二会话状态信息进行数据处理,得到第二处理数据;所述第二处理数据的数据形式为Map数据结构;
根据所述第二处理数据为所述第二连接请求匹配目标后端连接。
另一个示例中,所述第二处理数据中包括:对所述第二类型、第二关键字进行第三数据处理得到的第三哈希值;以及,对所述第二值进行第四数据处理得到的第四哈希值;
所述目标会话状态信息包括所述第三哈希值以及第四哈希值。
另一个示例中,所述获取所述第二连接请求对应的第二会话的第二会话状态信息的步骤之后,所述方法包括:
若所述第二会话匹配有历史后端连接,则为所述第二连接请求匹配所述历史后端连接;或
若所述第二会话未匹配有历史后端连接,则根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
另一个示例中,所述根据所述会话追踪信息更新所述第一会话的第一会话状态信息的步骤之后,所述方法还包括:
将所述处理结果中的数据处理结果发送至第一前端连接的客户端发送至第一前端连接的客户端;所述第一前端连接为所述第一连接请求对应的前端连接。
另一个示例中,所述方法还包括:
若所述第一会话对应的第一后端连接未被锁定且未处于事务中,将所述第一后端连接放入连接池中;或
若所述第一后端连接被锁定或所述第一后端连接处于事务中,保持与所述第一后端连接的连接状态。
在本申请的一些可选实施例中,数据库代理向数据库发送第一连接请求后,接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值,每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态,因此,基于会话追踪信息可保证会话状态更新的实时性。在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,以实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可使后端连接处于可复用状态,提高后端连接的复用率,以解决现有技术中,为了保证Session状态的正确性,将前后端连接锁定,导致后端连接无法被其他前端连接复用的问题。
数据库代理在更新第一会话的会话状态信息时,还将会话追踪信息转换为Map数据结构的第一处理数据,以减小大量会话的会话状态信息的内存占用;同时,Map数据结构的字符形式相对于原始字符串更为简要,在数据库代理为前端连接匹配后端连接的过程中,依据前端连接的会话状态信息对应的Map数据结构,与后端连接的会话状态信息对应的Map数据结构进行匹配,相较于匹配原始字符串,可提高匹配效率。
数据库代理在匹配后端连接或释放后端连接时,会对后端连接的状态进行识别;若后端连接未被锁定且未处于事务中,则将该后端连接放入连接池中,以被其他前端连接复用,提高后端连接的可复用率;反之,若后端连接被锁定或处于事务中,保持与所述第一后端连接的连接状态,直至当前事务结束。
在上述实施例的基础上,本申请实施例还提供了一种会话状态处理方法,能够控制前后端连接的会话状态一致,避免造成解码问题,且可提高后端连接的复用率。
参照图4,示出了本申请的一种会话状态处理方法实施例的步骤流程图。
可选地,所述方法应用于数据库代理;如图4所示,所述方法包括与以下步骤:
步骤401,接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息。
数据库代理的客户端即数据库的客户端,如图1中客户端1和客户端2所示,客户端需要连接数据库时,比如进行数据的新增、查询、更新以及删除等操作,首先向数据库代理发送连接请求,并建立连接;客户端与数据库代理所建立的连接为前端连接,如图1中前端连接1、前端连接2所示;该前端连接可以是长连接或者短连接,长连接与数据库建立或保持后端连接,短连接可复用长连接的后端连接,可避免重复建立连接,减少建连的资源消耗。
数据库代理接收到来自客户端的第二连接请求时,对第二连接请求进行解析,获得其中的第二会话的第二会话状态信息,第二会话状态信息即前端连接的会话状态信息,数据库代理获取第二会话状态信息后,匹配包括所述第二会话状态信息的后端连接,以保证前后端连接状态一致。
步骤402,根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的。
具体地,所述第二会话状态信息至少包括第二类型、第二关键字以及第二值;第二类型代表第二会话的会话命令的种类,如系统变量,用户变量或是创建临时表等类型;第二关键字代表第二会话的会话命令的名称,如对于变量,则第二关键字为变量名;对于创建临时表,第二关键字为表名。第二值代表第二会话的会话命令的内容,如对于变量,第二值为变量的值;对于创建临时表,第二值为临时表的建表语句。相应的,所述第二会话状态信息也可以转换为Map数据结构,则第二会话状态信息的Map关键字为(第二类型+第二关键字)的哈希值,
所述后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息,也后端连接的会话命令需要包括前端连接的会话命令,且对应的值相同。比如,第二会话的会话命令状态为“a=1,b=1”,那么对于会话状态信息为“a=1,b=2”或“a=1,c=1”的后端连接不能与第二会话的前端连接匹配;而对于会话状态信息为“a=1,b=1”或“a=1,b=1,c=1”的后端连接,其可以匹配第二会话的前端连接。
数据库代理在接收到数据库返回的会话追踪信息之后,需要对会话追踪信息进行保存,作为第一会话的会话状态信息。通过会话追踪信息实现对前后端连接会话状态的匹配,以保证Session内部的状态一致,从而避免出现非预期内的异常问题。
在本申请实施例中,接收客户端的前端连接的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;为前端连接匹配后端连接时,根据后端连接的会话追踪信息确定会话状态信息,并与前端连接的第二会话状态信息匹配,以保证第一会话的Session状态的正确性;根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
在上述实施例的基础上,本申请实施例还提供了一种会话状态处理方法,能够控制前后端连接的会话状态一致,避免造成解码问题,且可提高后端连接的复用率。
参照图5,示出了本申请的一种会话状态处理方法实施例的步骤流程图。
可选地,所述方法应用于数据库;如图5所示,所述方法包括与以下步骤:
步骤501,接收并处理数据库代理的第一连接请求。
所述第一连接请求用于数据库代理请求与数据库建立连接,即后端连接;当前端连接与后端连接匹配后,客户端可以通过数据库代理执行数据处理操作。客户端需要进行数据处理操作时,首先向数据路代理发送前端连接请求,通过数据库代理建立客户端与数据库之间的连接。
数据库接收第一连接请求后,解析第一连接请求,处理第一连接请求所请求的数据处理操作,得到处理操作的数据处理结果;数据处理结果即针对数据处理操作的处理结果,比如数据处理操作为增加或删除操作时,数据处理结果即是否完成增加或删除操作;此外,处理结果中,还可包括数据部分,即所述处理操作对应的结果数据,比如数据处理操作为查询操作,则数据处理结果为所查询到的查询数据。
步骤502,向所述数据库代理反馈处理结果,并在所述处理结果中携带会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话命令的第一类型、第一关键字以及第一值。
除数据处理结果之外,数据库还将所述会话追踪信息携带在处理结果中,一并发送给数据库代理,使得数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性。
会话追踪信息为数据库报文协议中,服务端(即数据库)向客户端发送报文中的一个字段,用于保持数据库与客户端之间的连接状态;会话追踪信息可包括已经执行的会话命令的类型、关键字和值。类型代表会话命令的种类,如系统变量,用户变量或是创建临时表等类型。关键字代表会话命令的名称,如对于变量,则关键字为变量名;对于创建临时表,关键字为表名。值代表会话命令的内容,如对于变量,值为变量的值;对于创建临时表,值为临时表的建表语句。每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态。
本申请实施例中,数据库在向数据库代理响应第一连接请求时,携带会话追踪信息,使得数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
在上述实施例的基础上,本实施例还提供了一种会话状态处理装置,参照图6,图6示出了本申请的一种会话状态处理装置实施例的结构框图,具体可以包括如下模块:
请求发送模块601,用于向数据库发送第一连接请求。
所述第一连接请求用于请求与数据库建立连接,即后端连接;当前端连接与后端连接匹配后,客户端可以执行数据处理操作,数据处理操作例如新增、查询、更新以及删除等操作。以一个具体的应用场景来说,客户端在进行用户画像分析,可预先将大量的用户的参数,例如生理参数、行为数据等用户数据存储在数据库中,数据库为该客户端建立数据表,用于存储用户数据;后续客户端需要进行数据处理操作时,首先向数据路代理发送前端连接请求,通过数据库代理建立客户端与数据库之间的连接。
第一信息获取模块602,用于接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值。
其中,数据库在接收到第一连接请求之后,响应所述第一连接请求,处理第一连接请求所请求的数据处理操作,得到处理操作的数据处理结果;数据处理结果即针对数据处理操作的处理结果,比如数据处理操作为增加或删除操作时,数据处理结果即是否完成增加或删除操作;此外,处理结果中,还可包括数据部分,即所述处理操作对应的结果数据,比如数据处理操作为查询操作,则数据处理结果为所查询到的查询数据。
处理结果中,除数据处理结果之外,还包括会话追踪信息(Session Track);会话追踪信息为数据库报文协议中,服务端(即数据库)向客户端发送报文中的一个字段,用于保持数据库与客户端之间的连接状态;会话追踪信息可包括已经执行的会话命令(SessionCommand)的类型、关键字和值。
具体地,类型代表会话命令的种类,如系统变量,用户变量或是创建临时表等类型。关键字代表会话命令的名称,如对于变量,则关键字为变量名;对于创建临时表,关键字为表名。值代表会话命令的内容,如对于变量,值为变量的值;对于创建临时表,值为临时表的建表语句。每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态。
状态更新模块603,用于根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
参照图7,图7示出了本申请的一种会话状态处理装置实施例的结构框图,具体可以包括如下模块:
请求发送模块601,用于向数据库发送第一连接请求。
第一信息获取模块602,用于接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值。
状态更新模块603,用于根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
一个示例中,所述状态更新模块603包括第一处理子模块6031以及更新子模块6032,其中,
第一处理子模块6031,用于对所述会话追踪信息进行数据处理,得到第一处理数据,所述第一处理数据的数据形式为Map数据结构;
更新子模块6032,用于将所述第一会话的会话状态信息更新为所述第一处理数据。
另一个示例中,所述第一处理子模块6031包括:
第一处理单元,用于对所述第一类型、第一关键字进行哈希处理,得到第一哈希值;以及,对所述第一值进行哈希处理,得到第二哈希值;
其中,所述第一哈希值为所述第一处理数据的Map关键字,所述第二哈希值所述第一处理数据的Map值。
另一个示例中,所述装置还包括:
第二信息获取模块604,用于接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
匹配模块605,用于根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
另一个示例中,所述第二会话状态信息至少包括第二类型、第二关键字以及第二值;
所述后端连接对应的目标会话的目标会话状态信息包括所述第二会话状态信息。
另一个示例中,所述匹配模块605包括:
第二处理子模块6051,用于对所述第二会话状态信息进行数据处理,得到第二处理数据;所述第二处理数据的数据形式为Map数据结构;
匹配子模块6052,用于根据所述第二处理数据为所述第二连接请求匹配目标后端连接。
另一个示例中,所述第二处理数据中包括:对所述第二类型、第二关键字进行第三数据处理得到的第三哈希值;以及,对所述第二值进行第四数据处理得到的第四哈希值;
所述目标会话状态信息包括所述第三哈希值以及第四哈希值。
另一个示例中,所述匹配模块605用于:
若所述第二会话匹配有历史后端连接,则为所述第二连接请求匹配所述历史后端连接;或
若所述第二会话未匹配有历史后端连接,则根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
另一个示例中,所述装置还包括:
结果反馈模块606,用于将所述处理结果中的数据处理结果发送至第一前端连接的客户端发送至第一前端连接的客户端;所述第一前端连接为所述第一连接请求对应的前端连接。
另一个示例中,所述装置还包括:
释放模块607,用于若所述第一会话对应的第一后端连接未被锁定且未处于事务中,将所述第一后端连接放入连接池中;或
连接模块608,用于若所述第一后端连接被锁定或所述第一后端连接处于事务中,保持与所述第一后端连接的连接状态。
在本申请的一些可选实施例中,请求发送模块601向数据库发送第一连接请求后,接收所述数据库反馈的处理结果,第一信息获取模块602获取所述处理结果中携带的会话追踪信息;状态更新模块603根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值,每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态,因此,基于会话追踪信息可保证会话状态更新的实时性。在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,以实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可使后端连接处于可复用状态,提高后端连接的复用率,以解决现有技术中,为了保证Session状态的正确性,将前后端连接锁定,导致后端连接无法被其他前端连接复用的问题。
在上述实施例的基础上,本实施例还提供了一种会话状态处理装置,参照图8,图8示出了本申请的一种会话状态处理装置实施例的结构框图,具体可以包括如下模块:
第三信息获取模块801,用于接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
后端连接匹配模块802,用于根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的。
在本申请实施例中,第三信息获取模块801接收客户端的前端连接的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;后端连接匹配模块802为前端连接匹配后端连接时,根据后端连接的会话追踪信息确定会话状态信息,并与前端连接的第二会话状态信息匹配,以保证第一会话的Session状态的正确性;根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
在上述实施例的基础上,本实施例还提供了一种会话状态处理装置,参照图9,图9示出了本申请的一种会话状态处理装置实施例的结构框图,具体可以包括如下模块:
请求接收模块901,用于接收并处理数据库代理的第一连接请求。
所述第一连接请求用于数据库代理请求与数据库建立连接,即后端连接;当前端连接与后端连接匹配后,客户端可以通过数据库代理执行数据处理操作。客户端需要进行数据处理操作时,首先向数据路代理发送前端连接请求,通过数据库代理建立客户端与数据库之间的连接。
数据库接收第一连接请求后,解析第一连接请求,处理第一连接请求所请求的数据处理操作,得到处理操作的数据处理结果;数据处理结果即针对数据处理操作的处理结果,比如数据处理操作为增加或删除操作时,数据处理结果即是否完成增加或删除操作;此外,处理结果中,还可包括数据部分,即所述处理操作对应的结果数据,比如数据处理操作为查询操作,则数据处理结果为所查询到的查询数据。
结果反馈模块902,用于向所述数据库代理反馈处理结果,并在所述处理结果中携带会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话命令的第一类型、第一关键字以及第一值。
除数据处理结果之外,数据库还将所述会话追踪信息携带在处理结果中,一并发送给数据库代理,使得数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性。
会话追踪信息为数据库报文协议中,服务端(即数据库)向客户端发送报文中的一个字段,用于保持数据库与客户端之间的连接状态;会话追踪信息可包括已经执行的会话命令的类型、关键字和值。类型代表会话命令的种类,如系统变量,用户变量或是创建临时表等类型。关键字代表会话命令的名称,如对于变量,则关键字为变量名;对于创建临时表,关键字为表名。值代表会话命令的内容,如对于变量,值为变量的值;对于创建临时表,值为临时表的建表语句。每一个会话命令的类型、关键字、值的组成的三元组,都可以唯一确定一条会话命令;而从每一个所述三元组中,都可以还原一条数据库可执行的SQL语句;将这条SQL语句发送给数据库后,当前连接可以完整还原这条会话命令所代表的Session状态。
本申请实施例中,请求接收模块901接收并处理数据库代理的第一连接请求,结果反馈模块902在向数据库代理响应第一连接请求时,携带会话追踪信息,使得数据库代理根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理为前端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
在上述实施例的基础上,本实施例还提供了一种数据处理系统1000,参照图10,图10示出了本申请的一种数据处理系统1000实施例的结构框图,所述数据处理系统1000包括:客户端1001、数据库代理1002和数据库1003;所述客户端1001的数量可以具有多个;
其中,所述数据库代理1002用于:
向所述数据库1003发送第一连接请求;
接收所述数据库1003反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;
根据所述会话追踪信息更新所述第一会话的第一会话状态信息;
接收所述客户端1001的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库1003反馈的所述目标后端连接的会话追踪信息确定的;
所述数据库1003用于:
接收并处理所述数据库代理1002的第一连接请求;
向所述数据库代理1002反馈处理结果,并在所述处理结果中携带所述会话追踪信息。
本申请实施例中,数据库1003在向数据库代理1002响应第一连接请求时,携带会话追踪信息;数据库代理1002根据所述会话追踪信息更新所述第一会话的第一会话状态信息,以保证第一会话的Session状态的正确性;这样,在数据库代理1002为客户端1001的第二连接请求匹配后端连接的过程中,可根据连接池中每个后端连接的状态信息,为前端连接进行匹配,实现前后端连接的Session状态一致,避免造成解码问题。且匹配的过程中,由于后端连接的Session状态实时更新,不需要锁定前后端连接,可提高后端连接的复用率。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括终端设备、服务器(集群)等各第一类型的设备。
本申请的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括终端设备、服务器(集群)等电子设备。图11示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1100。
对于一个实施例,图11示出了示例性装置1100,该装置具有一个或多个处理器1102、被耦合到(一个或多个)处理器1102中的至少一个的控制模块(芯片组)1104、被耦合到控制模块1104的存储器1106、被耦合到控制模块1104的非易失性存储器(NVM)/存储设备1108、被耦合到控制模块1104的一个或多个输入/输出设备1110,以及被耦合到控制模块1104的网络接口1112。
处理器1102可包括一个或多个单核或多核处理器,处理器1102可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1100能够作为本申请实施例中所述终端设备、服务器(集群)等设备。
在一些实施例中,装置1100可包括具有指令1114的一个或多个计算机可读介质(例如,存储器1106或NVM/存储设备1108)以及与该一个或多个计算机可读介质相合并被配置为执行指令1114以实现模块从而执行本公开中所述的动作的一个或多个处理器1102。
对于一个实施例,控制模块1104可包括任意适当的接口控制器,以向(一个或多个)处理器1102中的至少一个和/或与控制模块1104通信的任意适当的设备或组件提供任意适当的接口。
控制模块1104可包括存储器控制器模块,以向存储器1106提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器1106可被用于例如为装置1100加载和存储数据和/或指令1114。对于一个实施例,存储器1106可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1106可包括双倍数据速率第一类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,控制模块1104可包括一个或多个输入/输出控制器,以向NVM/存储设备1108及(一个或多个)输入/输出设备1110提供接口。
例如,NVM/存储设备1108可被用于存储数据和/或指令1114。NVM/存储设备1108可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备1108可包括在物理上作为装置1100被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,NVM/存储设备1108可通过网络经由(一个或多个)输入/输出设备1110进行访问。
(一个或多个)输入/输出设备1110可为装置1100提供接口以与任意其他适当的设备通信,输入/输出设备1110可以包括通信组件、音频组件、传感器组件等。网络接口1112可为装置1100提供接口以通过一个或多个网络通信,装置1100可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,装置1100可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1100可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1100包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种会话状态处理方法和装置,一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种会话状态处理方法,所述方法包括:
向数据库发送第一连接请求;
接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;
根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
2.根据权利要求1所述的会话状态处理方法,其特征在于,所述根据所述会话追踪信息更新所述第一会话的第一会话状态信息的步骤,包括:
对所述会话追踪信息进行数据处理,得到第一处理数据,所述第一处理数据的数据形式为Map数据结构;
将所述第一会话的会话状态信息更新为所述第一处理数据。
3.根据权利要求2所述的会话状态处理方法,其特征在于,所述对所述会话追踪信息进行数据处理,得到第一处理数据的步骤,包括:
对所述第一类型、第一关键字进行哈希处理,得到第一哈希值;以及,对所述第一值进行哈希处理,得到第二哈希值;
其中,所述第一哈希值为所述第一处理数据的Map关键字,所述第二哈希值所述第一处理数据的Map值。
4.根据权利要求3所述的会话状态处理方法,其特征在于,所述方法还包括:
接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
5.根据权利要求4所述的会话状态处理方法,其特征在于,所述第二会话状态信息至少包括第二类型、第二关键字以及第二值;
所述后端连接对应的目标会话的目标会话状态信息包括所述第二会话状态信息。
6.根据权利要求5所述的会话状态处理方法,其特征在于,所述根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接的步骤,包括:
对所述第二会话状态信息进行数据处理,得到第二处理数据;所述第二处理数据的数据形式为Map数据结构;
根据所述第二处理数据为所述第二连接请求匹配目标后端连接。
7.根据权利要求6所述的会话状态处理方法,其特征在于,所述第二处理数据中包括:对所述第二类型、第二关键字进行第三数据处理得到的第三哈希值;以及,对所述第二值进行第四数据处理得到的第四哈希值;
所述目标会话状态信息包括所述第三哈希值以及第四哈希值。
8.根据权利要求4所述的会话状态处理方法,其特征在于,所述获取所述第二连接请求对应的第二会话的第二会话状态信息的步骤之后,所述方法包括:
若所述第二会话匹配有历史后端连接,则为所述第二连接请求匹配所述历史后端连接;或
若所述第二会话未匹配有历史后端连接,则根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接。
9.根据权利要求1所述的会话状态处理方法,其特征在于,所述根据所述会话追踪信息更新所述第一会话的第一会话状态信息的步骤之后,所述方法还包括:
将所述处理结果中的数据处理结果发送至第一前端连接的客户端发送至第一前端连接的客户端;所述第一前端连接为所述第一连接请求对应的前端连接。
10.根据权利要求1至9中任一项所述的会话状态处理方法,其特征在于,所述方法还包括:
若所述第一会话对应的第一后端连接未被锁定且未处于事务中,将所述第一后端连接放入连接池中;或
若所述第一后端连接被锁定或所述第一后端连接处于事务中,保持与所述第一后端连接的连接状态。
11.一种会话状态处理方法,其特征在于,所述方法包括:
接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的。
12.一种会话状态处理方法,其特征在于,所述方法包括:
接收并处理数据库代理的第一连接请求;
向所述数据库代理反馈处理结果,并在所述处理结果中携带会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话命令的第一类型、第一关键字以及第一值。
13.一种会话状态处理装置,其特征在于,所述装置包括:
请求发送模块,用于向数据库发送第一连接请求;
第一信息获取模块,用于接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;
状态更新模块,用于根据所述会话追踪信息更新所述第一会话的第一会话状态信息。
14.一种会话状态处理装置,其特征在于,所述装置包括:
第三信息获取模块,用于接收客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
后端连接匹配模块,用于根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的。
15.一种会话状态处理装置,其特征在于,所述装置包括:
请求接收模块,用于接收并处理数据库代理的第一连接请求;
结果反馈模块,用于向所述数据库代理反馈处理结果,并在所述处理结果中携带会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话命令的第一类型、第一关键字以及第一值。
16.一种数据处理系统,其特征在于,包括:客户端、数据库代理和数据库;
其中,所述数据库代理用于:
向所述数据库发送第一连接请求;
接收所述数据库反馈的处理结果,获取所述处理结果中携带的会话追踪信息;其中,所述会话追踪信息至少包括所述第一连接请求对应的第一会话的第一类型、第一关键字以及第一值;
根据所述会话追踪信息更新所述第一会话的第一会话状态信息;
接收所述客户端的第二连接请求,获取所述第二连接请求对应的第二会话的第二会话状态信息;
根据所述第二会话状态信息为所述第二连接请求匹配目标后端连接;其中,所述目标后端连接对应的第一会话的第一会话状态信息包括所述第二会话状态信息;所述第一会话状态信息为根据数据库反馈的所述目标后端连接的会话追踪信息确定的;
所述数据库用于:
接收并处理所述数据库代理的第一连接请求;
向所述数据库代理反馈处理结果,并在所述处理结果中携带所述会话追踪信息。
17.一种电子设备,其特征在于,包括:处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1至12中任一项所述的方法。
18.一个或多个机器可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688242.XA CN113297305A (zh) | 2020-07-16 | 2020-07-16 | 会话状态处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688242.XA CN113297305A (zh) | 2020-07-16 | 2020-07-16 | 会话状态处理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297305A true CN113297305A (zh) | 2021-08-24 |
Family
ID=77318149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010688242.XA Pending CN113297305A (zh) | 2020-07-16 | 2020-07-16 | 会话状态处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297305A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261094A (zh) * | 2020-10-10 | 2021-01-22 | 厦门网宿有限公司 | 一种报文处理方法及代理服务器 |
CN116244361A (zh) * | 2022-12-23 | 2023-06-09 | 北京柏睿数据技术股份有限公司 | 一种数据库连接动态持久化处理的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101166191A (zh) * | 2006-08-10 | 2008-04-23 | 国际商业机器公司 | 用于在交易处理中管理网络应用的会话状态的方法和系统 |
CN102262680A (zh) * | 2011-08-18 | 2011-11-30 | 北京新媒传信科技有限公司 | 一种基于海量数据存取需求的分布式数据库代理系统 |
CN107026789A (zh) * | 2017-03-31 | 2017-08-08 | 新浪网技术(中国)有限公司 | 一种会话用户追踪的方法和装置 |
CN110519775A (zh) * | 2018-05-22 | 2019-11-29 | 华为技术有限公司 | 会话管理方法、装置和系统 |
US20190370148A1 (en) * | 2018-05-31 | 2019-12-05 | Sap Se | Database trace debugger |
CN111385356A (zh) * | 2020-03-04 | 2020-07-07 | 平安科技(深圳)有限公司 | 分布式会话处理方法、装置及系统 |
-
2020
- 2020-07-16 CN CN202010688242.XA patent/CN113297305A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101166191A (zh) * | 2006-08-10 | 2008-04-23 | 国际商业机器公司 | 用于在交易处理中管理网络应用的会话状态的方法和系统 |
CN102262680A (zh) * | 2011-08-18 | 2011-11-30 | 北京新媒传信科技有限公司 | 一种基于海量数据存取需求的分布式数据库代理系统 |
CN107026789A (zh) * | 2017-03-31 | 2017-08-08 | 新浪网技术(中国)有限公司 | 一种会话用户追踪的方法和装置 |
CN110519775A (zh) * | 2018-05-22 | 2019-11-29 | 华为技术有限公司 | 会话管理方法、装置和系统 |
US20190370148A1 (en) * | 2018-05-31 | 2019-12-05 | Sap Se | Database trace debugger |
CN111385356A (zh) * | 2020-03-04 | 2020-07-07 | 平安科技(深圳)有限公司 | 分布式会话处理方法、装置及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261094A (zh) * | 2020-10-10 | 2021-01-22 | 厦门网宿有限公司 | 一种报文处理方法及代理服务器 |
CN116244361A (zh) * | 2022-12-23 | 2023-06-09 | 北京柏睿数据技术股份有限公司 | 一种数据库连接动态持久化处理的方法及系统 |
CN116244361B (zh) * | 2022-12-23 | 2023-10-10 | 北京柏睿数据技术股份有限公司 | 一种数据库连接动态持久化处理的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286503B (zh) | 多注册中心的微服务统一管理方法、装置、设备及介质 | |
US10831562B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
US11243921B2 (en) | Database expansion system, equipment, and method of expanding database | |
US9483493B2 (en) | Method and system for accessing a distributed file system | |
AU2017254506B2 (en) | Method, apparatus, computing device and storage medium for data analyzing and processing | |
CN111107022B (zh) | 数据传输优化方法、设备及可读存储介质 | |
US10866960B2 (en) | Dynamic execution of ETL jobs without metadata repository | |
CN113297305A (zh) | 会话状态处理方法、装置、设备和存储介质 | |
WO2022257247A1 (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN110865985A (zh) | 数据同步方法、装置、电子设备和存储介质 | |
CN113094395B (zh) | 数据查询方法、计算机设备和存储介质 | |
CN112948383A (zh) | 政务数据共享交换方法和装置 | |
CN114675982A (zh) | 一种业务集成系统的数据获取通用方法及系统 | |
CN116737693A (zh) | 数据迁移方法及装置、电子设备和计算机可读存储介质 | |
CN111209263A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN113961253B (zh) | 驱动程序调用方法、装置、电子设备和存储介质 | |
US10114864B1 (en) | List element query support and processing | |
WO2014206063A1 (zh) | 一种数据交互方法及装置 | |
CN111221858B (zh) | 一种数据处理方法、装置及设备 | |
CN113761005A (zh) | 一种元数据配置方法、装置及电子设备和存储介质 | |
CN114996307A (zh) | 一种对数据的联邦处理方法及装置 | |
CN112527760A (zh) | 数据存储方法、装置、服务器及介质 | |
CN116861455B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059160 Country of ref document: HK |