CN111694873A - 虚拟资源包的处理方法、装置及数据库服务器 - Google Patents
虚拟资源包的处理方法、装置及数据库服务器 Download PDFInfo
- Publication number
- CN111694873A CN111694873A CN202010522405.7A CN202010522405A CN111694873A CN 111694873 A CN111694873 A CN 111694873A CN 202010522405 A CN202010522405 A CN 202010522405A CN 111694873 A CN111694873 A CN 111694873A
- Authority
- CN
- China
- Prior art keywords
- virtual resource
- client
- package
- identifier
- database
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 26
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000013473 artificial intelligence Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000007717 exclusion Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种虚拟资源包的处理方法、装置、数据库服务器及计算机可读存储介质;方法包括:接收多个客户端的虚拟资源包请求,虚拟资源包请求携带虚拟资源包标识;将数据库中与虚拟资源包标识关联的虚拟资源包、以及与虚拟资源包标识关联的版本标识发送至对应的客户端;针对多个客户端中的任一客户端,接收任一客户端针对所接收的虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及接收任一客户端针对所接收的版本标识进行更新后形成的待提交版本标识;将数据库中与虚拟资源包标识关联的版本标识,与待提交版本标识比对,并根据比对结果处理待提交虚拟资源包。通过本发明,能够降低数据库性能的开销、提升领取虚拟资源包的处理效率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种虚拟资源包的处理方法、装置、数据库服务器及计算机可读存储介质。
背景技术
为了提高用户的活跃度和用户粘性,平台(例如社交网络平台)通常会向用户发放虚拟资源包。以游戏为例,游戏平台会向游戏玩家发放礼包,礼包中包含了各种游戏装备、角色皮肤、以及金币等各种虚拟资源。
然而,在平台的数据库响应多个用户的虚拟资源包的请求时,相关技术通常使用数据库的锁技术(例如悲观锁)进行互斥写入,即,在响应一个请求时另一个请求只能等待,导致数据库性能的大量开销和用户侧明显的等待延迟,影响用户体验。
发明内容
本发明实施例提供一种虚拟资源包的处理方法、装置、数据库服务器及计算机可读存储介质,能够降低数据库性能的开销,提升领取虚拟资源包的处理效率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种虚拟资源包的处理方法,包括:
接收多个客户端的虚拟资源包请求,所述虚拟资源包请求携带虚拟资源包标识;
将数据库中与所述虚拟资源包标识关联的虚拟资源包、以及与所述虚拟资源包标识关联的版本标识发送至对应的客户端;
针对所述多个客户端中的任一客户端,接收所述任一客户端针对所接收的所述虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及
接收所述任一客户端发送的待提交版本标识,所述待提交版本标识是所述任一客户端针对所接收的所述版本标识进行更新后;
将所述数据库中与所述虚拟资源包标识关联的版本标识,与所述待提交版本标识比对,并根据比对结果处理所述待提交虚拟资源包。
本发明实施例提供一种虚拟资源包的处理装置,包括:
接收模块,用于接收多个客户端的虚拟资源包请求,所述虚拟资源包请求携带虚拟资源包标识;
发送模块,用于将数据库中与所述虚拟资源包标识关联的虚拟资源包、以及与所述虚拟资源包标识关联的版本标识发送至对应的客户端;
所述接收模块,还用于针对所述多个客户端中的任一客户端,接收所述任一客户端针对所接收的所述虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及
接收所述任一客户端发送的待提交版本标识,所述待提交版本标识是所述任一客户端针对所接收的所述版本标识进行更新后形成;
比对模块,用于将所述数据库中与所述虚拟资源包标识关联的版本标识,与所述待提交版本标识比对,并根据比对结果处理所述待提交虚拟资源包。
上述方案中,所述接收模块,还用于当同时或者顺序接收到所述多个客户端的虚拟资源包请求,且所述多个客户端的虚拟资源包请求携带相同的虚拟资源包标识时,根据所述虚拟资源包标识,在所述数据库中查询与所述虚拟资源包标识关联的虚拟资源包,并在所述数据库中查询与所述虚拟资源标识关联的版本标识;所述发送模块,还用于将所查询到的虚拟资源包以及版本标识分别发送给所述多个客户端。
上述方案中,所述接收模块,还用于当同时或顺序接收到所述多个客户端的虚拟资源包请求,且所述多个客户端的虚拟资源包请求携带不同的虚拟资源包标识时,针对每个待处理的所述虚拟资源包请求执行以下处理:根据每个待处理的所述虚拟资源包请求中携带的虚拟资源包标识,在所述数据库中查询与所述虚拟资源包标识关联的虚拟资源包,并在所述数据库中查询与所述虚拟资源包标识关联的版本标识;所述发送模块,还用于将所查询到的虚拟资源包以及版本标识,对应发送给待处理的所述虚拟资源包请求的来源客户端。
上述方案中,所述接收模块,还用于当顺序接收到所述多个客户端的虚拟资源包请求,且所述多个客户端的虚拟资源包请求携带相同的虚拟资源包标识时,针对每个待处理的所述虚拟资源包请求执行以下处理:如果在接收到待处理的所述虚拟资源包请求之前,已经根据前序客户端提交的前序虚拟资源包和前序版本标识更新了所述数据库,则将更新后的数据库中与所述虚拟资源包标识关联的所述前序虚拟资源包、以及与所述虚拟资源包标识关联的所述前序版本标识,发送给所述待处理的所述虚拟资源包请求的来源客户端;
其中,所述前序客户端是所述多个客户端中发送所述前序虚拟资源包请求的客户端,所述前序虚拟资源包请求是先于所述虚拟资源包请求而被接收的虚拟资源包请求,所述前序虚拟资源包是所述前序客户端针对所接收到的所述虚拟资源包进行领取操作后得到,所述前序版本标识是所述前序客户端针对所接收到的所述版本标识进行更新后得到。
上述方案中,所述发送模块,还用于如果在接收到所述虚拟资源包请求之前,未接收到所述前序客户端提交的所述前序虚拟资源包和前序版本标识,则将所述数据库中与所述虚拟资源包标识关联的原始的虚拟资源包、以及与所述虚拟资源包标识关联的原始的版本标识,发送给所述待处理的所述虚拟资源包请求的来源客户端。
上述方案中,所述装置还包括更新模块,用于根据领取到的虚拟物品的类型和数量,更新所述虚拟资源包中相应类型的剩余的虚拟物品的数量。
上述方案中,所述更新模块,还用于根据执行领取操作得到新虚拟资源包时对应的时间戳,生成对应的待提交版本标识;对所述版本标识表征的所述虚拟资源包的累计领取计数加一,得到对应的待提交版本标识。
上述方案中,所述更新模块,还用于当所述比对结果表征所述数据库中与所述虚拟资源包标识关联的版本标识与所述待提交版本标识一致时;将所述数据库中与所述虚拟资源包标识关联的虚拟资源包更新为所述待提交虚拟资源包,并将所述数据库中与所述虚拟资源包标识关联的版本标识更新为所述待提交版本标识。
上述方案中,所述发送模块,还用于当所述比对结果表征所述数据库中与所述虚拟资源包标识关联的版本标识与所述待提交版本标识不一致时;向所述任一客户端发送版本标识比对失败消息,以使所述任一客户端丢弃所述待提交虚拟资源包,并重新发送虚拟资源包请求。
上述方案中,所述发送模块,还用于响应于所述任一客户端重新发送的携带所述虚拟资源标识的虚拟资源包请求,向所述任一客户端发送所述数据库中与所述虚拟资源包标识关联的新虚拟资源包、以及与所述虚拟资源包标识关联的新版本标识;所述接收模块,还用于接收所述任一客户端针对所接收的所述新虚拟资源包进行领取操作后形成的新待提交虚拟资源包、以及接收所述任一客户端针对所接收的所述新版本标识进行更新后形成的新待提交版本标识;所述更新模块,还用于当所述数据库中与所述虚拟资源包标识关联的版本标识,与所述新待提交版本标识比对一致时,将所述数据库中与所述虚拟资源包标识关联的新虚拟资源包更新为所述新待提交虚拟资源包,并将所述数据库中与所述虚拟资源包标识关联的新版本标识更新为所述新待提交版本标识。
本发明实施例提供另一种虚拟资源包的处理方法,包括:
呈现虚拟资源包的领取界面,所述领取界面包括多个领取方式;
根据被触发的领取方式所对应的领取次数,对所述虚拟资源包执行相应次数的领取操作;
呈现所述领取操作的领取结果,其中,所述领取结果包括领取到的虚拟物品的类型和数量。
本发明实施例提供一种数据库服务器,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的虚拟资源包的处理方法。
本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本发明实施例提供的虚拟资源包的处理方法。
本发明实施例具有以下有益效果:
对多个客户端发送虚拟数据包,使得多个客户端的虚拟资源包请求能够得到即时响应,有效缩短等待延迟;通过对数据库中的虚拟资源包以及待提交虚拟数据包提供版本标识的比对机制,能够对不同客户端的待提交虚拟资源包进行有效地识别和处理,能够降低数据库性能的开销,提升领取虚拟资源包的处理效率。
附图说明
图1A是本发明实施例提供的虚拟资源包处理系统的一个架构示意图;
图1B是本发明实施例提供的虚拟资源包处理系统的另一个架构示意图;
图2A是本发明实施例提供的数据库服务器的一个结构示意图;
图2B是本发明实施例提供的终端的一个结构示意图;
图3A是本发明实施例提供的虚拟资源包的处理方法的一个流程示意图;
图3B是本发明实施例提供的虚拟资源包的处理方法的另一个流程示意图;
图4是本发明实施例提供的虚拟资源包的处理方法的应用示意图;
图5是相关技术提供的处理多个用户并发请求打开全服礼包的时序示意图;
图6是相关技术提供的处理多个用户并发请求打开全服礼包的架构示意图;
图7是相关技术提供的处理用户打开全服礼包请求的流程示意图;
图8是本发明实施例提供的请求打开全服礼包的页面示意图;
图9是本发明实施例提供的获得全服虚拟物品的页面示意图;
图10是本发明实施例提供的处理多个用户并发请求打开全服礼包的架构示意图;
图11是本发明实施例提供的处理多个用户并发请求打开全服礼包的时序示意图;
图12是本发明实施例提供的处理用户打开全服礼包请求的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)事务,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(即原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)和持久性(Durability))属性。事务是数据库运行中的一个逻辑工作单位,由数据库管理系统(Database Management System,DBMS)中的事务管理子系统负责事务的处理。
例如,客户端向数据库服务器发送了虚拟资源包请求,数据库服务器向客户端返回了所领取的虚拟物品,这个交互过程就构成了虚拟资源包领取的事务。
2)悲观锁(Pessimistic Lock),也称为悲观锁机制,是一种加锁的机制,总是假设最坏的情况,即假设事务每次操作都会修改数据库中的数据,所以要对事务请求操作的数据进行加锁(例如数据库的行锁、表锁、读锁、以及写锁等),其他事务只能等待,直到获得锁的事务释放锁,其他的事务才能继续操作。如上所述,悲观锁针对数据所添加的锁可以包括:
2.1)共享锁,又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,多个事务都能访问到同一数据,但是只能读不能进行修改。
2.2)排他锁,又称为写锁,简称X锁,排他锁不能与其他锁并存,如果一个事务获取了一个数据行的排他锁,其他的事务就不能再获取该数据行的其他锁,包括共享锁和排他锁,但是获取到排他锁的事务可以对数据行进行读取和修改。
3)乐观锁(Optimistic Lock),是相对于悲观锁更加宽松的加锁机制,总是假设最好的情况,即认为事务的每次操作都不会修改数据库中的数据,所以不会对数据进行加锁,但是当事务操作完成,更新数据库中的数据时,会检测数据被事务读出的期间是否被其他事务修改过,如果是,表明存在冲突,则返回错误信息;如果否,则根据事务提交的数据更新数据库。
4)队列,一种特殊线性表,只运行在表前端进行删除,在表后端进行插入,数据先进先出。
在本发明实施例中发现,相关技术在处理多个用户并发请求领取虚拟资源包时,通常采用以下方式实现:将不同用户通过各自的客户端所发送的虚拟资源包请求放入按加锁顺序优先处理的队列中,即先接收先处理,这样忽略了事务的耗时,耗时长的事务可能先执行,导致后面排队的短事务等待时间过长,影响用户体验。而且,相关技术在处理多个用户并发请求领取虚拟资源包时是使用数据库的悲观锁机制进行互斥写入,需要对数据库进行频繁地加锁和解锁,导致数据库性能的大量开销。
鉴于此,本发明实施例提供一种虚拟资源包的处理方法、装置、数据库服务器和计算机可读存储介质,能够降低数据库性能的开销、提升领取虚拟资源包的处理效率。
下面说明本发明实施例提供的虚拟资源包的处理设备的示例性应用,本发明实施例提供的虚拟资源包的处理设备可以实施为服务器或服务器集群,也可以采用由用户终端和服务器协同的方式实施。下面,将说明虚拟资源包的处理设备实施为服务器时的示例性应用。
参见图1A,图1A是本发明实施例提供的虚拟资源包的处理系统100的一个架构示意图,为实现处理多个用户并发请求领取虚拟资源包,终端400(示例性示出了终端400-1和终端400-2)通过网络300连接数据库服务器200,数据库服务器200中运行有数据库,数据库中存储有不同类型的虚拟资源包,且每个虚拟资源包有唯一对应的虚拟资源包标识和版本标识。
如图1A所示,用户A通过终端400-1上安装的客户端410-1发送虚拟资源包请求,虚拟资源包请求中携带了虚拟资源包标识;同时,用户B通过终端400-2上安装的客户端410-2也发送了虚拟资源包请求。
示例的,可以在客户端410-1和客户端410-2的图形界面中呈现虚拟资源包的领取界面,该领取界面可以包括多个领取方式(例如,“打开十次”和“打开一次”),当用户点击某一类型的领取方式时,客户端可以根据被触发的领取方式所对应的领取次数,对数据库服务器200返回的虚拟资源包执行相应次数的领取操作。此外,还可以在客户端的图形界面中呈现领取操作的领取结果,其中,领取结果包括领取到的虚拟物品的类型和数量。例如,当用户点击“打开十次”时,客户端对数据库服务器200返回的虚拟资源包执行10次领取操作,即从虚拟资源包中随机选取10件虚拟物品,并在客户端的图形界面中呈现所选取的10件虚拟物品。
数据库服务器200在通过网络300接收到客户端410-1和客户端410-2分别发送的虚拟资源包请求后,从运行的数据库中查询与虚拟资源包标识关联的虚拟资源包、以及与虚拟资源包标识关联的版本标识,并将所查询到的虚拟资源包和版本标识通过网络300返回给客户端410-1和客户端410-2。随后,客户端410-1和客户端410-2分别针对各自所接收到的虚拟资源包响应于用户针对虚拟资源包的领取操作,形成待提交虚拟资源包、以及对所接收的版本标识进行更新后形成的待提交版本标识,并将形成的待提交虚拟资源包和待提交版本标识通过网络300发送给数据库服务器200,从而,数据库服务器200在接收到客户端410-1和客户端410-2中的任一客户端发送的待提交虚拟资源包和待提交版本标识后,将数据库中与虚拟资源包标识关联的版本标识,与任一客户端发送的待提交版本标识进行比对,并根据比对结果处理待提交虚拟资源包(将在下文具体说明处理过程)。
作为示例,虚拟资源包可以是游戏礼包,其包含了游戏皮肤、游戏道具等虚拟物品;虚拟资源包也可以是电商礼包,其包含了商家提供的优惠券、代金券等。
在另一些实施例中,客户端发送的虚拟资源包请求也可以是经由客户端后台服务器转发给数据库服务器的,同样的,数据库服务器发送的虚拟资源包和版本标识也可以是经由客户端后台服务器转发给对应客户端的。其中,客户端后台服务器的数量可以是一个或者多个。
示例的,参见图1B,图1B是本发明实施例提供的虚拟资源包的处理系统101的另一个架构示意图,包括数据库服务器200、网络300、终端400(示例性示出了终端400-1和终端400-2)和客户端后台服务器500。客户端后台服务器500是指为客户端400提供业务支持的服务器,也称为应用服务器。例如,当客户端400为游戏时,客户端后台服务器500即为游戏服务器。
如图1B所示,客户端410-1和客户端410-2发送的虚拟资源包请求是经由客户端后台服务器500转发给数据库服务器200的,数据库服务器200在接收到客户端后台服务器500转发的虚拟资源包请求后,从运行的数据库中查询与虚拟资源包标识关联的虚拟资源包、以及版本标识,并将查询到的虚拟资源包和版本标识发送给客户端后台服务器500,以使客户端后台服务器500转发给对应的请求来源客户端。随后,针对客户端410-1和客户端410-2中的任一客户端,客户端后台服务器500将任一客户端发送的待提交虚拟资源包、以及待提交版本标识转发给数据库服务器200,从而,数据库服务器200根据客户端后台服务器500转发的待提交版本标识与数据库中的与虚拟资源包关联的版本标识比对,并根据比对结果处理待提交虚拟资源包。
需要说明的是,上述的数据库服务器200和客户端后台服务器500可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,例如,当图1B中的客户端后台服务器500是由多个物理服务器构成的服务器集群时,可以是为不同区域(例如国家)的同一应用(例如同一款游戏)部署的多个服务器,不同区域的用户通过客户端发送的虚拟资源包请求是通过所属区域的服务器转发至数据库服务器的;上述的数据库服务器200和客户端后台服务器500还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器,本发明在此不做限制,终端400-1和终端400-2可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
在一些实施例中,本发明实施例提供的虚拟资源包的处理方法可以结合人工智能云服务技术实现。
人工智能云服务(AIaaS,AI as a Service)是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城,所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自己专属的云人工智能服务。
示例的,图1A和图1B中的数据库服务器200和客户端后台服务器500可以部署为人工智能云服务,如此,多个客户端可以向人工智能云服务发送携带虚拟资源包标识的虚拟资源包请求,人工智能云服务在接收到多个客户端发送的虚拟资源包请求后,将与虚拟资源包标识关联的虚拟资源包、以及与虚拟资源包标识关联的版本标识发送至对应的客户端;随后,针对多个客户端中的任一客户端,人工智能云服务接收任一客户端针对所接收的虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及对所接收的版本标识进行更新后形成的待提交版本标识,最后,将任一客户端发送的待提交版本标识与人工智能云服务中存储的与虚拟资源包标识关联的版本标识进行比对,并根据比对结果处理待提交虚拟资源包。
参见图2A,图2A是本发明实施例提供的数据库服务器200的结构示意图,图2A所示的数据库服务器200包括:至少一个处理器210、存储器240、至少一个网络接口220。数据库服务器200中的各个组件通过总线系统230耦合在一起。可理解,总线系统230用于实现这些组件之间的连接通信。总线系统230除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2A中将各种总线都标为总线系统230。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器240可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器240可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器240包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器240旨在包括任意适合类型的存储器。
在一些实施例中,存储器240能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统241,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块242,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本发明实施例提供的虚拟资源包的领取处理装置可以采用软件方式实现,图2A示出了存储在存储器240中的虚拟资源包的处理装置243,其可以是程序和插件等形式的软件,包括以下软件模块:接收模块2431、发送模块2432和比对模块2433,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
参见图2B,图2B是本发明实施例提供的终端400的结构示意图,图2B所示的终端400包括:至少一个处理器410、网络接口420、用户接口430(包括输出装置431和输入装置432)、总线系统440和存储器450。其中,存储在存储器450中的虚拟资源包的处理装置455包括:呈现模块4551和执行模块4552。呈现模块4551,用于呈现虚拟资源包的领取界面,领取界面包括多个领取方式;执行模块4552,用于根据被触发的领取方式所对应的领取次数,对虚拟资源包执行相应次数的领取操作;呈现模块4551,还用于呈现领取操作的领取结果,其中,领取结果包括领取到的虚拟物品的类型和数量。
下面将结合附图具体说明本发明实施例提供的虚拟资源包的处理方法。
参见图3A,图3A是本发明实施例提供的虚拟资源包的处理方法的一个流程示意图,将结合图3A示出的步骤进行说明。
在步骤S101A中,数据库服务器接收多个客户端发送的虚拟资源包请求,虚拟资源包请求中携带虚拟资源包标识。
这里,数据库服务器是指运行有数据库的服务器,数据库中存储有不同类型的虚拟资源包。虚拟资源包可以是游戏平台发放的礼包,礼包中包含游戏装备、角色皮肤、以及金币等虚拟物品;虚拟资源包也可以是电商平台发放的礼包,礼包中包含优惠券、代金券等虚拟物品。
在一些实施例中,以虚拟资源包为游戏平台发放的礼包为例,数据库服务器可能是同时或者顺序接收到多个客户端发送的虚拟资源包请求,且多个客户端发送的虚拟资源包请求携带相同的虚拟资源包标识,即数据库服务器接收到的是多个客户端针对同一个虚拟资源包的领取请求。
例如,某游戏平台同时向多个客户端发放了同一个限量版礼包,此时,多个用户通过各自的客户端同时向该游戏平台的数据库服务器发送了针对该限量版礼包的领取请求。
在另一些实施例中,以虚拟资源包为游戏平台发放的礼包为例,数据库服务器也可能是同时或者顺序接收到多个客户端发送的虚拟资源包请求,且多个客户端发送的虚拟资源包请求携带不同的虚拟资源包标识,即数据库服务器接收到的是多个客户端针对各自不同的虚拟资源包的领取请求。
例如,某游戏平台根据用户的等级不同,向不同用户所关联的客户端发送了不同的礼包,假设该游戏平台向用户A所关联的客户端A发放了礼包A;向用户B所关联的客户端B发放了礼包B,此时,用户A通过客户端A向该游戏平台的数据库服务器发送了针对礼包A的领取请求,同时,用户B通过客户端B向该游戏平台的数据库服务器发送了针对礼包B的领取请求。
需要说明的是,上述两个实施例针对的是多个客户端发送的虚拟资源包标识完全相同或者完全不同的情况,当然也存在多个客户端发送的虚拟资源包标识部分相同、部分不同的情况,例如,数据库服务器接收到3个客户端发送的虚拟资源包请求,其中,客户端A和客户端B发送的虚拟资源包标识相同,而客户端C发送的虚拟资源包标识不同,针对这种情况,可以拆分为上述完全相同或者完全不同的情况分别处理。
在一些实施例中,虚拟资源包请求也可以是经由客户端对应的应用服务器(即前述的客户端后台服务器,用于为客户端提供业务支持)发送的,其中,应用服务器的数量可以是一个或者多个。
作为示例,参见图3B,在步骤S101B中,数据库服务器接收经由应用服务器1转发的客户端1发送的虚拟资源包请求,同时,还接收到了经由应用服务器N转发的客户端N发送的虚拟资源包请求。
示例的,以游戏场景为例,为了降低游戏运行过程中的网络延迟,游戏平台会针对不同区域分别部署服务器,此时,游戏平台的数据库服务器接收到的多个客户端发送的虚拟资源包请求是不同区域用户的客户端经由对应区域的应用服务器转发。
例如,客户端A的虚拟资源包请求是由客户端A所在的区域对应的应用服务器A发送给游戏平台的数据库服务器的,客户端B的虚拟资源包请求是由客户端B所在的区域对应的应用服务器B转发给游戏平台的数据库服务器的,客户端C的虚拟资源包请求是由客户端C所在的区域对应的应用服务器C发送给游戏平台的数据库服务器的。
在步骤S102A中,数据库服务器将数据库中与虚拟资源包标识关联的虚拟资源包、以及与虚拟资源包标识关联的版本标识发送至对应的客户端。
这里,首先对数据库中数据的存储方式进行说明。数据库中存储有不同类型的虚拟资源包,其中,每个虚拟资源包都有唯一对应的虚拟资源包标识和版本标识,且每个虚拟资源包对应的版本标识是实时更新的,存储的是最新提交的虚拟资源包的版本标识。
示例的,数据库可以是键值(Key-Value)数据库,以键值对的形式记录不同类型的虚拟资源包。例如,以虚拟资源包标识为键、以与虚拟资源包标识关联的虚拟资源包(即,虚拟资源的类型、以及每个类型的虚拟资源的数量)、以及与虚拟资源包标识关联的版本标识为值进行存储。
示例的,参见表1,表1是本发明实施例提供的虚拟资源包列表,如表1所示,不同类型的虚拟资源包对应的虚拟资源包标识不同,同时,每个虚拟资源包都有一个唯一对应的版本标识,且该版本标识是最新提交的虚拟资源包对应的版本标记。
表1虚拟资源包列表
在一些实施例中,以图1B为例,以虚拟资源包请求由应用服务器转发给数据库服务器为例,当数据库服务器经由应用服务器(例如一个或多个应用服务器)同时或者顺序接收到多个客户端发送的虚拟资源包请求,且多个客户端发送的虚拟资源包请求携带相同的虚拟资源包标识时,向数据库服务器发送虚拟资源包标识,以使数据库服务器根据虚拟资源包标识,例如键(Key)数据,在数据库中查询与虚拟资源包标识关联的虚拟资源包,并在数据库中查询与虚拟资源包标识关联的版本标识;并将所查询到的虚拟资源包和版本标识分别经由应用服务器发送给多个客户端。
示例的,以虚拟资源包为游戏平台的游戏服务器发放的礼包为例,假设数据库服务器经由游戏服务器同时或者顺序接收到多个客户端发送的礼包请求,且多个客户端发送的礼包请求携带相同的礼包标识(假设多个礼包请求携带的礼包标识均为X),则数据库服务器根据礼包标识X在游戏数据库中查询与礼包标识X关联的礼包、以及与礼包标识X关联的版本标识,并将查询到的礼包、以及版本标识经由游戏服务器分别返回给多个客户端中的每一个客户端。
在另一些实施例中,当数据库服务器同时或者顺序接收到多个客户端的虚拟资源包请求,且多个客户端的虚拟资源包请求携带不同的虚拟资源包标识时,针对每个待处理的虚拟资源包请求执行以下处理:根据每个待处理的虚拟资源包请求中携带的虚拟资源包标识,在数据库中查询与虚拟资源包标识关联的虚拟资源包,并在数据库中查询与虚拟资源包标识关联的版本标识;并将所查询到的虚拟资源包以及版本标识,对应发送给待处理的虚拟资源包请求的来源客户端。
示例的,以虚拟资源包为游戏平台发放的礼包为例,假设数据库服务器(数据库服务器运行的数据库中存储有不同类型的礼包,每个礼包中包含有游戏道具、角色皮肤等虚拟道具)同时或者顺序接收到多个客户端发送的礼包请求,且多个客户端发送的礼包请求携带不同的礼包标识(假设数据库服务器接收到客户端A发送的礼包请求携带的礼包标识为A,客户端B发送的礼包请求携带的礼包标识为B,客户端C发送的礼包请求携带的礼包标识为C),则数据库服务器针对客户端A发送的礼包请求,在数据库中查询与礼包标识A关联的礼包、以及版本标识,并将查询到的与礼包标识A关联的礼包、以及版本标识返回给客户端A;针对客户端B发送的礼包请求,在数据库中查询与礼包标识B关联的礼包、以及版本标识,并将查询到的与礼包标识B关联的礼包、以及版本标识返回给客户端B;针对客户端C发送的礼包请求,在数据库中查询与礼包标识C关联的礼包、以及版本标识,并将所查询到的与礼包标识C关联的礼包、以及版本标识返回给客户端C。
在一些实施例中,当数据库服务器顺序接收到多个客户端发送的虚拟资源包请求,且多个客户端发送的虚拟资源包请求携带相同的虚拟资源包标识时,针对每个待处理的虚拟资源包请求执行以下处理:如果在接收到待处理的虚拟资源包请求之前,已经根据前序客户端提交的前序虚拟资源包和前序版本标识更新了数据库,则将更新后的数据库中与虚拟资源包标识关联的前序虚拟资源包、以及与虚拟资源包标识关联的前序版本标识,发送给待处理的虚拟资源包请求的来源客户端,其中,前序客户端是多个客户端中发送前序虚拟资源包请求的客户端,前序虚拟资源包请求是先于虚拟资源包请求而被接收的虚拟资源包请求,前序虚拟资源包是前序客户端针对所接收到的虚拟资源包进行领取操作后得到,前序版本标识是前序客户端针对所接收到的版本标识进行更新后得到。
示例的,以虚拟资源包为游戏平台发放的礼包为例,假设原始的礼包(礼包标识为X)中包含有游戏装备A10个,游戏皮肤B20个,对应的原始版本标识为1,数据库服务器在10:00接收到客户端A发送的礼包请求,在10:01接收到客户端B发送的礼包请求,其中,客户端A(由于客户端A发送的礼包请求早于客户端B发送的礼包请求,则客户端A为上述前序客户端)和客户端B发送的礼包请求携带的礼包标识相同,均为X,即客户端A和客户端B针对同一个上述礼包先后向数据库服务器发送了领取请求。如果在接收到客户端B发送的礼包请求之前,数据库服务器已经根据客户端A提交的前序礼包(即客户端A针对所接收的礼包进行领取操作后得到的礼包)和前序版本标识(即客户端A针对所接收到的版本标识进行更新后得到的版本标识)更新了数据库服务器中运行的数据库。
例如,假设客户端A针对所接收到的礼包进行领取操作,获得2个游戏装备A和5个游戏皮肤B,以及针对所接收到的版本标识进行了更新,将版本标识更新为2,则相应的,数据库服务器将数据库中与礼包标识X关联的礼包中包含的游戏装备A的数量更新为8个,游戏皮肤B的数量更新为15个,以及将对应的版本标识更新为2,随后,数据库服务器将数据库中与礼包标识X关联的更新后的礼包(此时,礼包中包含8个游戏装备A和15个游戏皮肤B)、以及更新后的版本标识(此时,礼包的版本标识为2)发送给客户端B。
在另一些实施例中,如果在接收到虚拟资源包请求之前,数据库服务器未接收到前序客户端提交的前序虚拟资源包和前序版本标识,则将数据库中与虚拟资源包标识关联的原始的虚拟资源包、以及与虚拟资源包标识关联的原始的版本标识发送给待处理的虚拟资源包请求的来源客户端。
示例的,承接上述示例,如果在接收到客户端B发送的礼包请求之前,数据库服务器未接收到客户端A提交的前序礼包和前序版本标识,则将数据库中与礼包标识X关联的原始礼包(礼包中包含游戏装备A10个、游戏皮肤B20个)、以及与礼包标识X关联的原始的版本标识(版本标识为1)发送给客户端B。
在一些实施例中,数据库服务器查询得到的与虚拟资源包标识关联的虚拟资源包和版本标识也可以是经由应用服务器转发给对应的客户端的。作为示例,参见图3B,在步骤S102B和步骤S103B中,数据库服务器通过应用服务器1将查询得到的虚拟资源包和版本标识发送给客户端1,同时,通过应用服务器N将查询得到的虚拟资源包和版本标识发送给客户端N。
在步骤S103A中,针对多个客户端中的任一客户端,数据库服务器接收任一客户端针对所接收的虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及接收任一客户端针对所接收的版本标识进行更新后形成的待提交版本标识。
这里,领取操作的方式可以是在虚拟资源包所包括的不同类型的虚拟物品中,随机领取至少一个虚拟物品;其中,虚拟物品可以包括限量虚拟物品和普通虚拟物品。随后,根据领取到的虚拟物品的类型和数量,数据库服务器可以更新虚拟资源包中相应类型的剩余的虚拟物品的数量。
示例的,假设虚拟资源包1中包含限量虚拟物品A10个,普通虚拟物品B50个,随后,应用服务器针对虚拟资源包1进行领取操作,假设领取到限量虚拟物品A1个,普通虚拟物品B5个,则数据库服务器将虚拟资源包1包含的限量虚拟物品A的数量更新为9个,将普通虚拟物品B的数量更新为45个。
在一些实施例中,多个客户端中的任一客户端针对所接收到的版本标识进行更新形成待提交版本标识可以通过以下方式实现:根据执行领取操作得到新虚拟资源包时对应的时间戳,生成对应的待提交版本标识;或者,对版本标识表征的虚拟资源包的累计领取计数加一,得到对应的待提交版本标识。
示例的,假设多个客户端中的客户端A接收到的原始的版本标识为1,客户端A在完成对所接收到的虚拟资源包的领取操作后,将所接收到的原始的版本标识加1,得到对应的待提交版本标识,即待提交版本标识为2。
在一些实施例中,客户端发送的待提交虚拟资源包、以及待提交版本标识可以是经由应用服务器发送给数据库服务器的。
示例的,参见图3B,在步骤S104B中,针对客户端1至客户端N中的任一客户端,数据库服务器接收经由该任一客户端对应的应用服务器(例如,当客户端1完成领取操作形成待提交虚拟资源包、以及对所接收到的版本标识进行更新形成待提交版本标识后,数据库服务器接收经由应用服务器1发送的待提交虚拟资源包和待提交版本标识)发送的待提交虚拟资源包、以及待提交版本标识。
在步骤S104A中,数据库服务器将数据库中与虚拟资源包标识关联的版本标识,与待提交版本标识比对,根据比对结果处理待提交虚拟资源包。
在一些实施例中,当比对结果表征数据库中与虚拟资源包标识关联的版本标识与待提交版本标识一致时(即说明在接收到虚拟资源包至比对期间,没有其他客户端请求相同的虚拟资源包并进行领取操作和提交操作),数据库服务器将数据库中与虚拟资源包标识关联的虚拟资源包更新为待提交虚拟资源包,并将数据库中与虚拟资源包标识关联的版本标识更新为待提交版本标识。
示例的,以虚拟资源包为游戏平台发放的礼包为例,假设客户端A接收到的礼包A对应的原始版本标识为1,随后,客户端A对礼包A进行领取操作,并将所接收到的原始版本标识进行更新,得到待提交版本标识(此时,待提交版本标识为2),随后,客户端A将进行领取操作后得到的待提交礼包和待提交版本标识发送给数据库服务器,数据库服务器将客户端A所发送的待提交版本标识与数据库中礼包A的最新版本标识进行比对,当客户端A发送的待提交版本标识大于数据库中礼包A的最新版本标识时,数据库服务器将数据库中的礼包A更新为客户端A所发送的待提交礼包、以及将礼包A的版本标识更新为客户端A发送的待提交版本标识。
在另一些实施例中,当比对结果表征数据库中与虚拟资源包标识关联的版本标识与待提交版本标识不一致时(即说明在接收到虚拟资源包至比对期间,存在其他客户端请求相同的虚拟资源包,并进行了领取操作和提交操作),数据库服务器向任一客户端发送版本标识比对失败消息,以使任一客户端丢弃待提交虚拟资源包,并重新发送虚拟资源包请求。接着,数据库服务器响应于任一客户端重新发送的携带虚拟资源包标识的虚拟资源包请求,向任一客户端发送数据库中与虚拟资源包标识关联的新虚拟资源包、以及与虚拟资源包标识关联的新版本标识。随后,数据库服务器接收该任一客户端针对所接收的新虚拟资源包进行领取操作后形成的新待提交虚拟资源包、以及针对所接收的新版本标识进行更新后形成的新待提交版本标识;最后,数据库服务器将该任一客户端发送的新待提交版本标识与数据库中与虚拟资源包标识关联的版本标识进行比对,当两者一致时,将数据库中与虚拟资源包标识关联的新虚拟资源包更新为新待提交虚拟资源包,并将数据库中与虚拟资源包标识关联的新版本标识更新为新待提交版本标识。当两者不一致时,数据库服务器继续向该任一客户端返回出错的提醒信息,并重复上述过程,直至该任一客户端发送的待提交版本标识与数据库中与虚拟资源包标识关联的版本标识一致。
示例的,承接上述示例,当客户端A发送的待提交版本标识小于或者等于数据库中礼包A的最新版本标识时,说明在客户端A接收到礼包A至比对期间,存在其他客户端请求了礼包A,并进行了领取操作和提交操作,则数据库服务器向客户端A发送版本标识比对失败消息,以使客户端A丢弃待提交版本标识,并重新发送针对礼包A的领取请求。接着,数据库服务器响应于客户端A针对礼包A重新发送的领取请求,将更新后的礼包A、以及礼包A最新的版本标识发送给客户端A,客户端A在对更新后的礼包A完成领取操作后,形成新待提交礼包A、以及对接收到的最新的版本标识进行更新,形成新待提交版本标识,并将新待提交礼包和新待提交版本标识发送给数据库服务器,以使数据库服务器进行再次比对,当客户端A发送的新待提交版本标识大于数据库中礼包A最新的版本标识时,将数据库中存储的礼包A更新为客户端A发送的新待提交礼包、以及将礼包A最新的版本标识更新为客户端A发送的新待提交版本标识。如果比对结果仍为客户端A发送的新待提交版本标识小于或者等于数据库中礼包A最新的版本标识时,数据库服务器继续向客户端A发送版本比对失败消息,并重复上述过程,直至客户端A发送的待提交版本标识大于数据库中礼包A最新的版本标识。
在一些实施例中,参见图3B,在步骤S105B和步骤S106B中,当数据库服务器接收到经由任一客户端对应的应用服务器发送的待提交虚拟资源包和待提交版本标识后,将数据库中与虚拟资源包标识关联的版本标识与待提交版本标识进行比对,并根据比对结果处理待提交虚拟资源包。
示例的,当数据库服务器确定比对结果一致时,可以通过应用服务器向对应的客户端发送所领取的虚拟物品;或者,当比对结果不一致时,通过应用服务器向对应的客户端返回比对失败的提醒消息。
本发明实施例提供的虚拟资源包的处理方法通过引入乐观锁机制,避免了频繁地对数据库进行加锁和解锁操作导致的数据库性能的大量开销,大大提升了大并发量下系统整体的性能表现,同时,可以优先执行耗时短的虚拟资源包请求,贴合用户体验,避免了耗时短的虚拟资源包请求对应的用户等待时间过长,提升了用户体验。
在一些实施例中,本发明实施例提供的虚拟资源包的处理方法也可以结合区块链技术实现。
区块链是指由区块形成的加密的、链式的交易的存储结构。它是一个共享数据库,存储于其中的数据或者信息,具有不可伪造、可以追溯、集体维护的特点。
示例的,参见图4,图4是本发明实施例提供的虚拟资源包的处理方法的应用示意图,包括区块链网络600(示例性示出了共识节点610-1至共识节点610-3)、认证中心700和业务主体800和900,下面分别进行说明。
区块链网络600的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体(例如客户端的运维方,客户端用户)的电子设备(例如,终端400-1和终端400-2),都可以在不需要授权的情况下接入区块链网络600而成为客户端节点;以联盟链为例,业务主体在获得授权后其下辖的电子设备可以接入区块链网络600而成为客户端节点。
作为示例,当区块链网络600是联盟链时,业务主体800/900从认证中心700进行登记注册获得各自的数字证书,数字证书中包括业务主体的公钥、以及认证中心700对业务主体800/900的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易(例如,用于上链的待提交虚拟资源包、以及待提交版本标识等)中,并被发送到区块链网络600,以供区块链网络600从交易中取出数字证书和数字签名,验证交易的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络600会根据身份进行验证,例如是否具有发起交易的权限。
在一些实施例中,客户端节点可以只作为区块链网络600的观察者,即提供支持业务主体发起交易功能,对于区块链网络600的共识节点610的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络600中,通过区块链网络600实现数据和业务处理过程的可信和可追溯。
区块链网络600中的共识节点接收来自不同业务主体(例如图6中示出的业务主体800/900)的客户端节点提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体的客户端节点中显示。
下面以终端400-1和终端400-2向区块链网络600发送虚拟资源包请求为例,说明区块链网络的示例性应用,参见图4,图4中的客户端节点810对应于图1B中的终端400-1,客户端节点910对应于终端400-2。
示例的,当客户端节点810和客户端节点910具有发起虚拟资源包请求的权限时,可以由客户端节点810和客户端节点910根据各自发送的携带有虚拟资源包标识的虚拟资源包请求生成对应的交易并提交到区块链网络600中,使共识节点610执行交易以从状态数据库(对应于图1B中的数据库500)中查询与虚拟资源包标识关联的虚拟资源包、以及与虚拟资源包标识关联的版本标识,并将查询到的虚拟资源包、以及版本标识返回给客户端节点810和客户端节点910。
接着,针对客户端节点810和客户端节点910中的任一客户端节点,当区块链网络600接收到任一客户端节点针对所接收的虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及对所接收的版本标识进行更新后形成的待提交版本标识后,调用智能合约对所接收到的待提交版本标识与状态数据库中与虚拟资源包标识关联的版本标识进行比对,当比对结果表征两者一致时,则针对所接收到的待提交虚拟资源包、以及待提交版本标识生成新的区块,并进行广播。区块链网络600中的共识节点610广播新区块时,会对新区块进行验证,当验证成功后,则将新区块追加到自身所存储的区块链的尾部,并根据所接收的待提交虚拟资源包、以及待提交版本标识对状态数据库进行更新。
下面继续说明本发明实施例提供的虚拟资源包的处理装置243实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器240的虚拟资源包的领取处理装置243中的软件模块可以包括:接收模块2431、发送模块2432和比对模块2433。
接收模块2431,用于接收多个客户端的虚拟资源包请求,虚拟资源包请求携带虚拟资源包标识;发送模块2432,用于将数据库中与虚拟资源包标识关联的虚拟资源包、以及与虚拟资源包标识关联的版本标识发送至对应的客户端;接收模块2431,还用于针对多个客户端中的任一客户端,接收任一客户端针对所接收的虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及接收任一客户端发送的待提交版本标识,待提交版本标识是任一客户端针对所接收的版本标识进行更新后;比对模块2433,用于将数据库中与虚拟资源包标识关联的版本标识,与待提交版本标识比对,并根据比对结果处理待提交虚拟资源包。
在一些实施例中,接收模2431,还用于当同时或者顺序接收到多个客户端的虚拟资源包请求,且多个客户端的虚拟资源包请求携带相同的虚拟资源包标识时,根据虚拟资源包标识,在数据库中查询与虚拟资源包标识关联的虚拟资源包,并在数据库中查询与虚拟资源标识关联的版本标识;发送模块2432,还用于将所查询到的虚拟资源包以及版本标识分别发送给多个客户端。
在一些实施例中,接收模块2431,还用于当同时或顺序接收到多个客户端的虚拟资源包请求,且多个客户端的虚拟资源包请求携带不同的虚拟资源包标识时,针对每个待处理的虚拟资源包请求执行以下处理:根据每个待处理的虚拟资源包请求中携带的虚拟资源包标识,在数据库中查询与虚拟资源包标识关联的虚拟资源包,并在数据库中查询与虚拟资源包标识关联的版本标识;发送模块2432,还用于将所查询到的虚拟资源包以及版本标识,对应发送给待处理的虚拟资源包请求的来源客户端。
在一些实施例中,接收模块2431,还用于当顺序接收到多个客户端的虚拟资源包请求,且多个客户端的虚拟资源包请求携带相同的虚拟资源包标识时,针对每个待处理的虚拟资源包请求执行以下处理:如果在接收到待处理的虚拟资源包请求之前,已经根据前序客户端提交的前序虚拟资源包和前序版本标识更新了数据库,则将更新后的数据库中与虚拟资源包标识关联的前序虚拟资源包、以及与虚拟资源包标识关联的前序版本标识,发送给待处理的所述虚拟资源包请求的来源客户端;
其中,前序客户端是多个客户端中发送前序虚拟资源包请求的客户端,前序虚拟资源包请求是先于虚拟资源包请求而被接收的虚拟资源包请求,前序虚拟资源包是前序客户端针对所接收到的虚拟资源包进行领取操作后得到,前序版本标识是前序客户端针对所接收到的版本标识进行更新后得到。
在一些实施例中,发送模块2432,还用于如果在接收到虚拟资源包请求之前,未接收到前序客户端提交的前序虚拟资源包和前序版本标识,则将数据库中与虚拟资源包标识关联的原始的虚拟资源包、以及与虚拟资源包标识关联的原始的版本标识,发送给待处理的虚拟资源包请求的来源客户端。
在一些实施例中,虚拟资源包的处理装置243还包括更新模块2434,用于根据领取到的虚拟物品的类型和数量,更新虚拟资源包中相应类型的剩余的虚拟物品的数量。
在一些实施例中,更新模块2434,还用于根据执行领取操作得到新虚拟资源包时对应的时间戳,生成对应的待提交版本标识;对版本标识表征的虚拟资源包的累计领取计数加一,得到对应的待提交版本标识。
在一些实施例中,更新模块2434,还用于当比对结果表征数据库中与虚拟资源包标识关联的版本标识与待提交版本标识一致时;将数据库中与虚拟资源包标识关联的虚拟资源包更新为待提交虚拟资源包,并将数据库中与虚拟资源包标识关联的版本标识更新为待提交版本标识。
在一些实施例中,发送模块2432,还用于当比对结果表征数据库中与虚拟资源包标识关联的版本标识与待提交版本标识不一致时;向任一客户端发送版本标识比对失败消息,以使任一客户端丢弃待提交虚拟资源包,并重新发送虚拟资源包请求。
在一些实施例中,发送模块2432,还用于响应于任一客户端重新发送的携带虚拟资源标识的虚拟资源包请求,向任一客户端发送数据库中与虚拟资源包标识关联的新虚拟资源包、以及与虚拟资源包标识关联的新版本标识;接收模块2431,还用于接收任一客户端针对所接收的新虚拟资源包进行领取操作后形成的新待提交虚拟资源包、以及接收任一客户端针对所接收的新版本标识进行更新后形成的新待提交版本标识;更新模块2434,还用于当数据库中与虚拟资源包标识关联的版本标识,与新待提交版本标识比对一致时,将数据库中与虚拟资源包标识关联的新虚拟资源包更新为新待提交虚拟资源包,并将数据库中与虚拟资源包标识关联的新版本标识更新为新待提交版本标识。
需要说明的是,本发明实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明实施例提供的虚拟资源包的处理装置中未尽的技术细节,可以根据图3、11-12任一附图的说明而理解。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
在现有分区分服游戏框架下,处理多个用户并发请求打开全服礼包时,相关技术通常使用数据库的悲观锁进行互斥写入,导致数据库性能的大量开销,特别是在长事务(例如,某个用户一次请求打开多个全服礼包)的情况下,这样的开销是无法承受的,严重影响了用户的体验。
示例的,参见图5,图5是相关技术提供的处理多个用户并发请求打开全服礼包的时序示意图,以处理用户A和用户B同时请求打开全服礼包为例进行说明。
如图5所示,用户A通过客户端A向服务器1请求打开10个全服礼包,服务器1在接收到客户端A发送的请求后,就去请求数据库全服礼包表格进行加锁。数据库全服礼包表格加锁成功后,服务器1对礼包进行抽奖,即进行礼包内虚拟物品的随机抽取。服务器1在完成抽奖后,修改用户A所抽取的虚拟物品的数量(即对数据库全服礼包表格中存储的用户A所抽取到的虚拟物品的数量进行删减,例如,假设用户A抽到了5个虚拟物品1,5个虚拟物品2,则将数据库全服礼包表格中存储的虚拟物品1的数量减5,以及将虚拟物品2的数量减5),然后请求写入数据库,解锁数据库全服礼包表格,并将服务器1随机抽取出来的虚拟物品返回给客户端A。
在用户A通过客户端A请求打开10个全服礼包的同时,用户B通过客户端B也请求了打开1个全服礼包。服务器2在接收到客户端B发送的请求后,也去请求数据库全服礼包表格进行加锁。此时,由于服务器1先对数据库全服礼包表格请求了加锁,且服务器1正在执行抽奖步骤,数据库全服礼包表格尚未解锁,所以服务器2需要定时等待。
在服务器1完成抽奖、以及解锁数据库全服礼包表格后,服务器2等待超时后再去请求数据库全服礼包表格进行加锁。服务器2在对数据库全服礼包表格加锁成功后,对礼包进行抽取,并在抽取完成后,修改用户B所抽取的虚拟物品的数量,然后请求写入数据库,解锁数据库全服礼包表格,并将抽取出的虚拟物品返回给客户端B。
由此可见,如图6所示,相关技术提供的处理多个用户并发请求打开全服礼包的方案,相当于把请求消息放进按加锁顺序优先处理的队列,这样忽略了事务的耗时,耗时长的事务可能先执行,导致后面排队的短事务等待时间过长,影响用户体验。而且,相关技术提供的方案依赖于数据库的表格加锁功能,频繁地对数据库进行加锁和解锁也会导致数据库性能大量开销。
示例的,参见图7,图7是相关技术提供的处理用户打开全服礼包请求的流程示意图。
如图7所示,服务器在接收到用户通过客户端发送的打开全服礼包的请求后,首先去请求数据库全服礼包表格进行加锁,当加锁成功时,服务器对礼包进行抽奖,并将所抽取的虚拟物品返回给用户所关联的客户端。当加锁失败时,服务器进入定时等待,并在等待超时后重新请求对数据库全服礼包表格进行加锁。
示例的,相关技术提供的基于悲观锁处理用户A请求打开10个全服礼包的伪代码如下:
示例的,相关技术提供的基于悲观锁处理用户B请求打开1个全服礼包的伪代码如下:
由上述分析可以看出,在现有分区分服游戏框架下,相关技术提供的基于悲观锁处理多个用户并发请求打开全服礼包的方案存在以下问题:
1)需要对数据库全服礼包表格进行频繁的加锁和解锁,大大消耗了数据库的性能。
2)忽略了事务的耗时,先加锁先处理,可能存在长事务阻塞短事务的情况,导致短事务的等待时间过长,影响用户体验。
针对上述问题,本发明实施例引入了乐观锁机制,避免了加锁和解锁对数据库的开销,大大提升了大并发量下的系统整体性能表现,同时,优先执行耗时短的事务,提升了用户体验。
示例的,参见图8,图8是本发明实施例提供的请求打开全服礼包的页面示意图,如图8所示,用户可以选择打开全服礼包的数量,例如打开十次(81)、或者打开一次(82),当用户选择“打开十次”时,服务器对礼包自动进行十连抽,并将所抽取的10件虚拟物品返回给客户端。
示例的,参见图9,图9是本发明实施例提供的获得全服虚拟物品的页面示意图,如图9所示,虚拟物品包括限量虚拟物品(91)和普通虚拟物品(92),以用户点击图8的“打开十次”为例,服务器在完成连续的10次礼包抽取后,向客户端返回了3个限量虚拟物品和7个普通虚拟物品。
参见图10,图10是本发明实施例提供的处理多个用户并发请求打开全服礼包的架构示意图,如图10所示,为解决运用悲观锁处理多个用户并发请求打开全服礼包时存在的问题,本发明实施例探索出一种基于分区分服游戏框架下处理多用户并发请求打开全服礼包的优化方案,相当于将悲观锁换成乐观锁,从而免除数据库加锁和解锁带来的性能损耗,且可以根据不同用户的请求事务耗时长短来优先进行短事务的处理,提升用户体验。
示例的,参见图11,图11是本发明实施例提供的处理多个用户并发请求打开全服礼包的时序示意图,以处理用户A和用户B同时请求打开全服礼包为例进行说明。
如图11所示,用户A通过客户端A请求打开10个全服礼包,同时,用户B通过客户端B请求打开1个全服礼包。服务器1在接收到客户端A发送的请求后,获取目前数据库全服礼包表格的版本号(假设为1),服务器2在接收到客户端B发送的请求后,获取到目前数据库全服礼包表格的版本号也为1。
随后,服务器1针对礼包进行十连抽,即服务器1对礼包中的虚拟物品进行连续的十次随机抽取,同时,服务器2进行单次抽奖。
服务器2优先完成抽奖,于是服务器2请求写入数据并把数据库全服礼包表格的版本号加1,数据库表格版本号判断正确后,返回写入成功,服务器2将所抽取的虚拟物品返回给客户端B。
接着,服务器1也完成了十连抽,服务器1带着版本号1请求写入数据库,因服务器2优先完成抽奖,并对数据库全服礼包表格的版本号进行了更新,此时,数据库全服礼包表格的版本号已经是2,服务器1的请求写入失败。
服务器1再次请求数据库全服礼包表格的版本号,获取到目前全服礼包表格的版本号为2。服务器1基于版本号为2的数据库全服礼包表格重新进行十连抽,在完成十连抽后,请求写入数据库,数据库判断此次写入的版本号,若版本号对应上,则返回写入成功,随后服务器1将所抽取的10件虚拟物品返回给客户端A,若版本号没有对应上,则重复上述步骤。
示例的,参见图12,图12是本发明实施例提供的处理用户打开全服礼包请求的流程示意图。如图12所示,服务器在接收到用户通过客户端发送的打开全服礼包的请求后,首先获取目前数据库全服礼包表格的版本号,随后进行抽奖,在完成抽奖后带着所获取的版本号请求写入数据,此时,数据库首先需要判断此次写入的版本号与最新的版本号是否对应,若版本号对应上,则返回写入成功,服务器将所抽取的虚拟物品返回给用户所关联的客户端,并对数据库全服礼包表格的版本号进行更新;若版本号没有对应上,则重新获取数据库全服礼包表格最新的版本号,并重复上述步骤。
示例的,本发明实施例提供的基于乐观锁处理用户A请求打开10个全服礼包的伪代码如下:
示例的,本发明实施例提供的基于乐观锁处理用户B请求打开1个全服礼包的伪代码如下:
本发明实施例通过将悲观锁换成乐观锁,从而避免了数据库频繁加锁和解锁带来的性能损耗,且可以根据不同用户的请求事务耗时长短来优先进行短事务的处理,贴合用户体验,短事务优先处理,提升了用户体验。
在另一些实施例中,本发明实施例还可以采用优先队列的方式来处理多个用户并发请求打开全服礼包,例如,采用priority_queue数据结构,按照执行事务耗时的长短评分排出优先级,以优先处理耗时短的事务。
本发明实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法,例如,如图3示出的虚拟资源包的处理方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例具有以下有益效果:
1)避免了对数据库进行频繁加锁和解锁操作导致的数据库性能的大量开销;
2)优先执行耗时短的事务,贴合用户体验,避免了耗时短的事务对应的用户等待时间过长,提升了用户体验。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (15)
1.一种虚拟资源包的处理方法,其特征在于,所述方法包括:
接收多个客户端的虚拟资源包请求,所述虚拟资源包请求携带虚拟资源包标识;
将数据库中与所述虚拟资源包标识关联的虚拟资源包、以及与所述虚拟资源包标识关联的版本标识发送至对应的客户端;
针对所述多个客户端中的任一客户端,接收所述任一客户端针对所接收的所述虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及
接收所述任一客户端发送的待提交版本标识,所述待提交版本标识是所述任一客户端针对所接收的所述版本标识进行更新后形成;
将所述数据库中与所述虚拟资源包标识关联的版本标识,与所述待提交版本标识比对,并根据比对结果处理所述待提交虚拟资源包。
2.根据权利要求1所述的方法,其特征在于,当同时或者顺序接收到所述多个客户端的虚拟资源包请求,且所述多个客户端的虚拟资源包请求携带相同的虚拟资源包标识时,
所述将数据库中与所述虚拟资源包标识关联的虚拟资源包、以及与所述虚拟资源包标识关联的版本标识发送至对应的客户端,包括:
根据所述虚拟资源包标识,在所述数据库中查询与所述虚拟资源包标识关联的虚拟资源包,并
在所述数据库中查询与所述虚拟资源标识关联的版本标识;
将所查询到的虚拟资源包以及版本标识分别发送给所述多个客户端。
3.根据权利要求1所述的方法,其特征在于,当同时或顺序接收到所述多个客户端的虚拟资源包请求,且所述多个客户端的虚拟资源包请求携带不同的虚拟资源包标识时,
所述将数据库中与所述虚拟资源包标识关联的虚拟资源包、以及与所述虚拟资源包标识关联的版本标识发送至对应的客户端,包括:
针对每个待处理的所述虚拟资源包请求执行以下处理:
根据每个待处理的所述虚拟资源包请求中携带的虚拟资源包标识,在所述数据库中查询与所述虚拟资源包标识关联的虚拟资源包,并
在所述数据库中查询与所述虚拟资源包标识关联的版本标识;
将所查询到的虚拟资源包以及版本标识,对应发送给待处理的所述虚拟资源包请求的来源客户端。
4.根据权利要求1所述的方法,其特征在于,当顺序接收到所述多个客户端的虚拟资源包请求,且所述多个客户端的虚拟资源包请求携带相同的虚拟资源包标识时,
所述将数据库中与所述虚拟资源包标识关联的虚拟资源包、以及与所述虚拟资源包标识关联的版本标识发送至对应的客户端,包括:
针对每个待处理的所述虚拟资源包请求执行以下处理:
如果在接收到待处理的所述虚拟资源包请求之前,已经根据前序客户端提交的前序虚拟资源包和前序版本标识更新了所述数据库,则将更新后的数据库中与所述虚拟资源包标识关联的所述前序虚拟资源包、以及与所述虚拟资源包标识关联的所述前序版本标识,发送给所述待处理的所述虚拟资源包请求的来源客户端;
其中,所述前序客户端是所述多个客户端中发送所述前序虚拟资源包请求的客户端,所述前序虚拟资源包请求是先于所述虚拟资源包请求而被接收的虚拟资源包请求,所述前序虚拟资源包是所述前序客户端针对所接收到的所述虚拟资源包进行领取操作后得到,所述前序版本标识是所述前序客户端针对所接收到的所述版本标识进行更新后得到。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果在接收到所述虚拟资源包请求之前,未接收到所述前序客户端提交的所述前序虚拟资源包和前序版本标识,则将所述数据库中与所述虚拟资源包标识关联的原始的虚拟资源包、以及与所述虚拟资源包标识关联的原始的版本标识,发送给所述待处理的所述虚拟资源包请求的来源客户端。
6.根据权利要求1所述的方法,其特征在于,
所述领取操作的方式包括:
在所述虚拟资源包所包括的不同类型的虚拟物品中,随机领取至少一个虚拟物品;
根据领取到的虚拟物品的类型和数量,更新所述虚拟资源包中相应类型的剩余的虚拟物品的数量。
7.根据权利要求6所述的方法,其特征在于,
所述虚拟物品包括限量虚拟物品和普通虚拟物品;
所述方法还包括:
在完成领取操作后,调用客户端的图形界面以不同的显示参数显示所述限量虚拟物品和所述普通虚拟物品;
其中,所述限量虚拟物品的显示效果优于所述普通虚拟物品的显示效果。
8.根据权利要求1所述的方法,其特征在于,
所述待提交版本标识的生成方式包括以下任意一种:
根据执行领取操作得到新虚拟资源包时对应的时间戳,生成对应的待提交版本标识;
对所述版本标识表征的所述虚拟资源包的累计领取计数加一,得到对应的待提交版本标识。
9.根据权利要求1所述的方法,其特征在于,所述根据比对结果处理所述待提交虚拟资源包,包括:
当所述比对结果表征所述数据库中与所述虚拟资源包标识关联的版本标识与所述待提交版本标识一致时;
将所述数据库中与所述虚拟资源包标识关联的虚拟资源包更新为所述待提交虚拟资源包,并将所述数据库中与所述虚拟资源包标识关联的版本标识更新为所述待提交版本标识。
10.根据权利要求1所述的方法,其特征在于,所述根据比对结果处理所述待提交虚拟资源包,包括:
当所述比对结果表征所述数据库中与所述虚拟资源包标识关联的版本标识与所述待提交版本标识不一致时;
向所述任一客户端发送版本标识比对失败消息,以使所述任一客户端丢弃所述待提交虚拟资源包,并重新发送虚拟资源包请求。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
响应于所述任一客户端重新发送的携带所述虚拟资源标识的虚拟资源包请求,向所述任一客户端发送所述数据库中与所述虚拟资源包标识关联的新虚拟资源包、以及与所述虚拟资源包标识关联的新版本标识;
接收所述任一客户端针对所接收的所述新虚拟资源包进行领取操作后形成的新待提交虚拟资源包、以及
接收所述任一客户端针对所接收的所述新版本标识进行更新后形成的新待提交版本标识;
当所述数据库中与所述虚拟资源包标识关联的版本标识与所述新待提交版本标识比对一致时,
将所述数据库中与所述虚拟资源包标识关联的新虚拟资源包更新为所述新待提交虚拟资源包,并将所述数据库中与所述虚拟资源包标识关联的新版本标识更新为所述新待提交版本标识。
12.一种虚拟资源包的处理方法,其特征在于,应用于基于权利要求1至11任一项所述的客户端,所述方法包括:
呈现虚拟资源包的领取界面,所述领取界面包括多个领取方式;
根据被触发的领取方式所对应的领取次数,对所述虚拟资源包执行相应次数的领取操作;
呈现所述领取操作的领取结果,其中,所述领取结果包括领取到的虚拟物品的类型和数量。
13.一种虚拟资源包的处理装置,其特征在于,所述装置包括:
接收模块,用于接收多个客户端的虚拟资源包请求,所述虚拟资源包请求携带虚拟资源包标识;
发送模块,用于将数据库中与所述虚拟资源包标识关联的虚拟资源包、以及与所述虚拟资源包标识关联的版本标识发送至对应的客户端;
所述接收模块,还用于针对所述多个客户端中的任一客户端,接收所述任一客户端针对所接收的所述虚拟资源包进行领取操作后形成的待提交虚拟资源包、以及
接收所述任一客户端发送的待提交版本标识,所述待提交版本标识是所述任一客户端针对所接收的所述版本标识进行更新后形成;
比对模块,用于将所述数据库中与所述虚拟资源包标识关联的版本标识,与所述待提交版本标识比对,并根据比对结果处理所述待提交虚拟资源包。
14.一种数据库服务器,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1-11任一项,或者权利要求12所述的虚拟资源包的处理方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至11任一项,或权利要求12所述的虚拟资源包的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010522405.7A CN111694873B (zh) | 2020-06-10 | 2020-06-10 | 虚拟资源包的处理方法、装置及数据库服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010522405.7A CN111694873B (zh) | 2020-06-10 | 2020-06-10 | 虚拟资源包的处理方法、装置及数据库服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111694873A true CN111694873A (zh) | 2020-09-22 |
CN111694873B CN111694873B (zh) | 2023-10-27 |
Family
ID=72480053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010522405.7A Active CN111694873B (zh) | 2020-06-10 | 2020-06-10 | 虚拟资源包的处理方法、装置及数据库服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111694873B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487010A (zh) * | 2020-12-14 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种区块链用户数据表更新方法、设备及存储介质 |
CN113110730A (zh) * | 2021-04-09 | 2021-07-13 | 北京润尼尔网络科技有限公司 | 运行设备节能的方法、装置及电子设备 |
CN113781119A (zh) * | 2021-09-14 | 2021-12-10 | 腾讯数码(深圳)有限公司 | 一种虚拟资源发送方法、装置、电子设备及存储介质 |
CN114596117A (zh) * | 2022-03-10 | 2022-06-07 | 百果园技术(新加坡)有限公司 | 虚拟礼包发放方法、系统、设备、存储介质及产品 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424013A (zh) * | 2013-08-26 | 2015-03-18 | 国际商业机器公司 | 在计算环境中部署虚拟机的方法和设备 |
CN104468594A (zh) * | 2014-12-15 | 2015-03-25 | 北京奇虎科技有限公司 | 一种数据请求的方法、装置及系统 |
CN104679791A (zh) * | 2013-12-03 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 获取数据包的处理方法和装置 |
CN106156228A (zh) * | 2015-04-24 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 资源发放系统、资源发放方法及资源领取方法 |
CN106487872A (zh) * | 2015-08-24 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 优惠券的提供方法及装置、虚拟资源的分配及领取方法 |
CN106776012A (zh) * | 2016-11-28 | 2017-05-31 | 武汉秀宝软件有限公司 | 一种虚拟资源的管理方法及系统 |
CN107182084A (zh) * | 2017-05-27 | 2017-09-19 | 努比亚技术有限公司 | 移动终端及数据包传输方法 |
CN107872486A (zh) * | 2016-09-28 | 2018-04-03 | 华为技术有限公司 | 通信方法和装置 |
CN108683692A (zh) * | 2018-03-16 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
CN109246228A (zh) * | 2018-09-27 | 2019-01-18 | 广州酷狗计算机科技有限公司 | 资源获取、资源分配方法、装置、设备及存储介质 |
CN109831502A (zh) * | 2019-01-30 | 2019-05-31 | 厦门鑫点击网络科技股份有限公司 | 新型网站云虚拟主机架构 |
US20190342143A1 (en) * | 2018-05-01 | 2019-11-07 | Infra FX, Inc. | Autonomous management of resources by an administrative node network |
CN111249744A (zh) * | 2020-01-19 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 资源加载方法和装置、存储介质及电子装置 |
-
2020
- 2020-06-10 CN CN202010522405.7A patent/CN111694873B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424013A (zh) * | 2013-08-26 | 2015-03-18 | 国际商业机器公司 | 在计算环境中部署虚拟机的方法和设备 |
CN104679791A (zh) * | 2013-12-03 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 获取数据包的处理方法和装置 |
CN104468594A (zh) * | 2014-12-15 | 2015-03-25 | 北京奇虎科技有限公司 | 一种数据请求的方法、装置及系统 |
CN106156228A (zh) * | 2015-04-24 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 资源发放系统、资源发放方法及资源领取方法 |
CN106487872A (zh) * | 2015-08-24 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 优惠券的提供方法及装置、虚拟资源的分配及领取方法 |
CN107872486A (zh) * | 2016-09-28 | 2018-04-03 | 华为技术有限公司 | 通信方法和装置 |
CN106776012A (zh) * | 2016-11-28 | 2017-05-31 | 武汉秀宝软件有限公司 | 一种虚拟资源的管理方法及系统 |
CN107182084A (zh) * | 2017-05-27 | 2017-09-19 | 努比亚技术有限公司 | 移动终端及数据包传输方法 |
CN108683692A (zh) * | 2018-03-16 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
US20190342143A1 (en) * | 2018-05-01 | 2019-11-07 | Infra FX, Inc. | Autonomous management of resources by an administrative node network |
CN109246228A (zh) * | 2018-09-27 | 2019-01-18 | 广州酷狗计算机科技有限公司 | 资源获取、资源分配方法、装置、设备及存储介质 |
CN109831502A (zh) * | 2019-01-30 | 2019-05-31 | 厦门鑫点击网络科技股份有限公司 | 新型网站云虚拟主机架构 |
CN111249744A (zh) * | 2020-01-19 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 资源加载方法和装置、存储介质及电子装置 |
Non-Patent Citations (5)
Title |
---|
_念执: "王者荣耀史诗皮肤宝箱开箱直觉告诉我出货,事实真出了!", pages 20 - 45 * |
B东解说: "王者荣耀:水晶没抽到一生气兑换了电玩小子!竟还赠送一个皮肤!", pages 85 - 87, Retrieved from the Internet <URL:《https://m.v.qq.com/x/m/play?vid=w07897z2oza&cid=&url_from=share&second_share=0&share_from=copy》> * |
M. SAID SEDDIKI 等: "Queuing analysis of dynamic resource allocation for virtual routers", 2013 IEEE SYMPOSIUM ON COMPUTERS AND COMMUNICATIONS (ISCC), pages 000771 - 000776 * |
WINNXUDONG: "ES并发冲突问题与悲观锁与乐观锁并发控制", pages 1 - 8, Retrieved from the Internet <URL:《https://www.jianshu.com/p/176bcafc670d》> * |
李洪超: "下一代战术网络资源动态感知与控制技术研究", 中国优秀硕士学位论文全文数据库 (信息科技辑), pages 140 - 260 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487010A (zh) * | 2020-12-14 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种区块链用户数据表更新方法、设备及存储介质 |
CN112487010B (zh) * | 2020-12-14 | 2024-02-23 | 深圳前海微众银行股份有限公司 | 一种区块链用户数据表更新方法、设备及存储介质 |
CN113110730A (zh) * | 2021-04-09 | 2021-07-13 | 北京润尼尔网络科技有限公司 | 运行设备节能的方法、装置及电子设备 |
CN113781119A (zh) * | 2021-09-14 | 2021-12-10 | 腾讯数码(深圳)有限公司 | 一种虚拟资源发送方法、装置、电子设备及存储介质 |
CN113781119B (zh) * | 2021-09-14 | 2024-03-08 | 腾讯数码(深圳)有限公司 | 一种虚拟资源发送方法、装置、电子设备及存储介质 |
CN114596117A (zh) * | 2022-03-10 | 2022-06-07 | 百果园技术(新加坡)有限公司 | 虚拟礼包发放方法、系统、设备、存储介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111694873B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694873B (zh) | 虚拟资源包的处理方法、装置及数据库服务器 | |
CN106528224B (zh) | 一种Docker容器的内容更新方法、服务器及系统 | |
CN113570466B (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
KR100625595B1 (ko) | 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템 | |
WO2020082893A1 (zh) | 基于区块链的交易处理方法及装置、电子设备 | |
EP3837604B1 (en) | In situ triggered function as a service within a service mesh | |
CN114398683B (zh) | 一种基于异构子系统的内生安全数据库存储方法及装置 | |
CN112598525B (zh) | 一种智能合约分簇并行的区块链实现方法及装置 | |
TW201229795A (en) | Web service patterns for globally distributed service fabric | |
US20070260714A1 (en) | Asynchronous interconnect protocol for a clustered dbms | |
US20070118572A1 (en) | Detecting changes in data | |
CN113568981B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN106713391A (zh) | 一种session信息的共享方法和共享系统 | |
CN111639309B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN112818325A (zh) | 一种基于应用实现api网关独立鉴权的方法 | |
WO2023093184A1 (zh) | 一种拟态redis数据库的输入输出代理方法和装置 | |
US20230370285A1 (en) | Block-chain-based data processing method, computer device, computer-readable storage medium | |
CN113760976B (zh) | 业务的处理方法、装置、设备及存储介质 | |
US8996484B2 (en) | Recursive lock-and-propagate operation | |
JP2004102991A (ja) | ファイル分散送受信システム | |
CN112748855B (zh) | 处理高并发数据请求的方法和装置 | |
Birman et al. | ISIS documentation: release 1 | |
CN116760632B (zh) | 数据处理方法、装置、设备及可读存储介质 | |
Yang et al. | TransOra: A Transaction-preserving and Transparent Distributed Oracle on Permissioned Blockchain For Hybrid Smart Contracts | |
WO2024007856A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |