数据访问控制方法和装置的制造方法

文档序号:9261369阅读:427来源:国知局
数据访问控制方法和装置的制造方法
【技术领域】
[0001] 本申请涉及数据库领域,尤其涉及数据访问控制方法和装置。
【背景技术】
[0002] 随着互联网技术的飞速发展,网上进行业务交互已经越来越普遍,随之而来的是 对数据库的高并发、大请求量的访问。
[000引例如,在类似"双11"、"双12"等电商促销期间,客户端应用对服务器数据库的访 问请求(读写请求)会突然加大,特别是对那些性价比高的畅销商品来说,操作数据库中相 关记录的请求会瞬间大增,该导致在数据库服务端对某条记录产生行锁竞争和等待。当竞 争非常激烈,即对某条数据库记录的修改并发度非常高的时候,数据库性能会急剧下降,从 而影响其他记录的正常读写。因此,需要针对该种因部分记录过热导致整个数据库性能下 降的问题寻求解决方案。
[0004] 在现有技术中,针对高并发、大请求量的情况,通常是从整体上对数据库的访问进 行流量控制,包括应用层面的数据库(DB)流控和应用入口层面的服F(化曲-SpeedService 化amework,高速服务框架)流控。具体而言,DB流控主要关注同一时刻对某个逻辑库(数 据库包括多个逻辑库)的请求量,其中判断对数据库的访问请求(包括读请求和写请求)是 否达到该数据库处理能力的极限,如果达到则限流。而HSF流控主要关注一段时间内(一般 是1砂)客户端应用对服务器系统的平均请求量,类似地,其中判断对服务器系统(整个数据 库)的访问请求是否达到数据库处理能力的极限,如果达到则限流。
[0005] 可见,上述现有的两种流控方案都侧重于解决系统整体性能问题,都未涉及并且 也无法解决目前出现的该种因部分记录过热导致整个数据库性能下降的问题。
[0006] 另外,在现有的流控方案中,当某一时刻的请求超过阔值时系统就会拒绝为该些 请求提供服务。然而,系统流量突然飘升往往只是一瞬间的事情巧日砂杀,特别是天猫双11 的砂杀活动,持续时间很短)。如果系统直接把超过处理能力的请求拒绝掉,可能会导致用 户不断地重试,该样反而增加了系统高压力的持续时间,而且用户体验也较差。
[0007] 因此,需要一种改进的数据访问控制方案,来克服上述现有技术中的该些问题。

【发明内容】

