对数据库中同一账户的并行访问方法技术

技术编号:24799387 阅读:32 留言:0更新日期:2020-07-07 21:01
本发明专利技术涉及一种对数据库中同一账户的并行访问方法,包括:接收对数据库中同一账户的多个访问请求;将多个访问请求分配到账户的多个不同的子账户上,其中至少包括第一子账户和第二子账户;其中,第一子账户配置成:基于多个访问请求来生成对数据库的操作指令;数据库配置成响应操作指令而执行:新设或注销子账户;和/或更改子账户的信息。其能够有效地应对外部的大量访问请求,避免访问请求的堆积,提高数据库及交易处理系统的处理性能。

【技术实现步骤摘要】
对数据库中同一账户的并行访问方法
本专利技术涉及数据库
,更具体地说,涉及一种对数据库中同一账户的并行访问方法。
技术介绍
现有技术中,对用户账户的管理通常是通过数据库来进行。即,将单条账户信息保存在数据库中,当数据库收到对账户的修改请求后,首先对这条账户记录加锁,然后再进行修改,修改完成后释放锁。然而,如果加锁后又收到这个账户的其他访问请求,那么新访问请求会被暂时阻塞,直到前一个修改操作执行完成并释放锁之后,新访问请求才能继续处理。虽然数据库的性能日渐提升,但是,根据上述解决方案,如果对同一账户访问量持续升高至超过某个阈值时,对于该热点账户的访问请求会出现堆积,导致应用系统处理交易的时延明显升高,甚至影响涉及其他账户的正常交易处理。
技术实现思路
本专利技术的目的在于提供一种对数据库中同一账户执行多重并行访问的方法。为实现上述目的,本专利技术提供一种技术方案如下:一种对数据库中同一账户的并行访问方法,包括:接收对数据库中同一账户的多个访问请求;将多个访问请求分配到账户的多个不同的子账户上,其中至少包括第一子账户和第二子账户;其中,第一子账户配置成:基于多个访问请求来生成对数据库的操作指令;数据库配置成响应操作指令而执行:新设或注销子账户;和/或更改子账户的信息。可选地,操作指令包括:当第二子账户管理的资源量少于第一阈值时,从第一子账户向第二子账户调拨资源;当第二子账户管理的资源量多于第二阈值时,指示第二子账户向第一子账户调拨资源;其中,第一子账户管理的资源量多于第二子账户管理的资源量。为实现上述目的,本专利技术又提供一种数据库管理系统,用于提供对同一账户的并行访问,系统包括:访问请求路由模块,用于接收对数据库中同一账户的多个访问请求,并将多个访问请求分配到账户的多个不同的子账户上;账户信息维护模块,用于基于多个访问请求来生成对数据库的操作指令;其中,操作指令包括:新设或注销子账户;和/或更改子账户的信息。可选地,该系统还包括:资源调拨模块,用于在多个子账户之间调拨资源。可选地,账户信息维护模块进一步配置成:指示访问请求路由模块变更对多个访问请求的分配。本专利技术的实施例提供对数据库中同一账户的并行访问方法,通过动态地设置子账户或变更子账户的资源,能够有效地应对外部的大量访问请求,避免访问请求的堆积,提高数据库及交易处理系统的处理性能。此外,由于子账户及资源的动态配置,这种方式有利于在访问请求数降低的情况下,注销子账户并回收资源,从而促进资源的高效使用。另外,由于第一子账户可以分配或调度其他子账户的资源,当某个子账户异常时,对其相应的访问请求可以被迅速转交其他子账户处理,从而提高交易处理的可靠性。附图说明图1示出根据本专利技术第一实施例对数据库中同一账户的并行访问方法的流程示意图。图2示出根据本专利技术第二实施例的数据库管理系统的模块结构示意图。具体实施方式在以下描述中提出具体细节,以便提供对本专利技术的透彻理解。然而,本领域的技术人员将清楚地知道,即使没有这些具体细节也可实施本专利技术的实施例。在本专利技术中,可进行具体的数字引用,例如“第一元件”、“第二装置”等。但是,具体数字引用不应当被理解为必须服从于其字面顺序,而是应被理解为“第一元件”与“第二元件”不同。本专利技术所提出的具体细节只是示范性的,具体细节可以变化,但仍然落入本专利技术的精神和范围之内。术语“耦合”定义为表示直接连接到组件或者经由另一个组件而间接连接到组件。以下通过参照附图来描述适于实现本专利技术的方法、系统和装置的优选实施例。虽然各实施例是针对元件的单个组合来描述,但是应理解,本专利技术包括所公开元件的所有可能组合。因此,如果一个实施例包括元件A、B和C,而第二实施例包括元件B和D,则本专利技术也应被认为包括A、B、C或D的其他剩余组合,即使没有明确公开。如图1所示,本专利技术第一实施例提供一种对数据库中同一账户的并行访问方法,包括如下步骤S10-S12-S14,其中步骤S14可以不作为独立步骤,而成为步骤S12的子步骤。步骤S10、接收对数据库中同一账户的多个访问请求。在交易/消费的高峰时间段,对某个账户(例如,集体账户)可能具有超出预期的访问需求,数据库管理系统将接收来自不同访问方对数据库中同一账户的多个访问请求。步骤S12、将多个访问请求分配到账户的多个不同的子账户上。为了应对所接收的访问请求,尽量避免访问请求出现堆积从而影响对后续访问请求的及时处理,在该步骤中,将多个访问请求分配到该账户(即,多个访问方都希望访问的那个账户)的多个不同的子账户上,其中至少包括第一子账户和第二子账户。随后,第一子账户可以应对第一批一个或多个访问请求,而第二子账户也可以应对第二批一个或多个访问请求。依此类推,理论上只要具有足够数量的子账户,即可以应对大量并发的访问请求。为了使得每个子账户都可以应对一个或多个访问请求,需要为每个子账户分配一定数量的资源,所分配的资源从原始账户中调拨。在本文中,“资源”可以包括货币金额、抢购中的商品、期货等。为了使得多个子账户可以分别应对具有不同优先级或不同资源需求的多个访问请求,可以将每个子账户配置成相应的等级。作为一种示例,第一子账户管理的资源量明显多于第二子账户管理的资源量(例如,货币金额),从而第一子账户可以应对高额交易,而第二子账户更适合应对小额交易。作为另一示例,第一子账户具有更高的处理优先级,其优先获得资源的分配,并且能够从其他子账户主动调取资源。步骤S14、将第一子账户配置成基于多个访问请求来生成对数据库的操作指令。在该步骤中,即使在已经具有多个子账户的情况下,第一子账户仍然可以进一步配置成:基于在步骤S10中所接收的多个访问请求而生成对数据库的操作指令,以便新设或注销其他子账户,或者,更改其他子账户的信息。换言之,第一子账户能够控制其他子账户的资源及生命周期。同时,作为对上述操作指令的响应,数据库配置成执行:新设或注销子账户;和/或,更改子账户的信息。应理解,上述步骤S14可以作为步骤S12的一个子步骤来执行,也可以在步骤S12之后独立地执行。另外,步骤S14是动态执行的。举例来说,当所接收的访问请求超出访问阈值时,即使已经存在三个子账户(第一、第二、第三)子账户,第一子账户仍然可以新设第四子账户并向其调拨一定数量的资源,进而由第四子账户应对超出访问阈值的那些访问请求。根据本专利技术一些实施例,为了保证第二子账户有能力应对一个或多个访问请求,当第二子账户管理的资源量少于第一阈值时,从第一子账户向第二子账户调拨资源。另一方面,当第二子账户管理的资源量多于第二阈值时,也可以指示第二子账户向第一子账户调拨资源。这些操作都可以基于第一子账户所生成的操作指令而由数据库执行。作为一种改进,当第二子账户管理的资源不足以满足访问请求时,通过操作指令可以指示第二子账户将相应的访问请求转交第一子账户处理。作为另一种改进,当第二子账户空闲时,第本文档来自技高网...

