CN114748875A - 数据存盘方法、装置、设备、存储介质及程序产品 - Google Patents

数据存盘方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN114748875A
CN114748875A CN202210557435.0A CN202210557435A CN114748875A CN 114748875 A CN114748875 A CN 114748875A CN 202210557435 A CN202210557435 A CN 202210557435A CN 114748875 A CN114748875 A CN 114748875A
Authority
CN
China
Prior art keywords
saving
game
data
dirty
storage
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
Application number
CN202210557435.0A
Other languages
English (en)
Other versions
CN114748875B (zh
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.)
Yidianlingxi Information Technology Guangzhou Co ltd
Original Assignee
Yidianlingxi Information Technology Guangzhou Co 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 Yidianlingxi Information Technology Guangzhou Co ltd filed Critical Yidianlingxi Information Technology Guangzhou Co ltd
Priority to CN202210557435.0A priority Critical patent/CN114748875B/zh
Publication of CN114748875A publication Critical patent/CN114748875A/zh
Application granted granted Critical
Publication of CN114748875B publication Critical patent/CN114748875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/242Query formulation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/554Game data structure by saving game or status data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据存盘方法、装置、设备、存储介质及程序产品,所述方法包括:确定目标游戏对象对应的游戏数据中被修改的字段;根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作,可以根据被修改的字段动态调整存盘模式,在根据被修改的字段确定适合进行部分存盘时,可以进行部分存盘,减少由于存盘的数据量较大导致的存盘耗时较长、数据库更新较慢的问题,在适合进行全量存盘时,调整为全量存盘模式,降低数据库存盘指令的复杂度,提高存盘的灵活性,提升整体存盘效率,降低数据不一致的可能性,提高用户体验。

Description