[0008] 本申请的一个目的在于提供一种改进的数据访问控制方案,W解决因部分记录过 热导致整个数据库性能下降的问题。
[0009] 本申请的另一目的在于提供一种改进的数据访问控制方案,W解决现有流控机制 导致用户不断重试、系统压力增大和用户体验差的问题。
[0010] 根据本申请一个方面的实施例,提供一种数据访问控制方法,其特征在于,包括: 接收针对数据库的访问请求,所述访问请求中包含数据对象信息;基于所述数据对象信息, 确定所述访问请求涉及的数据库中的数据记录的标识信息;确定所述标识信息对应的访问 请求量;W及根据所述访问请求量,确定是否拒绝所述访问请求。
[0011] 根据本申请另一方面的实施例,提供一种数据访问控制装置,其特征在于,包括: 接收模块,用于接收针对数据库的访问请求,所述访问请求中包含数据对象信息;标识信息 确定模块,用于基于所述数据对象信息,确定所述访问请求涉及的数据库中的数据记录的 标识信息;访问请求量确定模块,用于确定所述标识信息对应的访问请求量;W及控制模 块,用于根据所述访问请求量,确定是否拒绝所述访问请求。
[0012] 与现有技术相比,根据本申请的技术方案,能够W更细的流控粒度来控制对数据 库的访问,即针对数据库中的各条记录进行访问控制,从而避免部分记录过热导致整个数 据库性能下降的问题。另外,通过采用内存排队机制和等待超时机制来操控对数据库的访 问请求量,避免了直接拒绝、一刀切的粗暴解决方式,从而减少系统资源和流量的损失,方 便用户的使用并增强用户体验。
【附图说明】
[0013] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申 请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0014] 图1示出根据本申请一个实施例的数据访问控制方法的流程图;
[0015] 图2示出根据本申请另一实施例的数据访问控巧巧法的流程图;
[0016] 图3示出根据本申请又一实施例的数据访问控制方法的流程图;
[0017] 图4示出根据本申请实施例的数据访问控制过程的示意图;
[0018] 图5示出根据本申请一个实施例的内存管理模式的示意图;W及
[0019] 图6示出根据本申请一个实施例的数据访问控制装置的结构框图。
【具体实施方式】
[0020] 本申请发明人注意到,如前面提及的,目前一般的流控方案都侧重于解决系统整 体性能问题。如HSF流控;当应用负载较高时,则调低HSF流控阔值,降低系统整体流量,在 系统层面属于一刀切的粗暴解决方案。并且,目前一般的流控方案为当某一时刻的请求超 过阔值时,系统会拒绝为该些请求提供服务。然而,系统流量突然飘升往往只是一瞬间的事 情巧日砂杀,特别是天猫双11的砂杀活动,持续时间很短)。如果系统直接把超过处理能力 的请求拒绝掉,可能会导致用户不断地重试,该样反而增加了系统高压力的持续时间,而且 用户体验也较差。
[0021] 实际上系统大部分时间处理能力是有余量的。某一时刻系统面临的请求量可能会 超过自身处理能力的范围,而在下一时刻可能请求量就恢复到处理能力水平W下。如果在 请求高峰期做削峰处理后,对超出的请求直接拒绝服务,会带来系统资源和流量的损失。
[0022] 另外,本申请发明人还注意到,现有流控方案都是基于某个范围,例如DB流控基 于空间范围(逻辑库),HSF流控基于时间范围(1砂),可见控制粒度比较粗,都未涉及到对数 据库记录层面的控制,也无法解决因部分记录过热导致整个数据库性能下降的问题。
[0023] 因此,本申请的主要思想在于,引入更细粒度化的控制策略,在数据库记录层面上 实施流控,即针对数据库中的一条记录或多条记录(特定数据对象或访问对象相关的记录) 实施并发流控,W避免部分记录过热导致数据库性能下降,进而确保其它记录的正常读写, 提高服务器系统的整体效率,方便用户的使用和提高用户的使用感受。
[0024]另外,本申请的思想还在于,引入排队策略,使得超过系统处理能力的请求先在内 存排队等候处理,等待超时后再拒绝。通过该种方式,可W使得在高并发、大请求量情况下 尽可能地避免系统资源和流量的损失,方便用户的使用并且提高用户体验感受。
[0025] 为使本申请的目的、技术方案和优点更加清楚,W下结合附图及具体实施例,对本 申请作进一步的详细说明。
[0026] 参照图1,图1示出根据本申请一个实施例的数据访问控巧巧法100的流程图。
[0027] 如图1所示,在步骤S110处,接收针对数据库的访问请求,所述访问请求中包含数 据对象fg息。
[0028] 具体而言,访问请求通常是针对特定数据对象发出的,该特定数据对象对应于数 据库中的一条或多条数据记录,所W伴随访问请求的通常是针对数据库中的该一条或多条 数据记录进行的查询、删除、修改等操作。与此同时,在针对数据库的访问请求中需要包含 想要访问的数据对象的信息。
[0029] 在本申请的一个具体应用场景中,数据对象可W是各种商品,而数据库狭义上讲 可W是指商品的库存记录,例如,该数据库可W包含一个或多个商品数据对象,每个商品数 据对象都具有相应的商品标识,每个商品标识可W包含一条或多条具有商品最小库存单元 (SKU)标识的数据记录,表1示出了数据库的示意性结构。如表1所示,每个商品标识对应 数据库中的一条或多条数据记录,每条数据记录均具有商品SKU标识。数据记录的内容可 W包括商品属性、商品SKU标识、库存量等。
[0030] 相应地,访问请求中的数据对象信息可W包括待访问数据对象(在本例中,待访问 商品)的商品t不识和商品SKU柄识。
[00;31]表1 [0032]
[0033] 接下来,在步骤S120处,基于数据对象信息,确定访问请求涉及的数据库中的数 据记录的标识信息。
[0034] 根据本申请的构思,在记录层面上实施更细粒度的访问控制,即,针对数据库中的 各条数据记录统计相应的访问请求量并据此进行流量控制。因此,可监控和记录针对各条 数据记录的访问请求的数量,进而需要确定访问请求所涉及的数据库中的数据记录的标识 信息,W便于进行该监控和记录。换言之,在本申请的上下文中,该标识信息用于表征访问 请求所涉及的访问对象,即,数据库中的某条数据记录。在具体实施例中,可W分别统计针 对数据库中各条数据记录的访问请求量,并W该标识信息为索引记录在缓存或内存中。 [00巧]具体地,在本申请的一个实施例中,可W基于数据对象信息中的商品标识和商品 SKU标识,确定访问请求涉及的数据记录的标识信息。如表1所示,在数据库中,每个商品 标识可W对应或包含一个或多个商品SKU标识,每个商品SKU标识可W对应一个记录标识。 则在访问控制过程中,在接收到包含数据对象信息的访问请求时,可W根据数据对象信息 中的商品标识和商品SKU标识,确定出对应的记录标识,作为访问请求
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1