一种数据库分配会话对象的方法、数据库和服务器与流程

文档序号:16532654发布日期:2019-01-05 10:53阅读:262来源:国知局
一种数据库分配会话对象的方法、数据库和服务器与流程

本申请涉及数据库技术领域,尤其涉及一种数据库分配会话对象的方法、数据库和服务器。



背景技术:

数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统,都在各个方面得到了广泛的应用。

在数据库的运行过程中,数据库需要同时与多个应用建立连接以传递数据,随着技术的发展,数据库需要同时连接的应用的数目越来越高,这要求数据库能够提供更稳定的连接方案。



技术实现要素:

本发明了提供了一种数据库分配会话对象的方法、数据库和服务器。

第一方面,本说明书实施例提供了一种数据库分配会话对象的方法,包括:数据库接收应用的访问请求;所述数据库响应所述访问请求,从自身所有可分配的会话对象中分配一个会话对象给所述应用;所述数据库通过分配的会话对象,将对应的逻辑数据源中的数据传递给所述应用。

第二方面,本说明书实施例提供了一种数据库,包括:

接收单元,用于接收应用的访问请求;

分配单元,用于响应所述访问请求,从自身所有可分配的会话对象中分配一个会话对象给所述应用;

数据传递单元,用于通过分配的会话对象,将对应的逻辑数据源中的数据传递给所述应用。

第三方面,本说明书实施例提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。

第四方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述方法的步骤。

本说明书实施例有益效果如下:

数据库从所有可分配的会话对象中分配一个会话对象给应用,相当于共享了同一数据库中的会话对象以分配给应用,避免了数据库中一个逻辑数据源的会话对象被全部占用而其他逻辑数据源的会话对象即使空闲也不能提供服务的情形出现,提高了会话对象的使用率,从而明显地降低了呼损率,提高了数据库响应的成功率,也即数据库提供了更加稳定的连接方案。

附图说明

图1为本说明书实施例提供的数据库与应用之间交互的场景示意图;

图2为本说明书实施例提供的数据库分配会话对象的方法的流程图;

图3为本说明书实施例提供的数据库的模块图;

图4为本说明书实施例提供的服务器的结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。

请参考图1,图1为本说明书实施例提供的数据库与应用之间交互的场景示意图,在本说明书实施例中,将用户数据根据用户的uid(useridentification,用户身份证明)水平均分到5个分表位,如图1所示,数据库100包括5个逻辑数据源,5个逻辑数据源分别为00、01、02、03和04,并且,为了使得数据库100能够将每一个逻辑数据源的数据同时传递给多个应用,会配置多个会话对象。

在本说明书的其他实施例中,可以根据用户数据的实际情况,将用户数据分为更多的数目,并且通过多个数据库为应用提供服务,当然了,需要说明的是,对用户数据进行划分时所采用的方式、数据库的数目和每个数据库中的逻辑数据源的数目在此均不做限制,本领域的技术人员可以相应选择合适的方式及数值,以满足实际情况的需要,在此不再赘述。

基于图1所示的交互场景,本说明书实施例第一方面提供一种数据库分配会话对象的方法,请参考图2,图2为本说明书实施例提供的数据库分配会话对象的方法的流程图,如图2所示,该数据库分配会话对象的方法的第一个实施例,具体包括以下步骤:

s202:数据库接收应用的访问请求,数据库包括多个逻辑数据源和多个会话对象;

具体来讲,请结合图1,也即在应用110需要访问数据库100中的数据时,应用110向数据库100发出访问请求,这时,数据库100即能够接收到应用110的访问请求。

s204:数据库响应访问请求,从所有可分配的会话对象中分配一个会话对象给应用;

具体来讲,请继续参考图1,数据库100响应应用110的访问请求,需要将为应用110分配一个会话对象(session),以使得数据库100通过该会话对象与应用110建立联系,这样,数据库100即可以向应用110传递数据。

在实际应用中,请继续参考图1,一般来讲,应用110访问数据库100这一行为受用户控制,而用户的业务行为是符合泊松分布的,也就是说实际落在单个逻辑数据库的事务数量符合泊松分布,设定一个服务器在单个数据源的单位时间内,例如1秒执行的事务数量为m=800t(t表示一个事务),其中每个事务所需的时间为s=10ms/t=0.01s/t,则就单个应用单个逻辑数据源而言,其话务量计算为:a=s*m=800·0.01=8爱尔兰。这样,针对包括5个逻辑数据源的数据库100而言,其话务量为40爱尔兰。

在本实施例中,请继续参考图1,设定每个逻辑数据源的会话对象为6个,则数据库100包括的会话对象的数量为30个,则此时可以计算得知数据库100的呼损率为:这相当于共享了同一数据库中的会话对象,共享了同一数据库中的会话对象以分配给应用,避免了数据库中一个逻辑数据源的会话对象被全部占用而其他逻辑数据源的会话对象即使空闲也不能提供服务的情形出现,。

而若以单个逻辑数据源包括6个会话对象计算呼损率,则其呼损率为:需要说明的是,此处计算呼损率的两个计算过程为简略计算,数值取了近似值,实际呼损率可以根据爱尔兰呼损率公式进行查找比对,在此不再赘述。