数据存盘方法、装置、设备、存储介质及程序产品
技术领域
本申请涉及数据库领域,尤其涉及一种数据存盘方法、装置、设备、存储介质及程序产品。
背景技术
数据库通常用于存放应用程序运行中所需的数据,而随着程序的运行,数据会发生变化,例如在游戏场景中,随着游戏的进行,玩家的游戏数据也在不断变化,需要将变化后的游戏数据及时更新到数据库中,保证数据库中游戏数据的准确性和实时性。
目前,玩家的游戏数据可以表示为某种类型的数据对象,在进行存盘时,通常是将玩家对应的数据对象进行全量存盘,存盘耗时较长,效率低下,数据库更新速度较慢。
发明内容
本申请实施例的主要目的在于提供一种数据存盘方法、装置、设备、存储介质及程序产品,以降低数据存盘的数据量,从而降低时间开销,提高数据库的更新速度。
第一方面,本申请实施例提供一种数据存盘方法,包括:
确定目标游戏对象对应的游戏数据中被修改的字段;
根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作;
其中,所述存盘模式包括全量存盘和部分存盘。
可选的,所述游戏数据为对象关系映射数据,所述多个字段包括形成树形结构的多个节点对应的字段;所述部分存盘包括针对节点进行存盘;
其中,在针对节点进行存盘时,若所述节点包含子节点,则将包含的子节点对应的字段进行存盘。
可选的,所述方法还包括:
在游戏过程中,若目标游戏对象对应的某一字段被修改,则为对应的节点添加脏标记;
相应的,所述根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作,包括:
若属于同一父节点的多个子节点中,添加有脏标记的子节点数量满足预设要求,则为所述父节点添加脏标记,并删除所述父节点的各个子节点的脏标记,以根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作。
可选的,若目标游戏对象对应的某一字段被修改,则为对应的节点添加脏标记,包括:
若目标游戏对象对应的某一字段被修改,则确定所述被修改的字段对应的存盘间隔需求;
若存盘间隔需求为延迟存盘,则为对应的节点添加脏标记;
若存盘间隔需求为实时存盘,则对所述被修改字段进行实时存盘操作;
相应的,所述方法还包括:
每隔预设周期,或者,在所述为所述父节点添加脏标记,并删除所述父节点的各个子节点的脏标记之后,根据目标游戏对象对应的各个节点的脏标记进行存盘操作。
可选的,根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作,包括:
根据所述目标游戏对象对应的各个节点的脏标记以及SQL语句模板,生成对应的SQL语句;
将所述SQL语句发送给数据库,以使所述数据库根据所述SQL语句对具有脏标记的节点进行存盘操作。
可选的,所述目标游戏对象为游戏中的目标虚拟角色;所述方法还包括:
响应于所述目标虚拟角色的登陆操作,为所述目标虚拟角色创建对应的游戏数据,并为所述游戏数据设置默认存盘模式;
所述根据所述被修改的字段,确定所述游戏数据的存盘模式,包括:
若所述默认存盘模式不属于全量存盘,则根据所述被修改的字段,确定所述游戏数据的存盘模式。
可选的,所述默认存盘模式中的全量存盘包括普通全量存盘和脏标记全量存盘;
所述方法还包括:
若所述默认存盘模式为普通全量存盘,则对所述目标虚拟对象的游戏数据进行全量存盘;
若所述默认存盘模式为脏标记全量存盘,则在所述目标虚拟对象的游戏数据中的至少部分字段被修改时,为所述游戏数据添加脏标记;在存盘时,若所述目标虚拟对象有脏标记,则对所述游戏数据进行全量存盘。
可选的,所述方法还包括下述至少一项:
获取运营人员输入的所述默认存盘模式;
根据所述游戏所处的阶段,和/或,所述游戏的数据修改信息,确定对应的默认存盘模式;
其中,所述数据修改信息用于表示所述游戏当前的数据修改频率和/或数据修改量。
第二方面,本申请实施例提供一种数据存盘装置,包括:
第一确定模块,用于确定目标游戏对象对应的游戏数据中被修改的字段;
第二确定模块,用于根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作;
其中,所述存盘模式包括全量存盘和部分存盘。
第三方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行上述任一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方面所述的方法。
本申请提供的数据存盘方法、装置、设备、存储介质及程序产品,可以确定目标游戏对象对应的游戏数据中被修改的字段;根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作,可以根据被修改的字段动态调整存盘模式,在根据被修改的字段确定适合进行部分存盘时,可以进行部分存盘,减少由于存盘的数据量较大导致的存盘耗时较长、数据库更新较慢的问题,在适合进行全量存盘时,调整为全量存盘模式,降低数据库存盘指令的复杂度,提高存盘的灵活性,提升整体存盘效率,降低数据不一致的可能性,提高用户体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种存盘模式的动态展示图;
图3为本申请实施例提供的一种数据存盘方法的流程示意图;
图4为本申请实施例提供的一种游戏数据的树形结构示意图;
图5为本申请实施例提供的另一种数据存盘方法的流程示意图;
图6为本申请实施例提供的一种对子节点的脏标记进行处理的示意图;
图7为本申请实施例提供的一种生成SQL语句的原理图;
图8为本申请实施例提供的另一种数据存盘方法的流程示意图;
图9为本申请实施例提供的一种数据存盘装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
Orm:Object-relational mapping,对象关系映射,用于实现程序对象到关系数据库数据的映射。
Mongodb:基于分布式文件存储的数据库,为一种非关系型的数据库。
SQL:Structured Query Language,结构化查询语言,为一种数据库查询和程序涉及语言,用于存取数据以及查询、更新和管理数据库。
下面对本申请的应用场景及发明构思进行解释说明。
在网络游戏中,通过客户端展示游戏画面,通过服务端进行游戏主程序的存储与运行,此外,游戏数据通常存储在数据库中。游戏数据可以为针对玩家的数据或针对某一虚拟游戏场景的数据。当玩家登录游戏服务端时,服务端需要从数据库拉取玩家的相关数据。且在游戏的过程中,游戏数据会不断变化,为了保证数据的可靠性,需要每隔一定时间将游戏服务器中的游戏数据写回到数据库进行存储,避免出现游戏数据的丢失。在将某一游戏数据存储到数据库时,游戏数据以某种类型的数据对象的形式进行存储。
在一些技术中,在存储游戏数据时,如针对某一玩家,将该玩家作为目标游戏对象,通常将该目标游戏对象的数据对象全量存盘,即无论目标游戏对象的数据是否发生变化,获取目标游戏对象的数据对象并存盘。但是,上述方法存在一定的缺陷,在进行全量存盘时,数据存储量较大,尤其是当目标游戏对象对应的数据越来越多时,需要存盘的数据量越来越大,则存盘耗时较长,数据库更新速度较慢。
在另一些技术中,在进行数据存盘时采用更细粒度的基于数据对象的字段进行存储,但是当在基于数据对象的字段进行存盘时,若修改的字段较多,则时间开销也较大。
有鉴于此,本申请提供了一种数据存盘方法,当目标游戏对象的游戏数据被修改时,根据被修改的字段确定游戏数据的存盘模式,再基于存盘模式进行数据存盘,该方法可以实现部分存盘,解决由于存盘的数据量较大导致的存盘耗时较长,数据库更新数据较慢的问题;同时可以实现灵活、动态的调整存盘模式,也就是灵活的进行存盘操作,可以根据实际情况选择合适的存盘模式。
图1为本申请实施例提供的一种应用场景图,如图1所示,图中所示的服务端为游戏服务端,数据库用于存储游戏数据;在游戏的过程中,服务端中的应用程序记录了信息发生变化的目标游戏对象,如玩家,以及,目标游戏对象对应的游戏数据中被修改的字段,字段的内容为玩家的相关信息,如背包、卡片、武将等。因此,在服务端可以确定被修改的字段,再根据被修改的字段确定存盘模式,最后基于存盘模式对目标游戏对象进行存盘,如全量存盘和部分存盘,服务端可以将与存盘模式对应的待存储数据发送给数据库,以实现数据库中目标游戏对象的游戏数据的更新。
可选的,在确定存盘模式时可以根据被修改的字段的数量或者被修改的字段的整体长度确定。图2为本申请实施例提供的一种存盘模式的动态展示图,如图2所示,每一圆圈表示游戏数据中的一个数据字段,涂有阴影的圆圈表示该字段数据发生修改。当在18点时,发生数据修改的字段的数量为两个,数量较少,确定存盘模式为部分存盘;当在一段时间后,如18点10分,发生数据修改的字段的数量为六个,数量较多,确定存盘模式为全量存盘。或者,还可以计算每一被修改的字段的长度,确定所有被修改的字段的总长度,根据被修改的字段的总长度确定存盘模式。此外,还可以为针对不同深度的节点进行存盘,例如,游戏数据为包含多个深度的节点构成,在进行存盘时可以选择针对某一深度的节点进行存盘。
下面结合附图,对本申请的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图3为本申请实施例提供的一种数据存盘方法的流程示意图。所述方法的执行主体可以为服务端,即游戏服务端,所述服务端可以通过软件、硬件或者软硬件结合的方式实现。
如图3所示,所述方法包括:
步骤S301、确定目标游戏对象对应的游戏数据中被修改的字段。
在游戏进程中,目标游戏对象对应的游戏数据不断发生变化,当游戏数据发生变化时,需要确定游戏数据中被修改的字段。其中,游戏数据包含多个字段。被修改的字段可以是游戏数据中的至少部分字段。被修改的字段可以为内容被修改的字段,或者,增加的字段,或者删除的字段。
示例性的,目标游戏对象可以为游戏中的玩家或者地块。游戏数据为玩家信息或地块信息。其中,玩家信息包括:玩家账号信息和对应的游戏角色的属性信息,玩家账号信息包括账号、密码、优惠券、武将以及皮肤等信息;对应的游戏角色的属性信息包括:背包、等级、买到的装备等信息。示例性的,随着游戏的推进,背包中的物品不断增加,则背包对应的字段的长度不断增加。
步骤S302、根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作。
其中,所述存盘模式包括全量存盘和部分存盘。全量存盘用于在至少部分字段被修改时对全部字段进行数据存盘;部分存盘用于针对游戏数据中的部分字段进行数据存盘。具体的,部分字段为:仅被修改的部分字段,或者,包含被修改的部分字段和部分未被修改的部分字段且不是全部的字段。
示例性的,当仅修改玩家A的某一字段时,当采用全量存盘的模式时,会将整个玩家A对应的游戏数据的所有字段进行数据存盘;当采用部分存盘的模式时,存储玩家A中对应的游戏数据中的部分字段;部分字段包括被修改的字段。
在确定被修改的字段后,可以根据被修改的字段确定游戏数据的存盘模式,示例性的,可以根据被修改的字段的数量以及被修改的字段在游戏数据中的位置确定存盘模式。
在对数据库进行数据修改时,需要通过指令来实现,当修改的数据字段较多时,若采用部分存盘的方式则生成指令时处理逻辑和最终的指令较为复杂,此时,可以确定存盘模式为全量存盘,从而减少数据库操作的逻辑复杂度。当修改的数据较少时,若采用全量存盘方式则需要存储很多未被修改的数据,此时,可以确定存盘模式为部分存盘,减少最终要存盘的数据量。
在游戏的过程中,可能还需要从数据库实时获取存储的数据,这就需要将各个目标游戏对象的数据实时更新到数据库。例如,当游戏中不同类型的数据存储于不同的数据库时,如玩家对应的游戏数据和地块对应的游戏数据分别存储于第一数据库和第二数据库,若数据库的更新速度较慢,则服务端宕机时,可能玩家对应的游戏数据未更新完毕,而地块对应的游戏数据更新完毕,而玩家对应的游戏数据可能包含与地块相关的信息,而地块对应的数据也包含与玩家相关的信息,若服务端宕机则可能引起的数据不一致的问题,降低玩家的游戏体验。或者,当游戏数据均存储在同一数据库中时,例如,在游戏过程中,对于一个玩家来说,需要实时获取其他玩家的数据信息并显示在玩家的游戏界面,而所有玩家的游戏数据均存储在同一数据库中,因此,各个玩家需要实时将修改的数据存储到数据库;服务器宕机时常出现,若数据库更新速度较慢,则将导致数据不一致的问题。采用本申请的方法,由于提高了数据库的更新速度,降低了服务器宕机可能引起的数据不一致的可能性,提高了玩家的游戏体验。
综上,本申请实施例提供的数据存盘方法,通过确定目标游戏对象对应的游戏数据中被修改的字段;根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作,可以根据被修改的字段动态调整存盘模式,在根据被修改的字段确定适合进行部分存盘时,可以进行部分存盘,减少由于存盘的数据量较大导致的存盘耗时较长、数据库更新较慢的问题,在适合进行全量存盘时,调整为全量存盘模式,降低数据库存盘指令的复杂度,提高存盘的灵活性,提升整体存盘效率,提高用户体验。
在本申请的一个或多个实施例中,可选的,所述游戏数据为对象关系映射数据,所述多个字段包括形成树形结构的多个节点对应的字段;所述部分存盘包括针对节点进行存盘;
其中,在针对节点进行存盘时,若所述节点包含子节点,则将包含的子节点对应的字段进行存盘。
游戏数据为对象关系映射数据,简称orm对象,一个目标游戏对象对应一个orm对象。示例性的,一个玩家对应一个orm对象。一个orm对象包含多个字段。其中,orm对象中为树形结构,每一字段对应树形结构的一个节点。
部分存盘包括针对节点进行存盘,如仅针对发生数据修改的各节点进行数据存盘;或者,针对包含发生数据修改的各节点的节点进行数据存盘。其中,当在针对节点进行存盘时,若该节点包含子节点,则在数据存盘时将该节点包含的所有子节点对应的字段进行存盘。
图4为本申请实施例提供的一种游戏数据的树形结构示意图,如图4所示,游戏数据的树形结构包含三层节点,A为根节点,表示玩家;包含B1、B2和B3三个节点,分别表示不同的背包类型,如装备背包、物品背包和材料背包;针对B1、B2和B3三个节点,分别包含多个C节点,如B1节点包含C11、C12和C13三个子节点,B2节点包含C21、C22和C23三个子节点,B3节点包含C31、C32、和C33三个子节点等等,每一C层的节点表示具体的背包中的物品。当针对节点进行存盘时,若针对A层节点进行存盘,则将B1、B2、B3对应的字段以及所有C层节点对应的字段进行存盘。若针对C层节点进行存盘,则仅将发生数据修改的部分C节点进行存盘。此外,存盘深度可以为多个,即同时针对不同深度的节点进行存盘,如可以针对B1节点进行存盘,还可以同时针对C22节点进行存盘。
通过将游戏数据设置为树形结构,在对某一字段进行存盘时,可以快速确定该字段下的所有字段以进行存盘,可以简化存盘逻辑,提高存盘效率。
图5为本申请实施例提供的另一种数据存盘方法的流程示意图,如图5所示,在本申请的一个或多个实施例中,可选的,所述方法包括:
步骤S501、在游戏过程中,若目标游戏对象对应的某一字段被修改,则为对应的节点添加脏(dirty)标记。
步骤S502、确定目标游戏对象对应的游戏数据中被修改的字段。
步骤S503、若属于同一父节点的多个子节点中,添加有脏标记的子节点数量满足预设要求,则为所述父节点添加脏标记,并删除所述父节点的各个子节点的脏标记,以根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作。
其中,在游戏的过程中,当目标游戏对象对应的某一字段被修改时,则可以调用预设的函数进行标记。添加标记表示记录被修改的节点的标识。在节点对应的数据未被修改时,该节点标识不被记录;当节点对应的数据被修改时,触发调用预设函数实现对该节点标识进行记录。
基于上述为修改的字段添加脏标记,则在确定游戏数据中被修改的字段时,可以判断是否添加有脏标记来确定该节点是否被修改,即通过添加脏标记便于后续准确确定被修改的节点。
相应的,在确定存盘模式时,可以根据添加有脏标记的子节点数量进行判断。对于属于同一父节点的多个子节点来说,根据添加有脏标记的子节点的数量进行脏标记的操作。具体的,当添加有脏标记的子节点的数量满足预设要求时,则为该父节点添加脏标记,且删除各个子节点的脏标记。具体的,为父节点添加脏标记可以为触发调用预设函数进行标记。删除各个子节点的脏标记可以为调用另一预设函数,实现各个子节点对应的记录标识被删除。
其中,数量满足预设要求表示添加有脏标记的子节点的数量大于预设数值,或者,添加有脏标记的子节点的数量占比大于预设比例。示例性的,如父节点包含M个子节点,添加有脏标记的子节点的数量为N,则添加有脏标记的子节点的数量占比为N/M。对应于具体的游戏场景,例如,当物品背包节点下的只有较少的物品节点对应的数据发生改变,则只更新物品节点的数据,当物品背包节点下的多数物品节点对应的数据均发生改变,则更新该物品背包节点。其中,在游戏的过程中,数据修改包含节点的增加和删除,因此父节点包含的子节点的数量可能会发生变化。
确定存盘模式的过程即为确定是否对相应的父节点添加脏标记的过程,若对父节点添加脏标记,且删除各个子节点的脏标记,则针对添加有脏标记的父节点进行存盘。若未对多个子节点的父节点添加标记,则针对添加有脏标记的各个子节点进行存盘。
图6为本申请实施例提供的一种对子节点的脏标记进行处理的示意图,如图6所示,当B1节点包含的C11至C1n的各个子节点存在数据修改时,会为各个子节点添加脏标记,当C11至C1n中添加脏标记的节点数量满足预设条件时,则需要针对子节点对应的父节点进行数据存盘,而不针对各个子节点进行数据存盘,也就是为父节点B1添加脏标记,删除各个子节点的脏标记。
当添加有脏标记的父节点为根节点时,则对应的存盘模式为全量存盘。当添加有脏标记的父节点不为根节点,或者,针对添加有脏标记的各个子节点进行存盘时,则对应的存盘模式为部分存盘。
通过脏标记可以准确记录发生修改的字段,进而根据脏标记快速确定具体的存盘模式,从而选择合适的存盘模式,通过添加脏标记可以快速及准确的确定发生数据修改的节点,提高数据存储的速度。
在本申请的一个或多个实施例中,可选的,若目标游戏对象对应的某一字段被修改,则为对应的节点添加脏标记,包括:
若目标游戏对象对应的某一字段被修改,则确定所述被修改的字段对应的存盘间隔需求;若存盘间隔需求为延迟存盘,则为对应的节点添加脏标记;若存盘间隔需求为实时存盘,则对所述被修改字段进行实时存盘操作;
相应的,所述方法还包括:每隔预设周期,或者,在所述为所述父节点添加脏标记,并删除所述父节点的各个子节点的脏标记之后,根据目标游戏对象对应的各个节点的脏标记进行存盘操作。
在实际应用中,为了进一步提高游戏数据的准确性,提高数据库的更新速度,可以为目标游戏对象中的字段设置不同的存盘间隔需求,存盘间隔需求反映了对应字段的更新频率。
当目标游戏对象对应的某一字段被修改时,可以先确定该被修改的字段对应的存盘间隔需求。
可选的,运营人员可以为目标游戏对象的每一字段预先设置存盘间隔需求,字段与存盘间隔需求之间存在对应关系,根据该对应关系可以确定被修改字段对应的存盘间隔需求。其中,存盘间隔需求可以包括延迟存盘和实时存盘。示例性的,地块归属这一字段对各个玩家来说较为重要,可以设置为实时存盘;背包数据或排行榜这一字段可以设置为延迟存盘。
可选的,还可以根据被修改的字段的数值来确定存盘间隔需求。示例性的,对于血量字段,当该字段被修改后的数值小于预设值时,可以设置为实时存盘;当该字段被修改后的数值大于预设数值时,可以设置为延迟存盘,实现当血量较小时,可以及时将该数据存盘。
当存盘间隔为实时存盘时,则直接对被修改的字段进行实时存盘操作。当存盘间隔需求为延迟存盘时,则可以为对应的节点添加脏标记,并每隔预设周期,根据各个节点的脏标记进行存盘操作。或者,可以在为父节点添加脏标记并删除各个子节点的脏标记之后,进行存盘操作,提升存盘效果。
通过确定各个被修改的字段的存盘间隔需求,可以实现对不同的被修改的字段采用不同的存盘方式,当被修改的字段较为重要时,可以采用部分存盘方式将该被修改字段直接存盘;当被修改的字段不重要时,可以等添加有脏标记的子节点累积到一定数量并调整为父节点的脏标记后进行存盘操作,提高了对重要字段的数据存储速度,实现了针对字段的差异化存盘,提升整体存盘效果。
在本申请的一个或多个实施例中,可选的,根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作,包括:
根据所述目标游戏对象对应的各个节点的脏标记以及SQL语句模板,生成对应的SQL语句;将所述SQL语句发送给数据库,以使所述数据库根据所述SQL语句对具有脏标记的节点进行存盘操作。
图7为本申请实施例提供的一种生成SQL语句的原理图,如图7所示,整个过程为:先判断是否满足预设时间间隔,确定添加有脏标记的各个节点,再根据预先设置的SQL语句模板为每一节点选择SQL语句模板,再生成SQL语句,最后将SQL语句发送给数据库。
在根据目标游戏对象对应的各个节点的脏标记进行存盘操作时,可以预先设置时间间隔,若当前时间满足预先设置的时间间隔,则确定添加有脏标记的节点。其中,若预先设置的时间间隔为1分钟,则若当前时间距离上次数据存盘的时间间隔等于1分钟,则获取添加有脏标记的节点。
在获取添加有脏标记的节点后,还可以添加有脏标记的节点的真实数值,将真实数值与游戏数据中的当前数值进行比较,通过比较可以确定对该节点的操作类型,根据操作类型套用对应的SQL语句模板,根据真实数据生成SQL语句。其中,操作类型可以包括增加、修改和删除,针对不同的操作类型可以设置对应的SQL语句模板。例如,当通过比较确定对该节点的操作类型为修改操作,则套用与修改操作对应的SQL语句模板。
在确定SQL语句后,可以将SQL语句发送给数据库,如存储游戏数据的MongoDB数据库,实现根据SQL语句对数据库中具有脏标记的节点对应的数据进行更新。
通过设置不同操作类型的SQL模板,可以方便及快速的生成SQL语句,从而提升数据存盘的效率。
在本申请的一个或多个实施例中,可选的,所述目标游戏对象为游戏中的目标虚拟角色;所述方法还包括:
响应于所述目标虚拟角色的登陆操作,为所述目标虚拟角色创建对应的游戏数据,并为所述游戏数据设置默认存盘模式;
所述根据所述被修改的字段,确定所述游戏数据的存盘模式,包括:
若所述默认存盘模式不属于全量存盘,则根据所述被修改的字段,确定所述游戏数据的存盘模式。
其中,当目标游戏对象为游戏中的目标虚拟角色时,如玩家角色,当目标虚拟角色进行登录时,可以响应于目标虚拟角色的登录操作,来为该目标虚拟角色创建游戏数据,即创建orm对象。具体的,当目标虚拟角色在登录时,通过预设服务根据与目标虚拟角色对应的用户ID从玩家数据库中拉取与该玩家对应的玩家数据。
其中,创建游戏数据时,还会为游戏数据设置默认存盘模式,并根据默认存盘模式进行数据存盘。其中,默认存盘模式可以包括:全量存盘模式和部分存盘模式。其中,部分存盘模式是指partial模式,即增量模式。
其中,当默认存盘模式不属于全量存盘时,则可以根据所述被修改的字段,确定所述游戏数据的存盘模式,也就是在部分存盘模式下,可以执行动态调整游戏数据的存盘模式的操作。在全量存盘模式下,可以不执行动态调整游戏数据的存盘模式的操作,即在全量存盘模式下,将目标虚拟对象的游戏数据进行全量存盘。
通过在合适的情况下将默认存盘模式设置为全量存盘,实现无需动态调整存盘模式,使得处理逻辑更加简单。
在本申请的一个或多个实施例中,可选的,所述默认存盘模式中的全量存盘包括普通全量存盘和脏标记全量存盘;所述方法还包括:
若所述默认存盘模式为普通全量存盘,则对所述目标虚拟对象的游戏数据进行全量存盘;
若所述默认存盘模式为脏标记全量存盘,则在所述目标虚拟对象的游戏数据中的至少部分字段被修改时,为所述游戏数据添加脏标记;在存盘时,若所述目标虚拟对象有脏标记,则对所述游戏数据进行全量存盘。
其中,默认存盘模式包括普通全量存盘模式和脏标记全量存盘模式,普通全量存盘表示为normal模式,脏标记全量存盘模式为dirty模式。
当默认存盘模式为普通全量存盘模式时,在进行数据存盘时将目标虚拟对象的游戏数据进行全量存盘,无论目标虚拟对象的游戏数据中是否存在被修改的字段,均会对该目标虚拟对象的游戏数据进行全量存盘。
当默认存盘模式为脏标记全量存盘模式时,当目标虚拟对象的游戏数据中的至少部分字段被修改时可以为该游戏数据添加脏标记,相应的,在进行存盘时,将存在有脏标记的游戏数据进行全量存盘。
示例性的,当存在三个目标虚拟对象,分别为对象1、对象2和对象3,当对象2对应的游戏数据发生修改,而对象1和对象3对应的游戏数据未发生修改时,当默认存盘模式为普通全量存盘模式时,则对象1、对象2和对象3对应的游戏数据均需要存盘。当默认存盘模式为脏标记全量存盘模式时,则会为对象2添加脏标记,且在存盘时仅将有脏标记的对象2对应的游戏数据进行存盘。上述两种全量存盘模式均是针对游戏数据的全量存盘。
其中,当在游戏过程中多数目标虚拟对象的数据均发生修改时,则可以采用普通全量存盘,此时若采用脏标记全量存盘,则需要对脏标记进行添加及判断等逻辑处理,且处理结果为大部分目标虚拟对象的游戏数据均进行存盘;当部分目标虚拟对象的数据频繁修改时,则可以采用脏标记全量存盘。
通过设置两种全量存盘模式,可以实现在基于目标虚拟对象全量存储的前提下,尽量降低数据存储量以及减少数据库的逻辑计算复杂度。
在本申请的一个或多个实施例中,可选的,所述方法还包括下述至少一项:
获取运营人员输入的所述默认存盘模式;
根据所述游戏所处的阶段,和/或,所述游戏的数据修改信息,确定对应的默认存盘模式;
其中,所述数据修改信息用于表示所述游戏当前的数据修改频率和/或数据修改量。
其中,对于默认存盘模式的确定可以采用下述方式中的一种或两种。在目标虚拟角色登录时可以设置默认存盘模式,且随着游戏的推进,还可以对默认存盘模式进行人工修改或自动修改。具体的,人工修改包括运营人员根据游戏的实际情况输入默认存盘模式。示例性的,在游戏开服时,目标游戏对象对应的游戏数据变化较大,运营人员可以输入全量存盘的默认存盘模式,如脏标记全量存盘的模式;随着游戏的推进,目标游戏对象对应的游戏数据变化逐渐减少,运营人员可以输入部分存盘的默认存盘模式,实现针对被修改的节点进行存盘。
或者,还可以根据游戏所处的阶段和/或游戏的数据修改信息,自动确定默认存盘模式。可以预先设置游戏所处的阶段,并为每种游戏所处的阶段设置默认存盘模式。在游戏的过程中,可以先确定游戏所处的阶段,根据游戏所处的阶段确定对应的默认存盘模式。其中,游戏所处的阶段可以为游戏开服阶段(数据修改量较大),或者游戏开服后的一段时间内(数据修改量较少),或者还可以为参与游戏中的某一活动(数据修改量较大),针对不同的阶段数据修改量不同,可以直接根据游戏所处的阶段确定默认存盘模式。
此外,还可以获取游戏数据的修改信息,游戏数据的修改信息表示数据修改频率和/或数据修改量,当数据修改频率或数据修改量高于预设数值时,可以将默认存盘模式设置为全量存盘模式;当数据修改频率或数据修改量低于预设数值时,可以将默认存盘模式设置为部分存盘模式。其中,数据修改频率和/或数据修改量为数据修改次数。其中,数据修改次数为对应的存盘间隔内数据修改次数,例如,存盘间隔为1分钟,则数据修改次数为1分钟内的数据修改次数。
通过人工或自动在游戏中调整默认存盘模式,能够根据游戏所处的各个阶段的特点设置不同的默认存盘模式,在降低数据存储量的前提下减少数据库的逻辑计算复杂度。
图8为本申请实施例提供的另一种数据存盘方法的流程示意图,所述方法可以应用于云游戏的服务端,如图8所示,所示方法包括:
步骤S801、根据用户终端发送的控制指令,确定所述控制指令对应的游戏画面,以及目标游戏对象对应的游戏数据中被修改的字段。
在云游戏场景中,用户终端可以向云游戏的服务端发送控制指令,云游戏的服务端在接收到控制指令后,可以确定对应游戏画面。其中,被修改的字段可以为内容被修改的字段,或者,增加的字段,或者删除的字段。
示例性的,控制指令可以为玩家购买某一物品,则与玩家对应的目标游戏对象的背包中的字段会增加,同时,游戏画面也需要更新玩家对应的背包中的物品。当控制指令为该玩家成功攻击另一玩家时,则该玩家对应的目标游戏对象的等级字段会被修改,同时,游戏画面也需要更新玩家的等级。
步骤S802、向用户终端发送所述游戏画面,并根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作。
云游戏的服务端在确定游戏画面后,可以向用户发送游戏画面,以使用户根据游戏画面进行后续的游戏操作。
同时,云游戏的服务端还可以根据被修改的字段确定游戏数据的存盘模式,其中,所述存盘模式包括全量存盘和部分存盘。全量存盘用于在至少部分字段被修改时对全部字段进行数据存盘;部分存盘用于针对游戏数据中的部分字段进行数据存盘。具体的,部分字段为:仅被修改的部分字段,或者,包含被修改的部分字段和部分未被修改的部分字段且不是全部的字段。
在确定存盘模式时,可以根据被修改的字段的数量来动态确定。当被修改字段较多时,可以采用全量存盘,以减少数据存盘时的处理逻辑;当被修改的字段较少时,可以采用部分存盘,若采用全量存盘,则需要存盘的数据量较大,耗费时间较长。
本实施例中,数据存盘的具体实现原理和过程可以参考前述实施例,此处不再赘述。
综上,本实施例提供的数据存盘方法,通过根据用户终端发送的控制指令,确定所述控制指令对应的游戏画面,以及目标游戏对象对应的游戏数据中被修改的字段;向用户终端发送所述游戏画面,并根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作,可以在云游戏的场景中根据被修改的字段动态调整存盘模式,在根据被修改的字段确定适合进行部分存盘时,可以进行部分存盘,减少由于存盘的数据量较大导致的存盘耗时较长、数据库更新较慢的问题,在适合进行全量存盘时,调整为全量存盘模式,降低数据库存盘指令的复杂度,提高存盘的灵活性,提升整体存盘效率,提高用户体验。
对应于上述方法,本申请实施例还提供一种数据存盘装置,图9为本申请实施例提供的一种数据存盘装置的结构示意图;如图9所示,所述装置包括:
第一确定模块901,用于确定目标游戏对象对应的游戏数据中被修改的字段;
第二确定模块902,用于根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作;
其中,所述存盘模式包括全量存盘和部分存盘。
可选的,所述游戏数据为对象关系映射数据,所述多个字段包括形成树形结构的多个节点对应的字段;所述部分存盘包括针对节点进行存盘;
其中,在针对节点进行存盘时,若所述节点包含子节点,则将包含的子节点对应的字段进行存盘。
可选的,所述装置还包括:添加模块,用于在游戏过程中,若目标游戏对象对应的某一字段被修改,则为对应的节点添加脏标记;
相应的,第二确定模块902具体用于:若属于同一父节点的多个子节点中,添加有脏标记的子节点数量满足预设要求,则为所述父节点添加脏标记,并删除所述父节点的各个子节点的脏标记,以根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作。
可选的,第二确定模块902在根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作时,具体用于:
根据所述目标游戏对象对应的各个节点的脏标记以及SQL语句模板,生成对应的SQL语句;
将所述SQL语句发送给数据库,以使所述数据库根据所述SQL语句对具有脏标记的节点进行存盘操作。
可选的,所述目标游戏对象为游戏中的目标虚拟角色;所述装置还包括:创建模块,用于响应于所述目标虚拟角色的登陆操作,为所述目标虚拟角色创建对应的游戏数据,并为所述游戏数据设置默认存盘模式;
第二确定模块902在根据所述被修改的字段,确定所述游戏数据的存盘模式时,具体用于:
若所述默认存盘模式不属于全量存盘,则根据所述被修改的字段,确定所述游戏数据的存盘模式。
可选的,所述默认存盘模式中的全量存盘包括普通全量存盘和脏标记全量存盘;
所述装置还包括:存盘模块,用于:
若所述默认存盘模式为普通全量存盘,则对所述目标虚拟对象的游戏数据进行全量存盘;
若所述默认存盘模式为脏标记全量存盘,则在所述目标虚拟对象的游戏数据中的至少部分字段被修改时,为所述游戏数据添加脏标记;在存盘时,若所述目标虚拟对象有脏标记,则对所述游戏数据进行全量存盘。
可选的,所述装置还包括下述模块中的至少一项:
获取模块,用于获取运营人员输入的所述默认存盘模式;
默认存盘模式确定模块,用于根据所述游戏所处的阶段,和/或,所述游戏的数据修改信息,确定对应的默认存盘模式;
其中,所述数据修改信息用于表示所述游戏当前的数据修改频率和/或数据修改量。
本申请实施例提供的装置的具体实现原理和技术效果可以参见前述实施例,此处不再赘述。
图10为本申请实施例提供的一种电子设备的结构示意图。如图10所示,本实施例的电子设备可以包括:
至少一个处理器1001;以及
与所述至少一个处理器1001通信连接的存储器1002;
其中,所述存储器1002存储有可被所述至少一个处理器1001执行的指令,所述指令被所述至少一个处理器1001执行,以使所述电子设备执行如上述任一实施例所述的方法。
可选地,存储器1002既可以是独立的,也可以跟处理器1001集成在一起。
本实施例提供的电子设备的实现原理和技术效果可以参见前述各实施例,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现前述任一实施例所述的方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
本申请的技术方案中,所涉及的用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (12)