【技术保护点】
1.一种对数据库中同一账户的并行访问方法,包括:/na)、接收对所述数据库中同一账户的多个访问请求;/nb)、将所述多个访问请求分配到所述账户的多个不同的子账户上,其中至少包括第一子账户和第二子账户;/n其中,所述第一子账户配置成:/n基于所述多个访问请求来生成对所述数据库的操作指令;/n所述数据库配置成响应所述操作指令而执行:/n新设或注销所述子账户;和/或/n更改所述子账户的信息。/n

【技术特征摘要】
1.一种对数据库中同一账户的并行访问方法,包括:
a)、接收对所述数据库中同一账户的多个访问请求;
b)、将所述多个访问请求分配到所述账户的多个不同的子账户上,其中至少包括第一子账户和第二子账户;
其中,所述第一子账户配置成:
基于所述多个访问请求来生成对所述数据库的操作指令;
所述数据库配置成响应所述操作指令而执行:
新设或注销所述子账户;和/或
更改所述子账户的信息。


2.根据权利要求1所述的方法,其特征在于,所述操作指令包括:
当所述第二子账户管理的资源量少于第一阈值时,从所述第一子账户向所述第二子账户调拨资源;
当所述第二子账户管理的资源量多于第二阈值时,指示所述第二子账户向所述第一子账户调拨资源;
其中,所述第一子账户管理的资源量多于所述第二子账户管理的资源量。


3.根据权利要求2所述的方法,其特征在于,所述操作指令还包括:
当所述第二子账户管理的资源不足以满足访问请求时,指示所述第二子账户将相应的访问请求转交所述第一子账户处理。


4.根据权利要求1所述的方法,其特征在于,步骤b)具体包括:
将所述多个访问请求划分为第一批访问请求和第二批访问请求,其中所述第一批访问请求的优先级大于所述第二批访问请求的优先级;
将所述第一批访问请求、第二批访问请求分别分配给所述第...

【专利技术属性】
技术研发人员:邱鹏杨燕明王栩
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

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

1