可以明显看出,呼损率大大降低,相应地,数据库100响应应用110的访问请求的成功率也大大提升。

s206:数据库通过分配的会话对象,将对应的逻辑数据源中的数据传递给应用。

在s204之后,也即数据库100从所有可分配的会话对象中分配一个会话对象给应用110之后,数据库即能够通过为应用110分配的会话对象,将对应的逻辑数据源中的数据传递给应用110,在此就不再赘述了。

可以看出,在本实施例中,数据库100是从所有可分配的会话对象中分配一个会话对象给应用110,相当于共享了同一数据库中的会话对象以分配给应用,这样避免了数据库中一个逻辑数据源的会话对象被全部占用而其他逻辑数据源的会话对象即使空闲也不能提供服务的情形出现,提高了会话对象的使用率,从而明显地降低了呼损率,提高了数据库响应的成功率,也即数据库提供了更加稳定的连接方案。

在具体实施过程中,请继续参考图2,在s206之后,本说明书实施例提供的数据库分配会话对象的方法还包括s208:数据库将分配给应用的会话对象设置为不可分配。

具体来讲,由于数据库100分配给应用110的会话对象会与应用110绑定,并且在应用110访问数据库的过程中也会绑定,所以若再将该会话对象分配给其他应用,则会造成应用110访问数据库100的过程出现错误,或者造成其他应用访问数据库100的过程出现错误,因此需要数据库100将分配给应用100的会话对象设置为不可分配。

若有其他应用需要访问数据库100,则数据库100从s202重新执行本说明书实施例提供的数据库分配会话对象的方法即可,在此就不再赘述了。

请继续参考图2,与上述介绍的第一个实施例不同的,本说明书第二个实施例提供的数据库分配会话对象的方法在s208之后,还包括s210:数据库对不可分配的会话对象进行标记处理,以标识当前应用占用的会话对象。

具体来讲,若单个分表位,也即某个逻辑数据源出现热点,也即对该逻辑数据源的访问量较大的时候,该热点会扩散到同一数据库下的其他逻辑数据源中,因为该数据库会将可分配的会话对象分配给处于热点的逻辑数据源,这样导致数据库分配给访问其他逻辑数据源的应用的会话对象大大减少,因此,可以为不可分配的会话对象进行标记处理,具体是为每一个会话对象的使用进行标记处理,例如可以使用应用id来标识当前id所占用的会话对象,这样,保证一个应用最多占用一个会话对象来访问处于热点的逻辑数据源,从而避免了热点的扩散。

第二个实施例中的其他步骤在第一个实施例中已经进行了详细的介绍,在此就不再赘述了。

与上述介绍的第一个实施例不同的,本说明书第三个实施例提供的数据库分配会话对象的方法在s202之前,还包括s200:在装载数据库的服务器启动时,数据库将所有会话对象设置为可分配状态,从而为需要访问数据库的应用分配会话对象。

具体来讲,为了提高服务器的自动程度,并且保证数据库100在启动之后即能够尽快提供更加稳定的连接方案,在装载数据库100的服务器启动时,数据库100即将所有会话对象设置为可分配状态,从而为需要访问数据库的应用分配会话对象。这实现了共享同一数据库中的会话对象,以避免数据库中一个逻辑数据源的会话对象被全部占用而其他逻辑数据源的会话对象即使空闲也不能提供服务的情形出现。

第三个实施例中的其他步骤在第一个实施例中已经进行了详细的介绍,在此就不再赘述了。

在具体实施过程中,针对上述三个实施例中任一个而言,数据库100为应用110分配会话对象的粒度为单一服务器上的单一服务。

上述部分对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要去示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

第二方面,基于同一发明构思,本说明书实施例提供一种数据库,请参考图3,图3为本说明书实施例提供的数据库的模块图,如图3所示,包括:

接收单元301,用于接收应用的访问请求;

分配单元302,用于响应访问请求,从自身所有可分配的会话对象中分配一个会话对象给应用;

数据传递单元303,用于通过分配的会话对象,将对应的逻辑数据源中的数据传递给应用。

在一种可选方式中,数据库还包括第一设置单元304,第一设置单元304用于在装载数据库的服务器启动时,数据库将所有会话对象设置为可分配状态,从而为需要访问数据库的应用分配会话对象。

在一种可选方式中,数据库还包括第二设置单元305,第二设置单元305用于在从自身所有可用的会话对象中分配一个会话对象给应用之后,数据库将分配给应用的会话对象设置为不可分配状态。

在一种可选方式中,数据库还包括标记单元306,标记单元306用于对对设置为不可分配状态的会话对象进行标记处理,以标识当前用户占用的会话对象。

在一种可选方式中,数据库为应用分配会话对象的粒度为单一服务器上的单一服务。

第三方面,基于与前述实施例中数据库分配会话对象的方法同样的发明构思,本说明书实施例还提供一种服务器,请参考图4,图4为本说明书实施例提供的服务器的结构示意图,如图4所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,处理器602执行程序时实现前文基于数据库分配会话对象的方法的任一方法的步骤。

其中,在图4中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口606在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。

第四方面,基于与前述实施例中数据库分配会话对象的方法同样的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文数据库分配会话对象的方法的任一方法的步骤。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1