1.一种数据存盘方法,其特征在于,包括:
确定目标游戏对象对应的游戏数据中被修改的字段;
根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作;
其中,所述存盘模式包括全量存盘和部分存盘。
2.根据权利要求1所述的方法,其特征在于,所述游戏数据为对象关系映射数据,所述多个字段包括形成树形结构的多个节点对应的字段;所述部分存盘包括针对节点进行存盘;
其中,在针对节点进行存盘时,若所述节点包含子节点,则将包含的子节点对应的字段进行存盘。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在游戏过程中,若目标游戏对象对应的某一字段被修改,则为对应的节点添加脏标记;
相应的,所述根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作,包括:
若属于同一父节点的多个子节点中,添加有脏标记的子节点数量满足预设要求,则为所述父节点添加脏标记,并删除所述父节点的各个子节点的脏标记,以根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作。
4.根据权利要求3所述的方法,其特征在于,若目标游戏对象对应的某一字段被修改,则为对应的节点添加脏标记,包括:
若目标游戏对象对应的某一字段被修改,则确定所述被修改的字段对应的存盘间隔需求;
若存盘间隔需求为延迟存盘,则为对应的节点添加脏标记;
若存盘间隔需求为实时存盘,则对所述被修改字段进行实时存盘操作;
相应的,所述方法还包括:
每隔预设周期,或者,在所述为所述父节点添加脏标记,并删除所述父节点的各个子节点的脏标记之后,根据目标游戏对象对应的各个节点的脏标记进行存盘操作。
5.根据权利要求3所述的方法,其特征在于,根据所述目标游戏对象对应的各个节点的脏标记进行存盘操作,包括:
根据所述目标游戏对象对应的各个节点的脏标记以及SQL语句模板,生成对应的SQL语句;
将所述SQL语句发送给数据库,以使所述数据库根据所述SQL语句对具有脏标记的节点进行存盘操作。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述目标游戏对象为游戏中的目标虚拟角色;所述方法还包括:
响应于所述目标虚拟角色的登陆操作,为所述目标虚拟角色创建对应的游戏数据,并为所述游戏数据设置默认存盘模式;
所述根据所述被修改的字段,确定所述游戏数据的存盘模式,包括:
若所述默认存盘模式不属于全量存盘,则根据所述被修改的字段,确定所述游戏数据的存盘模式。
7.根据权利要求6所述的方法,其特征在于,所述默认存盘模式中的全量存盘包括普通全量存盘和脏标记全量存盘;
所述方法还包括:
若所述默认存盘模式为普通全量存盘,则对所述目标虚拟对象的游戏数据进行全量存盘;
若所述默认存盘模式为脏标记全量存盘,则在所述目标虚拟对象的游戏数据中的至少部分字段被修改时,为所述游戏数据添加脏标记;在存盘时,若所述目标虚拟对象有脏标记,则对所述游戏数据进行全量存盘。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括下述至少一项:
获取运营人员输入的所述默认存盘模式;
根据所述游戏所处的阶段,和/或,所述游戏的数据修改信息,确定对应的默认存盘模式;
其中,所述数据修改信息用于表示所述游戏当前的数据修改频率和/或数据修改量。
9.一种数据存盘装置,其特征在于,包括:
第一确定模块,用于确定目标游戏对象对应的游戏数据中被修改的字段;
第二确定模块,用于根据所述被修改的字段,确定所述游戏数据的存盘模式,以基于所述游戏数据对应的存盘模式对所述目标游戏对象进行存盘操作;
其中,所述存盘模式包括全量存盘和部分存盘。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN202210557435.0A 2022-05-20 2022-05-20 数据存盘方法、装置、设备、存储介质及程序产品 Active CN114748875B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210557435.0A CN114748875B (zh) 2022-05-20 2022-05-20 数据存盘方法、装置、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210557435.0A CN114748875B (zh) 2022-05-20 2022-05-20 数据存盘方法、装置、设备、存储介质及程序产品

