CN107066463A - 数据处理方法、装置和服务器 - Google Patents

数据处理方法、装置和服务器 Download PDF

Info

Publication number
CN107066463A
CN107066463A CN201610971954.6A CN201610971954A CN107066463A CN 107066463 A CN107066463 A CN 107066463A CN 201610971954 A CN201610971954 A CN 201610971954A CN 107066463 A CN107066463 A CN 107066463A
Authority
CN
China
Prior art keywords
request
queue
access
response
burst
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610971954.6A
Other languages
English (en)
Inventor
刘禹轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610971954.6A priority Critical patent/CN107066463A/zh
Publication of CN107066463A publication Critical patent/CN107066463A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据处理方法、装置和服务器;该方法包括:获取针对指定数据库分片的访问请求;确定当前是否存在所述数据库分片的请求队列,如果存在,则将所述访问请求添加至所述请求队列;在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。本申请实施例可有效降低对数据库的操作次数,提高系统的吞吐量。

Description

数据处理方法、装置和服务器
技术领域
本申请涉及数据处理技术领域,尤其是涉及一种数据处理方法、装置和服务器。
背景技术
互联网的迅猛发展,不断地改变着人们的工作和生活方式。随着人们对网络的依赖越发强烈,不同行业、不同类的网站(例如门户网站、电子商务平台等)竞相上线。随着线上业务的快速发展,网站时常会面临高并发访问或海量数据流的情况。
目前,面对高并发访问和海量数据流的问题,人们往往会想到通过异步处理的方式来解决。然而,这种异步处理方式也存在一些问题。异步处理方式下,异步队列中的写入请求一般是按照时间先后顺序添加的。在高并发场景下,例如数据库的高并发写入的场景,当从异步队列中拉取一批写入请求进行批量提交时,由于目前很多数据库都是采用分库分表设计的,而每一批待提交的写入请求的目的地往往不会是同一个数据库分片(例如一批写入请求有100个,其中30个写入请求的目的可能是数据库分片1,40个写入请求的目的可能是数据库分片2,剩下30个写入请求的目的可能是数据库分片3),这样批量的写入请求就不能一次性提交,仍然需要多次提交,因而影响了系统的吞吐能力。
发明内容
本申请实施例的目的在于提供一种数据处理方法、装置和服务器,以提高系统的吞吐能力。
为达到上述目的,一方面,本申请实施例提供了一种数据处理方法,包括:
获取针对指定数据库分片的访问请求;
确定当前是否存在所述数据库分片的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
另一方面,本申请实施例还提供了一种数据处理装置,包括:
访问获取模块,用于获取针对指定数据库分片的访问请求;
队列确认模块,用于确定当前是否存在所述数据库分片的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
访问提交模块,用于在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
另一方面,本申请实施例还提供一种服务器,包括:
处理器,
存储器,用于存储数据处理装置,所述数据处理装置被所述处理器处理时,执行如下步骤:
获取针对指定数据库分片的访问请求;
确定当前是否存在所述数据库分片的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
本申请实施例可将针对同一个数据库分片的访问请求缓存到同一个请求队列中;在满足预设的触发条件时,将请求队列中指定范围内的访问请求出队;由于请求队列中的访问请求的目的地是同一个数据库分片,从而可以将请求队列中指定范围内的访问请求,作为一个事务提交至对应的数据库分片。因而,本申请实施例可有效降低了对数据库的操作次数,提高了系统的吞吐量。
附图说明
此处所说明的附图用来提供对本申请实施例的进一步理解,构成本申请实施例的一部分,并不构成对本申请实施例的限定。在附图中:
图1为本申请一实施例的数据处理方法的流程图;
图2为本申请另一实施例的数据处理方法的流程图;
图3为本申请一实施例的数据库分片的请求队列示意图;
图4为本申请一实施例的通信发起方的响应队列示意图;
图5为本申请一实施例的应用场景示意图;
图6为本申请一实施例的数据处理装置的结构框图;
图7为本申请一实施例的服务器的结构框图;
图8为本申请一实施例的分布式集群服务器的场景示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本申请实施例做进一步详细说明。在此,本申请实施例的示意性实施例及其说明用于解释本申请实施例,但并不作为对本申请实施例的限定。
下面结合附图,对本申请实施例的具体实施方式作进一步的详细说明。
参考图1所示,本申请实施例的数据处理方法包括以下步骤:
S101、接收通信发起方发送的针对指定数据库分片的访问请求。
本申请实施方式的执行主体可以为一个服务器。
本申请的一个实施方式中,通信发起方可以为具有运算和通信交互功能的电子设备,例如业务服务器等;本申请的另一个实施方式中,通信发起方也可以为运行于该电子设备中,为数据处理和通信交互提供支持的软体,例如应用的服务端等。
本申请的一个实施方式中,通信发起方并不具体限定其数量,可以为一个,也可以为多个,或者为由若干个组成的集群。
本申请的一个实施方式中,数据库分片是指将整个数据库按照预设的分片规则划分成多个分库,每分库称为一个数据库分片。
本申请的一个实施方式中,通信发起方可以接收或生成访问请求,并确定所述访问请求针对指定数据库分片,然后对外提供针对指定数据库分片的访问请求。其中,所述接收访问请求,例如可以是接收用户发起的访问请求,比如电子支付平台的转账系统接收用户提交的转账请求等。所述生成访问请求可以是根据预设的业务处理逻辑而生成的访问请求,例如网购平台的订单系统在用户提交订单后,生成一个订单写入请求等。
本申请的一个实施方式中,所述通信发起方可以根据数据库分片的分片规则,来确定所述访问请求针对指定数据库分片。
在一个示例性实施方式中,各个数据库分片可以是基于用户标识(user ID)哈希(Hash)取模方式进行划分的,即对用户标识进行哈希取模运算,得到哈希值,然后将该用户的数据划分至与该哈希值对应的数据库分片,例如哈希值为2,则将该用户的数据划分至0002数据库分片。这样,每个数据库分片与哈希值形成映射关系。对应的,所述通信发起方确定所述访问请求针对指定数据库分片可以包括:
首先对访问请求所包含的用户标识进行哈希取模运算,得到哈希值;
然后根据预设的数据库分片与哈希值的映射关系,确定所述访问请求针对指定数据库分片。
在另一个示例性实施方式中,各个数据库分片可以是基于用户标识的标识分段进行划分的。例如将用户标识的1~1000标识分段对应数据库分片01,1001~2000标识分段对应数据库分片02,以此类推。这样,每个数据库分片与标识分段形成映射关系。
对应的,所述通信发起方确定所述访问请求针对指定数据库分片可以包括:
首先确定访问请求所包含的用户标识所属的标识分段;
然后根据预设的数据库分片与标识分段的映射关系,确定所述访问请求针对指定数据库分片。
当然,数据库分片的划分规则有很多,以上仅是举例说明,在本申请其他实施方式中,也可以采用其他的数据库分片的划分规则划分数据库。对应的,所述通信发起方可根据相应的分片规则来确定访问请求针对指定数据库分片。
本申请的一个实施方式中,所述访问请求可以为写请求,也可以为读请求等。由于通常情况下,不同的业务系统使用的数据库也不同,因此,本申请实施方式中,同一个请求队列中的访问请求一般是相同类型的访问请求,例如都是同一抽奖活动中的中奖结果写请求,或都是同一电子优惠券发放活动中的电子优惠券获取请求等。
S102、确定当前是否存在所述数据库分片的请求队列;如果当前不存在所述数据库分片的请求队列,则执行步骤S103及其后续步骤,否则,执行步骤S104及其后续步骤。
本申请的一个实施方式中,为便于后续可批量提交访问请求,并有利降低对数据库的操作次数,针对指定数据库分片的访问请求可添加至对应的数据库分片的请求队列中。如图3所示,例如当确定一个访问请求的目的地是数据库分片1时,应当首先判断当前是否在数据库分片1的请求队列。在一个示例性实施方式中,当为某个数据库分片创建一个请求队列时,就会在请求队列与数据库分片的映射关系表中,增加相应的记录;因此,通过查找该映射关系表,可以确定当前是否存在特定数据库分片的请求队列。
S103、为所述数据库分片创建一个请求队列。
本申请的一个实施方式中,所述为所述数据库分片创建一个请求队列是指:创建一个所述数据库分片专属的请求队列,以用于缓存针对该数据库分片的访问请求。
S104、将所述访问请求添加至所述请求队列。
S105、在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
本申请的一个实施方式中,所述满足预设的第一触发条件可以为:所述请求队列中的访问请求的数量达到预设阈值。所述预设阈值例如可以为1000个、2000个或者5000个等等。
本申请的另一个实施方式中,所述满足预设的第一触发条件可以为:所述请求队列达到预设的元素出队周期,所述元素出队周期例如可以为5毫秒、10毫秒、20毫秒等等,其中,每个请求队列的元素出队周期可以自该请求队列创建时间开始计算。
本申请的一个优选实施方式中,所述满足预设的第一触发条件可以为:所述请求队列中的访问请求的数量达到预设的阈值,或者所述请求队列达到预设的元素出队周期(即同时设置两个逻辑关系为或的触发条件,只要满足其中的任何一个就可以触发)。在高并发时期,由于访问请求量较大,如果仅设置了元素出队周期这一个触发条件(两个触发条件的逻辑关系为或),可能还未到元素出队周期时,队列就已经溢出,如果同时还设置了阈值触发条件,则可以很好的防止队列溢出;在非高并发时期,如果仅设置了阈值这一触发条件,由于访问请求量偏低,队列内缓存的访问请求的数量容易迟迟达不到阈值而无法触发,从而影响了访问请求提交的及时性,而如果同时设置元素出队周期触发条件(两个触发条件的逻辑关系为或),则可以有效保证了访问请求提交的及时性。
本申请的一个实施方式中,所述将所述请求队列中指定范围内的访问请求出队可以是将请求队列中的全部访问请求出队;也可以是请求队列中的一部分访问请求出队,例如请求队列中的前200个访问请求;具体可以根据实际需要设定。
本申请的一个实施方式中,所述作为一个事务提交至所述数据库分片,可以这样理解:例如请求队列中出队的访问请求为500个,由于这500个访问请求的目的地为同一个数据库分片,因此,可以将这500个访问请求一次性提交至该数据库分片,从而可以有效降低对数据库的操作次数。如果这500个访问请求全都提交成功,则认为该事务提交成功,否则,只要有未提交成功的,则认为该事务提交失败,即500个访问请求全都提交失败。其中,所述的提交成功,例如可以是在提交后的设定时间内,返回了针对访问请求的成功处理结果。所述的提交失败,例如可以是在提交后的设定时间内未返回响应或返回了处理失败的响应。
在本申请的一个实施方式中,在步骤S105之后,还可以包括以下步骤:
S106、接收所述数据库分片针对所述事务返回的处理结果,并据此确定对应访问请求的访问响应。
本申请的一个实施方式中,所述数据库分片针对所述事务返回的处理结果中包括各个对应访问请求的处理结果,例如作为一个事务一次性提交至某一数据库分片的访问请求为100个,则该数据库分片针对该事务返回的处理结果中,包含了这100个访问请求的处理结果,于是可以根据这100个访问请求的处理结果,确定其中每个访问请求的访问响应。
S107、确定每个访问响应所对应的通信发起方。
本申请的一个实施方式中,每个访问请求均是携带有源地址信息的,对应的每个访问响应所携带的目的地址信息,即为对应访问请求的源地址信息。由此,可以根据每个访问响应所携带的目的地址信息,确定其对应的通信发起方。
S108、确定当前是否存在每个访问响应所对应的通信发起方的响应队列。如果当前不存在某一访问响应所对应的通信发起方的响应队列,则执行步骤S110及其后续步骤,否则,执行步骤S109及其后续步骤。
本申请的一个实施方式中,与上述步骤S102类似,为便于后续批量提交访问响应,需将目的地为同一通信方的访问响应,添加至该的通信发起方的响应队列中。如图4所示,例如当确定一个访问响应的目的地为业务服务器1时,应当首先判断当前是否在业务服务器1的响应队列。在一个示例性实施方式中,当为某个业务服务器1创建一个响应队列时,就会在响应队列与业务服务器的映射关系表中,增加相应的记录;因此,通过查找该映射关系表,可以确定当前是否存在特定业务服务器的响应队列。
S109、为不存在响应队列的通信发起方创建一个响应队列。
本申请的一个实施方式中,所述为不存在响应队列的通信发起方创建一个响应队列是指:创建一个不存在响应队列的通信发起方专属的请求队列,以用于缓存目的地为该通信发起方的访问响应。
S110、将访问响应添加至相应的响应队列。
S111、对于每个访问响应所对应的通信发起方的响应队列,在满足预设第二触发条件时,将其中指定范围内的访问响应出队,并作为一个事务返回给对应的通信发起方。
本申请的一个实施方式中,所述满足预设的第二触发条件可以为:所述响应队列中的访问响应的数量达到预设阈值。所述预设阈值例如可以为500个、1000个或者2000个等等。
本申请的另一个实施方式中,所述满足预设的第一触发条件可以为:所述响应队列达到预设的元素出队周期,所述元素出队周期例如可以为5毫秒、15毫秒、20毫秒等等,其中,每个响应队列的元素出队周期可以自该响应队列创建时间开始计算。
本申请的一个优选实施方式中,所述满足预设的第一触发条件可以为:所述响应队列中的访问响应的数量达到预设的阈值,或者所述响应队列达到预设的元素出队周期(即同时设置两个逻辑关系为或的触发条件,只要满足其中的任何一个就可以触发)。
如图2所示,为本申请另一个实施方式的数据处理方法,其包括以下步骤:
S201、接收访问请求,并根据数据库的分片规则确定所述访问请求所针对的数据库分片。
本申请实施方式的执行主体可以为一个服务器。
本申请实施方式接收到的是通信发起方发送的访问请求,然后根据数据库的分片规则确定所述访问请求所针对的数据库分片。与图1所示数据处理方法不同在于,确定访问请求所针对的数据库分片的任务不是由通信发起方完成的,而是由本申请实施方式的执行主体来完成。至于根据数据库的分片规则确定访问请求所针对的数据库分片,可参见图1所示数据处理方法的步骤S101,在此不再赘述。
S202、确定当前是否存在所述数据库分片的请求队列;如果当前不存在所述数据库分片的请求队列,则执行步骤S203及其后续步骤,否则,执行步骤S204及其后续步骤。
S203、为所述数据库分片创建一个请求队列。
本申请的一个实施方式中,所述为所述数据库分片创建一个请求队列是指:创建一个所述数据库分片专属的请求队列,以用于缓存针对该数据库分片的访问请求。
S204、将所述访问请求添加至所述请求队列。
S205、在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
在本申请的一个实施方式中,在步骤S205之后,还可以包括以下步骤:
S206、接收所述数据库分片针对所述事务返回的处理结果,并据此确定对应访问请求的访问响应。
S207、确定每个访问响应所对应的通信发起方。
本申请的一个实施方式中,每个访问请求均是携带有源地址信息的,对应的每个访问响应所携带的目的地址信息,即为对应访问请求的源地址信息。由此,可以根据每个访问响应所携带的目的地址信息,确定其对应的通信发起方。
S208、确定当前是否存在每个访问响应所对应的通信发起方的响应队列。如果当前不存在某一访问响应所对应的通信发起方的响应队列,则执行步骤S210及其后续步骤,否则,执行步骤S209及其后续步骤。
S209、为不存在响应队列的通信发起方创建一个响应队列。
本申请的一个实施方式中,所述为不存在响应队列的通信发起方创建一个响应队列是指:创建一个通信发起方专属的请求队列,以用于缓存目的地为该通信发起方的访问响应。
S210、将访问响应添加至相应的响应队列。
S211、对于每个访问响应所对应的通信发起方的响应队列,在满足预设第二触发条件时,将其中指定范围内的访问响应出队,并作为一个事务返回给对应的通信发起方。
本申请实施方式的S201~S211的具体细节,请参见图1所示数据处理方法的S101~S111,在此不再赘述。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
下面介绍本申请图1所示数据处理方法一种应用场景:
参考图5所示,为某第三方电子支付平台的百万红包抽奖业务的系统架构,业务系统接收用户的抽奖请求并与抽奖系统交互,以获得抽奖结果。
当用户中奖时,业务系统需将中奖结果交由抽奖系统落地至数据库。业务系统在发起中奖结果写入请求前,先根据数据库分片的分片规则确定中奖结果写入请所对应的数据库分片,然后发起针对该数据库分片的中奖结果写入请求。
当接收到业务系统发送的针对指定数据库分片的中奖结果写入请求时,抽奖系统先确定当前是否存在该数据库分片的写入请求队列,如果存在,则将所述中奖结果写入请求添加至该写入请求队列中,并等待提交结果;如果不存在,则为该数据库分片创建一个写入请求队列,将所述中奖结果写入请求添加至该写入请求队列中,并等待提交结果。
在满足触发条件时(例如写入请求队列中缓存的中奖结果写入请求的数量达到阈值),抽奖系统将所述写入请求队列中的中奖结果写入请求全部出队,并作为一个事务提交至对应的数据库分片。
事务提交后,数据库分片会返回提交结果至抽奖系统,抽奖系统并据此提交结果确定对应中奖结果写入请求的中奖结果写入响应,并确定每个中奖结果写入响应所对应的业务系统;
抽奖系统确定当前是否存在每个中奖结果写入响应所对应的业务系统的写入响应队列;如果存在,则抽奖系统将对应的中奖结果写入响应添加至相应的写入响应队列;
对于每个中奖结果写入响应所对应的业务系统的写入响应队列,在满足触发条件(例如写入响应队列中缓存的中奖结果写入响应的数量达到阈值)时,抽奖系统将其中指定范围内的中奖结果写入响应出队,并作为一个事务返回给对应的业务系统;再由业务系统根据中奖结果写入响应通知用户中奖情况。
参考图6所示,为本申请一实施方式的数据处理装置,其包括:
访问获取模块61,用于获取针对指定数据库分片的访问请求;
队列确认模块62,用于确定当前是否存在所述数据库分片的与所述访问请求场景相同的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
访问提交模块63,用于在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
本申请实施实施方式的数据处理装置与上述数据处理方法对应,因此,有关于本申请实施实施方式的数据处理装置的细节内容,请参见上述数据处理方法,在此不再赘述。
参见图7所示,本申请实施方式的服务器在硬件层面可以包括处理器、内部总线、存储器和内存,当然还可能包括其他业务所需要的硬件。处理器从存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。其中,所述数据处理装置被所述处理器执行时,执行如下步骤:
获取针对指定数据库分片的访问请求;
确定当前是否存在所述数据库分片的与所述访问请求场景相同的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
本申请实施实施方式的服务器中,处理器所执行的步骤与上述数据处理方法对应,因此,有关于所述处理器所执行的步骤的细节内容,请参见上述数据处理方法,在此不再赘述。
结合图8所示,在一个应用场景下,上述图7所示的服务器可以是以分布式集群的方式存在。
本申请以上实施例可将针对同一个数据库分片的访问请求缓存到同一个请求队列中;在满足预设的触发条件时,将请求队列中指定范围内的访问请求出队;由于请求队列中的访问请求的目的地是同一个数据库分片,从而可以将请求队列中指定范围内的访问请求,作为一个事务提交至对应的数据库分片。因而,本申请实施例可有效降低了对数据库的操作次数,提高了系统的吞吐量。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种数据处理方法,其特征在于,包括:
获取针对指定数据库分片的访问请求;
确定当前是否存在所述数据库分片的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
2.根据权利要求1所述的方法,其特征在于,所述获取针对指定数据库分片的访问请求,包括:
接收通信发起方发送的针对指定数据库分片的访问请求。
3.根据权利要求1所述的方法,其特征在于,所述获取针对指定数据库分片的访问请求,包括:
接收访问请求,并根据数据库的分片规则确定所述访问请求所针对的数据库分片。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述访问请求包括以下中的任意一种:
写请求;
读请求。
5.根据权利要求1所述的方法,其特征在于,还包括:
如果当前不存在所述数据库分片的请求队列,则为所述数据库分片的创建一个请求队列,并将所述访问请求添加至所述请求队列。
6.根据权利要求1所述的方法,其特征在于,所述满足预设的第一触发条件包括以下中的一种:
所述请求队列中的访问请求的数量达到预设阈值;
所述请求队列达到预设的元素出队周期;
所述请求队列中的访问请求的数量达到预设的阈值,或者所述请求队列达到预设的元素出队周期。
7.根据权利要求1所述的方法,其特征在于,当存在多个通信发起方时,在所述将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交所述数据库分片之后,还包括:
接收所述数据库分片针对所述事务返回的处理结果,并据此确定对应访问请求的访问响应;
确定每个访问响应所对应的通信发起方;
确定当前是否存在每个访问响应所对应的通信发起方的响应队列;如果存在,则将对应的访问响应添加至相应的响应队列;
对于每个访问响应所对应的通信发起方的响应队列,在满足预设第二触发条件时,将其中指定范围内的访问响应出队,并作为一个事务返回给对应的通信发起方。
8.根据权利要求7所述的方法,其特征在于,所述满足预设的第二触发条件包括以下中的一种:
所述响应队列中的访问响应的数量达到预设阈值;
所述响应队列达到预设的元素出队周期;
所述响应队列中的访问响应的数量达到预设的阈值,或者所述响应队列达到预设的元素出队周期。
9.根据权利要求7所述的方法,其特征在于,还包括:
如果当前不存在某一访问响应所对应的通信发起方的响应队列,则为该不存在响应队列的通信发起方创建一个响应队列,并将该访问响应添加至该响应队列。
10.一种数据处理装置,其特征在于,包括:
访问获取模块,用于获取针对指定数据库分片的访问请求;
队列确认模块,用于确定当前是否存在所述数据库分片的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
访问提交模块,用于在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
11.一种服务器,其特征在于,包括:
处理器,
存储器,用于存储数据处理装置,所述数据处理装置被所述处理器处理时,执行如下步骤:
获取针对指定数据库分片的访问请求;
确定当前是否存在所述数据库分片的请求队列,如果存在,则将所述访问请求添加至所述请求队列;
在满足预设的第一触发条件时,将所述请求队列中指定范围内的访问请求出队,并作为一个事务提交至所述数据库分片。
CN201610971954.6A 2016-10-28 2016-10-28 数据处理方法、装置和服务器 Pending CN107066463A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610971954.6A CN107066463A (zh) 2016-10-28 2016-10-28 数据处理方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610971954.6A CN107066463A (zh) 2016-10-28 2016-10-28 数据处理方法、装置和服务器

