一种资源处理方法及装置与流程

文档序号:11177208阅读:300来源:国知局
本发明涉及数据库
技术领域
:,尤其是涉及一种资源处理方法及装置。
背景技术
::随着互联网技术的不断发展,网络运营商为用户提供便捷的网络服务的同时,也需要维护自身的数据库系统,不断对数据库中存储的数据进行更新,以使用户通过互联网体验更加便捷的网络服务。通常情况下,相同资源,在数据库中存储时,一般存储在数据库中的同一个数据存储区中。其中,相同资源,用户可以根据不同的需求进行定义。举一例进行阐述,对于存储火车票的数据库,火车票所对应的同一车次,可以作为相同资源。如k23,k24,两个车次的火车票,则可以作为两个资源,全部k23车次的火车票数量为一个相同资源,全部k24车次的火车票数量为另一个相同资源。若多个操作请求并发请求对数据库中存储的相同资源进行减库存操作时,数据库中存储的该资源可能会出现错误。仍以火车票为例进行详细阐述,多个操作请求在同一时间均请求购买k23次车票,这就需要对数据库中存储的k23次车票的总数做减法,但是由于多个操作请求同时请求对该k23次车票的总数做减法,由于网络发生拥塞或者其它故障,则该k23次车票的总数在修改不及时的情况下容易出现负数。为了防止并发操作过程中数据库中存储的同一资源可能会出现错误,一种解决方式为在对数据库中存储的相同资源做减库存操作时,可以设置同一时间仅允许一个操作请求做减库存操作,但是这样解决又失去了数据库并发操作的意义。目前还没有提出一种有效的解决方案,实现在提高数据库系统的并发操 作的同时,能够防止减库存操作变为负数的情况。技术实现要素:本发明提供了一种资源处理方法、装置及设备,用于实现在提高数据库系统的并发操作的同时,能够防止减库存操作变为负数。第一方面,提供了一种资源处理方法,包括:获取至少两个操作请求,其中所述操作请求用于对数据库中存储的同一数据进行减库存操作,所述同一数据为所述数据库中相同资源的总数,所述减库存是对所述数据库中相同资源的总数做减法,所述数据库中包含至少两个数据存储区,各个存储区中存储的相同资源的和值等于所述相同资源的总数,所述各个数据存储区中存储的数据大于或等于1。为所述至少两个操作请求,分别分配一个数据存储区;根据各所述操作请求,对与各所述操作请求对应的所述数据存储区中存储的数据做减库存操作。结合第一方面,在第一方面的第一种可能的实现方式中,在对与各所述操作请求对应的所述数据存储区中存储的数据做减库存操作之后,还包括:获取各数据存储区中减库存操作后的数据的数值;将各所述数值求和,得到和值;根据所述和值,更新所述同一数据。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在获取至少两个操作请求之前,还包括:将所述数据库划分为至少两个数据存储区;获取所述数据库中存储的相同资源的总数;根据预设规则,将所述相同资源的总数配置到所述至少两个数据存储区中。结合第一方面至第一方面的第二种可能的实现方式的任一一种可能的实现方式,在第一方面的第三种可能的实现方式中,在获取至少两个操作请求之前,还包括:确定数据库中的数据存储区的数量;获取至少两个操作请求,包括:获取小于或等于所述数据存储区的数量的操作请求。结合第一方面的第三种可能的实现方式的任一一种可能的实现方式,在第 一方面的第四种可能的实现方式中,所述预设规则包括负载均衡规则;或均方差规则。第二方面,提供一种资源处理装置,该资源处理装置具有实现上述第一方面和第一方面的第一种至第二种可能的实现方式中的任一种方法设计中的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。第三方面,提供了一种资源处理设备,包括:存储器,用于存储数据。接口,用于获取至少两个操作请求,其中所述操作请求用于对数据库中存储的同一数据进行减库存操作,所述同一数据为所述数据库中相同资源的总数,所述减库存是对所述数据库中相同资源的总数做减法,所述数据库中包含至少两个数据存储区,各个存储区中存储的相同资源的和值等于所述相同资源的总数,所述各个数据存储区中存储的数据大于或等于1;处理器,用于为所述至少两个操作请求,分别分配一个数据存储区;根据各所述操作请求,对与各所述操作请求对应的所述数据存储区中存储的数据做减库存操作。结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器,还用于获取各数据存储区中减库存操作后的数据的数值;将各所述数值求和,得到和值;根据所述和值,更新所述同一数据。结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器,还用于将所述数据库划分为至少两个数据存储区,获取所述数据库中存储的相同资源的总数;所述执行单元,还用于根据预设规则,将所述相同资源的总数配置到所述至少两个数据存储区中。结合第三方面至第一方面的第二种可能的实现方式的任一一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器,还用于确定数据库中的数据存储区的数量;获取小于或等于所述数据存储区的数量的操作请求。结合第三方面的第三种可能的实现方式的任一一种可能的实现方式,在第 三方面的第四种可能的实现方式中,所述处理器,确定的所述预设规则包括负载均衡规则;或均方差规则。通过采用上述技术方案,在接收到至少两个用于对数据库中存储的同一数据进行减库存操作的操作请求时,为该至少两个操作骑牛分别分配一个数据存储区,根据各操作请求,对与各操作请求对应的数据存储区中存储的数据做减库存操作,在上述技术方案中,在同一个数据库中包含至少两个数据存储区,针对每个操作请求,均分配与之对应的至少一个数据存储区,从而实现对数据库进行减库存的并发操作,相应地地,由于给每个操作请求均分配了一个数据存储区,每个操作请求在各自的数据存储区中作减库存操作,每个数据存储区之间又是彼此独立的,因此能够较好地防止减库存操作变为负数。附图说明图1为本发明实施例中,提出的资源处理方法流程图;图2为本发明实施例中,提出的包含数据存储区的数据库结构示意图;图3为本发明实施例中,提出的资源处理方法流程图;图4为本发明实施例中,提出的资源处理方法流程图;图5为本发明实施例中,提出的资源处理装置结构组成示意图;图6为本发明实施例中,提出的资源处理设备结构组成示意图。具体实施方式针对并发操作过程中,数据库中存储的同一资源可能会出现错误,无法有效地解决在提高数据库系统的并发操作的同时,能够防止减库存操作变为负数的情况,本发明提出的技术方案中,在同一个数据库中包含至少两个数据存储区,针对每个操作请求,均分配与之对应的至少一个数据存储区,从而实现对数据库进行减库存的并发操作,相应地地,由于给每个操作请求均分配了一个数据存储区,每个操作请求在各自的数据存储区中作减库存操作,每个数据存 储区之间又是彼此独立的,因此能够较好地防止减库存操作变为负数。下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。本发明实施例提出的技术方案中,一个数据库中设置了多个数据存储区,即多个数据存储区设置在同一个数据库中,相应地,本发明实施例提出的资源处理方法,还可以应用在分布式数据存储系统中,在分布式数据存储系统中,包含多个分库形式的数据库,在每个分库形成的数据库中,可以设置多个数据存储区。数据存储区中存储的数据大于或等于1。下面将详细阐述本发明实施例提出的资源处理方法,如图1所示,其具体处理流程如下述:步骤11,接收至少两个操作请求。用户可以通过客户端发送操作请求。在本发明实施例提出的技术方案中,操作请求是用于对数据库中存储的同一数据进行减库存操作。同一数据为数据库中相同资源的总数,减库存是对数据库中相同资源的总数做减法,数据库中包含至少两个数据存储区,各个存储区中存储的相同资源的和值等于数据库中存储的相同资源的总数。可选地,可在11之前,可以确定数据库中的数据存储区的数量,获取小于或等于数据存储区的数量的操作请求。举一例进行详细阐述:在本发明实施例提出的技术方案中,为便于阐述,以数据库中存储的数据为车票,操作请求为用户请求购买车票,对数据库中存储的车票数量进行修改为例进行详细阐述,后文将继续沿用该示例。其中,每一车次的车票作为同一数据,用户请求购买三张车票,该三张车票对应三个操作请求。其中,该车票可以是aaaa次车票,该车票的预定时间可以是bb:00。则在具体实施时,客户端接收至少一个用户在bb:00时间发送的预定至少两张aaaa次车票的操作请求,即获取两个操作请求。步骤12,为至少两个操作请求,分别分配一个数据存储区。本发明实施例提出的技术方案中,在同一个数据库中,设置了多个数据存储区,每个数据存储区存储设定的数据。其中,可以在数据存储区中按照负载均衡原则存储数据。例如,假设该数据的总数为8,若设置了4个数据存储区,可以按照负载均衡原则,在每个数据存储区中存储的数值均是2。仍以上述步骤11中用户请求购买车票为例进行详细阐述,假设该aaaa次车票的总数量为8张,数据库中的数据存储区的数量为4,如图2所示,每个数据存储区中存储的数值为2,即每个数据存储区存储的车票的数量是2张,则4个数据存储区的总数量仍然是8,与设定的aaaa次车票的总数量为8张相同。若此时共接收到一个用户购买3张车票的操作请求,如图2所示,购买3张车票的操作请求分别对应操作请求1~操作请求3,则将该3个操作请求分别分配到数据存储区1~数据存储区3中进行处理。或者将该3个操作请求分别分配到数据存储区2~数据存储区4中进行处理。一种较佳地实施方式,本发明实施例提出的技术方案中,可以应用在对数据库中存储的相同资源的总数做减法的情形中,例如限购情况下的商品促销、医院挂号、银行排号系统等等。在具体实施时,可以设定能够处理的操作请求的最大值,该最大值可以和数据库中设置的数据存储区的数量一致。举一例进行详细阐述:仍以订购车票为例进行详细阐述,假设数据库中共设置有8个数据存储区,则可以限定最多能够接收三个操作请求。步骤13,根据各操作请求,对与各操作请求对应的数据存储区中存储的数据做减库存操作。沿用上述步骤11-12中的用户请求购买车票的示例进行详细阐述,将该3个操作请求分别分配到数据存储区1~数据存储区3中进行处理,每个操作请求对应一张车票,则为该用户分配一张车票的同时,修改该数据存储区中存储的数据,例如数据存储区1~数据存储区3中存储的数值分别变为1。在本发明实施例上述步骤11~步骤13提出的技术方案中,通过在数据库中 设置至少一个数据存储区,从而,在接收到并行的操作请求时,避免了同时对数据库中的同一行进行操作,而是将操作请求分配给不同的数据存储区中进行操作,在增加数据库并发处理的同时,也能够避免资源溢出,如车票“超卖”的问题,在进行数据存储时,不需要进行分库存储,能够降低应用的复杂度,数据直接存储在同一个数据库中,可以避免服务器故障导致数据丢失的问题,提升数据库系统的性能。可选地,如图3所示,在上述步骤13对与各操作请求对应的数据存储区中存储的数据做减库存操作之后,还可以包括:步骤31,获取各数据存储区中减库存操作后的数据的数值。步骤32,将各数值求和,得到和值。步骤33,根据和值,更新同一数据。仍以求购车票为例进行详细阐述。在修改数据存储区中存储的数据之后,采用上述步骤31~步骤33,确定4个数据存储区中的车票的和值,分别为1、1、1和2,则和值为5,则说明系统中还剩余5张该车次的车票。将该和值5,更新数据库中存储的该车次aaaa的车票的总数。在对总数进行更新时,仅需要访问一次就可以获得数据对应的总数,可以有效降低频繁网络交换带来的延迟。可选地,如图4所示,在上述步骤11获取至少两个操作请求之前,还包括:步骤41,将数据库划分为至少两个数据存储区。步骤42,获取数据库中存储的相同资源的总数。步骤43,根据预设规则,将相同资源的总数配置到至少两个数据存储区中。在上述方案中,在数据库中设置数据存储区时,可以确定允许并行处理数据的最大值,以及针对数据库中存储的任一资源,确定同一资源对应的总数量,按照负载均衡原则将总数量配置到设置的各数据存储区中。例如,允许并行处理数据的最大值为10,则需要在数据库中最少设置10 个数据存储区,数据库中存储的某一数据对应的总数量为50,按照负载均衡原则,将50平均分到该设置的10个数据存储区中,即10个数据存储区中的每个数据存储区存储的资源数量为5。在上述方案中,在数据库中设置数据存储区时,可以确定允许并行处理数据的最大值,以及针对数据库中存储的任一资源,确定同一资源对应的总数量,还可以按照均方差规则或者其他设定方式,将总数量配置到设置的各数据存储区中。本发明实施例还提出一种资源处理系统,如图5所示,包括客户端和设置在服务端的数据库。客户端,可以是通过应用的方式设置在终端中,或者是设置在终端中的一个模块或芯片。客户端用于为用户提供服务,接收用户发送的对数据库中存储的资源进行操作的操作请求。数据库,用于存储资源。在本发明实施例提出的技术方案中,在数据库中,设置数据处理装置,该数据处理装置可以通过并发计数器(concurrentcounter,ccnter)实现。该数据处理装置如图5所示,可以包括存储单元61、接口单元62以及处理单元63。存储单元61,用于存储数据。存储单元61,内部设置至少一个数据存储区,每个数据存储区存储的数据大于或等于1,且数据存储区均设置在同一个数据库中。接口单元62,用于接收至少两个操作请求。接口单元62,具体实施中,可以通过接口指令:set(),get(),dec(),inc(),setmaxconc()实现。其中:set()用于设置一个初始计数值。get()用于获取当前的计数值(n行计数之和)。dec()用于将当前计数减去一个指定的值。inc()用于将当前计数增加一个指定的值。setmaxconc()用于设置最大的并发量,根据该并发量分配存储的行数,然后再将初始计数值平均分布到每一行。上述接口对应的对应的sql语句为:set()对应updatexxtablesetcolumnxx=valuexx。get()对应selectcolumnxxfromxxtable。dec()对应updatexxtablesetcolumnxx=columnxx–const。inc()对应updatexxtablesetcolumnxx=columnxx+const。处理单元63,用于为至少两个操作请求,分别分配一个数据存储区;根据各操作请求,对与各操作请求对应的数据存储区中存储的数据做减库存操作。其中,上述处理单元63,还用于获取各数据存储区中减库存操作后的数据的数值;将各所述数值求和,得到和值;根据所述和值,更新所述同一数据。其中,上述处理单元63,还用于将所述数据库划分为至少两个数据存储区;获取所述数据库中存储的相同资源的总数;根据预设规则,将所述相同资源的总数配置到所述至少两个数据存储区中。可选地,上述处理单元63,还用于确定数据库中的数据存储区的数量;获取小于或等于所述数据存储区的数量的操作请求。可选地,上述处理单元63,所采用的所述预设规则包括负载均衡规则;或均方差规则。相应地,本发明实施例还提出一种资源处理设备,如图6所示,包括:存储器71,用于存储数据。存储器可以是易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);或者非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);或者上述种类的存储器的组合。存储器71,内部设置至少一个数据存储区,每个数据存储区存储的数据大于或等于1,且数据存储区均设置在同一个数据库中。接口72,用于接收至少两个操作请求。接口可以为以下一种或多种:提供有线接口的网络接口控制器(英文:networkinterfacecontroller,缩写:nic),例如以太网nic,该以太网nic可以提供铜线和/或光纤接口;提供无线接口的nic,例如无线局域网(英文:wirelesslocalareanetwork,缩写:wlan)nic。接口72,具体实施中,可以通过接口指令:set(),get(),dec(),inc(),setmaxconc()实现。其中:set()用于设置一个初始计数值。get()用于获取当前的计数值(n行计数之和)。dec()用于将当前计数减去一个指定的值。inc()用于将当前计数增加一个指定的值。setmaxconc()用于设置最大的并发量,根据该并发量分配存储的行数,然后再将初始计数值平均分布到每一行。上述接口对应的对应的sql语句为:set()对应updatexxtablesetcolumnxx=valuexx。get()对应selectcolumnxxfromxxtable。dec()对应updatexxtablesetcolumnxx=columnxx–const。inc()对应updatexxtablesetcolumnxx=columnxx+const。处理器73,用于为至少两个操作请求,分别分配一个数据存储区;根据各操作请求,对与各操作请求对应的数据存储区中存储的数据做减库存操作。处理器73可以是中央处理器(英文:centralprocessingunit,缩写:cpu),或者是cpu和硬件芯片的组合。信号处理器还可以是网络处理器(英文:networkprocessor,缩写:np)。或者是cpu和np的组合,或者是np和硬件芯片的组合。上述硬件芯片可以是以下一种或多种的组合:专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld)。其中,上述处理器73,还用于获取各数据存储区中减库存操作后的数据的数值;将各所述数值求和,得到和值;根据所述和值,更新所述同一数据。其中,上述处理器73,还用于将所述数据库划分为至少两个数据存储区;获取所述数据库中存储的相同资源的总数;根据预设规则,将所述相同资源的总数配置到至少两个数据存储区中。可选地,上述处理器73,还用于确定数据库中的数据存储区的数量;获取小于或等于所述数据存储区的数量的操作请求。可选地,上述处理器73,确定的所述预设规则包括负载均衡规则;或均方差规则。本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1