Publications (2)

Publication Number Publication Date
CN114748875A true CN114748875A (zh) 2022-07-15
CN114748875B CN114748875B (zh) 2023-03-24

Family

ID=82336100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210557435.0A Active CN114748875B (zh) 2022-05-20 2022-05-20 数据存盘方法、装置、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN114748875B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821181A (zh) * 2012-08-09 2012-12-12 广东欧珀移动通信有限公司 一种二维码信息存储方法及移动终端
CN103366015A (zh) * 2013-07-31 2013-10-23 东南大学 一种基于Hadoop的OLAP数据存储与查询方法
CN104731705A (zh) * 2013-12-31 2015-06-24 北京理工大学 一种基于复杂网络的脏数据传播路径发现方法
CN104794177A (zh) * 2015-04-02 2015-07-22 广州神马移动信息科技有限公司 一种数据存储方法及装置
CN105718515A (zh) * 2016-01-14 2016-06-29 神策网络科技(北京)有限公司 数据存储系统及其方法和数据分析系统及其方法
EP3101560A1 (en) * 2015-06-05 2016-12-07 Palantir Technologies, Inc. Time-series data storage and processing database system
GB201708818D0 (en) * 2017-06-02 2017-07-19 Palantir Technologies Inc Systems and methods for retrieving and processing data
CN112791415A (zh) * 2021-01-26 2021-05-14 广州心源互动科技有限公司 一种游戏数据的存盘方法和装置
CN113440844A (zh) * 2021-08-27 2021-09-28 网易(杭州)网络有限公司 一种适用于游戏的信息处理方法、装置和电子设备
CN113901037A (zh) * 2021-09-29 2022-01-07 紫金诚征信有限公司 数据管理方法、装置及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821181A (zh) * 2012-08-09 2012-12-12 广东欧珀移动通信有限公司 一种二维码信息存储方法及移动终端
CN103366015A (zh) * 2013-07-31 2013-10-23 东南大学 一种基于Hadoop的OLAP数据存储与查询方法
CN104731705A (zh) * 2013-12-31 2015-06-24 北京理工大学 一种基于复杂网络的脏数据传播路径发现方法
CN104794177A (zh) * 2015-04-02 2015-07-22 广州神马移动信息科技有限公司 一种数据存储方法及装置
EP3101560A1 (en) * 2015-06-05 2016-12-07 Palantir Technologies, Inc. Time-series data storage and processing database system
CN105718515A (zh) * 2016-01-14 2016-06-29 神策网络科技(北京)有限公司 数据存储系统及其方法和数据分析系统及其方法
GB201708818D0 (en) * 2017-06-02 2017-07-19 Palantir Technologies Inc Systems and methods for retrieving and processing data
CN112791415A (zh) * 2021-01-26 2021-05-14 广州心源互动科技有限公司 一种游戏数据的存盘方法和装置
CN113440844A (zh) * 2021-08-27 2021-09-28 网易(杭州)网络有限公司 一种适用于游戏的信息处理方法、装置和电子设备
CN113901037A (zh) * 2021-09-29 2022-01-07 紫金诚征信有限公司 数据管理方法、装置及存储介质