Publications (1)

Publication Number Publication Date
CN107066463A true CN107066463A (zh) 2017-08-18

Family

ID=59616955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610971954.6A Pending CN107066463A (zh) 2016-10-28 2016-10-28 数据处理方法、装置和服务器

Country Status (1)

Country Link
CN (1) CN107066463A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109617974A (zh) * 2018-12-21 2019-04-12 珠海金山办公软件有限公司 一种请求处理方法、装置及服务器
CN111488366A (zh) * 2020-04-09 2020-08-04 百度在线网络技术(北京)有限公司 关系型数据库更新方法、装置、设备及存储介质
WO2021068521A1 (zh) * 2019-10-12 2021-04-15 浪潮电子信息产业股份有限公司 一种本地存储引擎系统的数据处理方法、装置以及设备
CN113645304A (zh) * 2021-08-13 2021-11-12 恒生电子股份有限公司 数据服务处理方法及相关设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541997A (zh) * 2011-11-23 2012-07-04 苏州阔地网络科技有限公司 一种自动分库的数据库执行方法及系统
CN102591909A (zh) * 2011-01-14 2012-07-18 赛门铁克公司 在去重复存储系统中提供增强的可扩展性的系统及方法
CN102930062A (zh) * 2012-11-30 2013-02-13 南京富士通南大软件技术有限公司 一种数据库快速水平扩展的方法
CN103064833A (zh) * 2011-10-18 2013-04-24 阿里巴巴集团控股有限公司 一种清理数据库历史数据的方法和系统
CN103853718A (zh) * 2012-11-28 2014-06-11 纽海信息技术(上海)有限公司 分片数据库访问方法及数据库系统
CN104182295A (zh) * 2013-05-27 2014-12-03 阿里巴巴集团控股有限公司 一种数据备份方法及装置
US20140372486A1 (en) * 2013-06-12 2014-12-18 Oracle International Corporation In-Database Sharded Queue
CN104317749A (zh) * 2014-10-31 2015-01-28 小米科技有限责任公司 信息写入方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591909A (zh) * 2011-01-14 2012-07-18 赛门铁克公司 在去重复存储系统中提供增强的可扩展性的系统及方法
CN103064833A (zh) * 2011-10-18 2013-04-24 阿里巴巴集团控股有限公司 一种清理数据库历史数据的方法和系统
CN102541997A (zh) * 2011-11-23 2012-07-04 苏州阔地网络科技有限公司 一种自动分库的数据库执行方法及系统
CN103853718A (zh) * 2012-11-28 2014-06-11 纽海信息技术(上海)有限公司 分片数据库访问方法及数据库系统
CN102930062A (zh) * 2012-11-30 2013-02-13 南京富士通南大软件技术有限公司 一种数据库快速水平扩展的方法
CN104182295A (zh) * 2013-05-27 2014-12-03 阿里巴巴集团控股有限公司 一种数据备份方法及装置
US20140372486A1 (en) * 2013-06-12 2014-12-18 Oracle International Corporation In-Database Sharded Queue
CN104317749A (zh) * 2014-10-31 2015-01-28 小米科技有限责任公司 信息写入方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109617974A (zh) * 2018-12-21 2019-04-12 珠海金山办公软件有限公司 一种请求处理方法、装置及服务器
WO2021068521A1 (zh) * 2019-10-12 2021-04-15 浪潮电子信息产业股份有限公司 一种本地存储引擎系统的数据处理方法、装置以及设备
CN111488366A (zh) * 2020-04-09 2020-08-04 百度在线网络技术(北京)有限公司 关系型数据库更新方法、装置、设备及存储介质
CN113645304A (zh) * 2021-08-13 2021-11-12 恒生电子股份有限公司 数据服务处理方法及相关设备
CN113645304B (zh) * 2021-08-13 2023-06-16 恒生电子股份有限公司 数据服务处理方法及相关设备

