一种数据库分配会话对象的方法、数据库和服务器技术

技术编号:20025718 阅读:31 留言:0更新日期:2019-01-06 04:34
本说明书实施例公开了一种数据库分配会话对象的方法、数据库和服务器,在数据库连接会话资源优先的条件下,把数据库的会话对象合理的集中分配给应用,能在很大程度上提高会话的使用率,降低应用在有业务等待需要数据库的会话资源而此时数据库服务的会话资源在其他的应用服务器上仍有空闲,也就是在数据库的角度上说,数据库的其他会话资源即使空闲也不能提供服务的情形出现的可能性,从而明显降低呼损率,提高数据库的响应成功率,也就是为数据库与应用提供一种更加优良的连接方案。

【技术实现步骤摘要】
一种数据库分配会话对象的方法、数据库和服务器
本申请涉及数据库
,尤其涉及一种数据库分配会话对象的方法、数据库和服务器。
技术介绍
数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统,都在各个方面得到了广泛的应用。在数据库的运行过程中,数据库需要同时与多个应用建立连接以传递数据,随着技术的发展,数据库需要同时连接的应用的数目越来越高,这要求数据库能够提供更稳定的连接方案。
技术实现思路
本专利技术了提供了一种数据库分配会话对象的方法、数据库和服务器。第一方面,本说明书实施例提供了一种数据库分配会话对象的方法,包括:数据库接收应用的访问请求;所述数据库响应所述访问请求,从自身所有可分配的会话对象中分配一个会话对象给所述应用;所述数据库通过分配的会话对象,将对应的逻辑数据源中的数据传递给所述应用。第二方面,本说明书实施例提供了一种数据库,包括:接收单元,用于接收应用的访问请求;分配单元,用于响应所述访问请求,从自身所有可分配的会话对象中分配一个会话对象给所述应用;数据传递单元,用于通过分配的会话对象,将对应的逻辑数据源中的数据传递给所述应用。第三方面,本说明书实施例提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。第四方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述方法的步骤。本说明书实施例有益效果如下:数据库从所有可分配的会话对象中分配一个会话对象给应用,相当于共享了同一数据库中的会话对象以分配给应用,避免了数据库中一个逻辑数据源的会话对象被全部占用而其他逻辑数据源的会话对象即使空闲也不能提供服务的情形出现,提高了会话对象的使用率,从而明显地降低了呼损率,提高了数据库响应的成功率,也即数据库提供了更加稳定的连接方案。附图说明图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重新执行本说明书实本文档来自技高网...

【技术保护点】
1.一种数据库分配会话对象的方法,包括:数据库接收应用的访问请求,所述数据库包括多个逻辑数据源和多个会话对象;所述数据库响应所述访问请求,从所有可分配的会话对象中分配一个会话对象给所述应用;所述数据库通过分配的会话对象,将对应的逻辑数据源中的数据传递给所述应用。

【技术特征摘要】
1.一种数据库分配会话对象的方法,包括:数据库接收应用的访问请求,所述数据库包括多个逻辑数据源和多个会话对象;所述数据库响应所述访问请求,从所有可分配的会话对象中分配一个会话对象给所述应用;所述数据库通过分配的会话对象,将对应的逻辑数据源中的数据传递给所述应用。2.根据权利要求1所述的方法,在所述数据库接收应用的访问请求之前,所述方法还包括:在装载所述数据库的服务器启动时,所述数据库将所有会话对象设置为可分配状态,从而为需要访问所述数据库的应用分配会话对象。3.根据权利要求1所述的方法,在所述从自身所有可用的会话对象中分配一个会话对象给所述应用之后,所述方法还包括:所述数据库将分配给所述应用的会话对象设置为不可分配。4.根据权利要求3所述的方法,在所述数据库将分配给所述应用的会话对象设置为不可分配之后,所述方法还包括:所述数据库对不可分配的会话对象进行标记处理,以标识当前应用占用的会话对象。5.根据权利要求1~4中任一项所述的方法,所述数据库为应用分配会话对象的粒度为单一服务器上的单一服务。6.一种数据库,包括:接收单元,用于接收应用的访问请求;分配单元,用于响应所述访问请求,从自身所有可分配的会话对象中分配...

【专利技术属性】
技术研发人员:孙进宝
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1