Also Published As

Publication number Publication date
CN114748875B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
US9977672B2 (en) Attributing authorship to segments of source code
US6816868B1 (en) Database system
CN108647935B (zh) 一种财务凭证生成规则更新方法及装置
CN103440304A (zh) 一种图片存储方法及存储装置
CN109299352B (zh) 搜索引擎中网站数据的更新方法、装置和搜索引擎
CN113434557A (zh) 一种标签数据的范围查询方法、装置、设备及存储介质
CN106886548B (zh) 数据查询方法及装置
CN114748875B (zh) 数据存盘方法、装置、设备、存储介质及程序产品
CN108629026A (zh) 一种全文索引的更新方法、装置、设备和存储介质
CN109062970A (zh) 用户画像的生成方法、生成设备及计算机可读存储介质
WO2019000897A1 (zh) 一种数据获取方法及设备
CN112328616A (zh) 一种数据更新方法、装置和存储介质
CN111752941B (zh) 一种数据存储、访问方法、装置、服务器及存储介质
CN112036133B (zh) 一种文件保存方法、装置、电子设备及存储介质
CN110019783B (zh) 属性词聚类方法及装置
WO2018177414A1 (zh) 数据处理方法及数据处理装置、计算设备及存储介质
CN107016296B (zh) 一种数据索引构建、数据读取的方法、装置及电子设备
CN115544214A (zh) 一种事件处理方法、设备及计算机可读存储介质
CN116830555A (zh) 交互过程的会话数据的处理方法、系统、服务器群组及计算机可读存储介质
CN108694219B (zh) 一种数据处理方法及装置
JPH0844846A (ja) 地図利用システム
CN111984600A (zh) 一种文件聚合方法、装置、设备及可读存储介质
JP2001147923A (ja) 類似文書検索装置、類似文書検索方法及び記録媒体
CN109379412A (zh) 一种删除云主机的方法和装置
US20170154096A1 (en) Data service system and electronic apparatus

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