Similar Documents

Publication Publication Date Title
EP3036662B1 (en) Generating cache query requests
EP3547129A1 (en) Block chain consensus method and device
CN107066463A (zh) 数据处理方法、装置和服务器
CN107450903B (zh) 一种信息处理方法及装置
CN106789831A (zh) 识别网络攻击的方法和装置
CN108683695A (zh) 热点访问处理方法、缓存访问代理设备及分布式缓存系统
US20150012513A1 (en) Providing a query results page
CN105871959A (zh) 一种消息传递的方法、系统和装置
CN110022227A (zh) 业务处理方法、装置、设备及存储介质
CN110020383B (zh) 一种页面数据请求处理方法及装置
CN111506580B (zh) 一种基于中心化块链式账本的交易存储方法
CN111400578A (zh) 货物数据查询方法、装置、计算机设备和存储介质
CN109542612A (zh) 一种热点关键字获取方法、装置及服务器
CN110264213A (zh) 一种信息的处理方法、装置及设备
US20200167662A1 (en) Performing data processing based on decision tree
CN103530345A (zh) 短文本特征扩展及拟合特征库构建方法、装置
CN116737084A (zh) 一种队列统计方法、装置、电子设备及存储介质
CN105144099A (zh) 通信系统
CN113626483B (zh) 一种填写表单的前端缓存方法、系统、设备及存储介质
CN106250327B (zh) 一种在键-值存储中热点识别方法及装置
CN111988195B (zh) 用于分组测试的应答方案确定方法、装置、设备及介质
CN107301224A (zh) 一种信息分享的方法及装置
CN111143351B (zh) Imsi数据管理方法及设备
CN112732542A (zh) 信息处理方法、信息处理装置及终端设备
CN113076067A (zh) 淘汰缓存数据的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right