CN112214177B - 一种数据存储方法、装置及介质 - Google Patents

一种数据存储方法、装置及介质 Download PDF

Info

Publication number
CN112214177B
CN112214177B CN202011220582.6A CN202011220582A CN112214177B CN 112214177 B CN112214177 B CN 112214177B CN 202011220582 A CN202011220582 A CN 202011220582A CN 112214177 B CN112214177 B CN 112214177B
Authority
CN
China
Prior art keywords
data
application
archived data
cloud
memory
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.)
Active
Application number
CN202011220582.6A
Other languages
English (en)
Other versions
CN112214177A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011220582.6A priority Critical patent/CN112214177B/zh
Publication of CN112214177A publication Critical patent/CN112214177A/zh
Application granted granted Critical
Publication of CN112214177B publication Critical patent/CN112214177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据存储方法、装置及介质,涉及云技术领域,该数据存储方法用于提高数据存储的可靠性。该数据存储方法应用于云应用服务器中,云应用服务器运行有虚拟运行系统,虚拟运行系统运行有云应用的应用进程,该方法包括:在应用进程运行过程中,通过代理进程实时获取云应用的应用进程在当前时间段内产生的存档数据;代理进程为运行在虚拟运行系统外的进程;通过代理进程将存档数据转发至云存储设备,该数据存储方法中代理进程能够在应用进程运行过程中获取应用进程产生的存档数据,将存档数据及时地发送给云存储设备,从而避免在应用进程运行结束后才存储存档数据,避免了应用进程异常时数据丢失的情况,提高了存储数据的可靠性。

Description

一种数据存储方法、装置及介质
技术领域
本申请涉及计算机技术领域,尤其涉及云技术领域,提供一种数据存储方法、装置及介质。
背景技术
云应用与传统的应用不同,传统的应用一般是运行在用户对应的终端中,而云应用是直接运行在云应用服务器中。由于云应用服务器的资源是多个用户共享的,一旦某个用户退出云应用,则该用户所对应的云应用服务器资源会被释放分配给其他用户使用,因此在云应用中需要保存用户的数据,以便为下次用户使用该云应用提供方便。
目前云应用存储数据的方式为:应用进程运行过程中将数据存储在云应用服务器的本地磁盘中,在应用进程运行结束后,云应用服务器通过代理进程将数据存储至云存储设备。但在应用进程中途异常的情况下,云应用服务器容易丢失该用户的数据,可见,目前这种数据存储方式可靠性较低。
发明内容
本申请实施例提供一种数据存储方法、装置及介质,用于提高数据存储的可靠性。
一方面,提供一种数据存储方法,应用于云应用服务器中,所述云应用服务器运行有虚拟运行系统,所述虚拟运行系统运行有云应用的应用进程,所述方法包括:
在所述云应用的应用进程运行过程中,通过代理进程实时获取所述云应用的应用进程在当前时间段内产生的存档数据;其中,所述代理进程为运行在所述虚拟运行系统外的进程,所述存档数据为目标用户使用云应用所记录的数据;
通过所述代理进程将所述存档数据转发至云存储设备。
本申请实施例提供一种数据存储装置,所述装置设置在云应用服务器中,包括:
获取单元,用于在所述云应用的应用进程运行过程中,通过代理进程实时获取所述云应用的应用进程在当前时间段内产生的存档数据;所述存档数据为目标用户使用云应用所记录的数据;
转发单元,用于将所述存档数据转发至云存储设备。
在一种可能的实施例中,所述获取单元具体用于:
获取所述应用进程在当前时间段内进行数据写入操作过程中的地址信息;所述地址信息表示存档数据在所述应用进程的内存中的地址;
根据所述地址信息,获取所述应用进程在当前时间段内产生的存档数据。
在一种可能的实施例中,所述获取模块具体用于:
调用通信函数根据所述地址信息,从所述应用进程的内存中,拷贝获得存档数据;
调用所述通信函数将所述存档数据发送给所述代理进程。
在一种可能的实施例中,所述装置存储有内存映射区域信息,所述内存映射区域信息用于表示存档数据文件映射在所述产生单元的内存中内存映射区域;所述获取单元具体用于:
根据所述内存映射区域信息,校验所述内存映射区域中存档数据是否存在更新;
若所述内存映射区域中存档数据存在更新,则将存档数据的更新部分确定为所述存档数据。
在一种可能的实施例中,所述获取单元具体用于:
确定所述内存映射区域中每个子区域中数据在当前时间段内的检验和,将每个子区域的校验和与上一个时间段对应子区域的校验和进行比较;
若每个子区域在当前周期内的检验和与上一个时间段对应子区域的校验和不同,则确定对应子区域中存档数据存在更新;
若每个子区域在当前周期内的检验和与上一个时间段对应子区域的校验和相同,则确定对应子区域中存档数据不存在更新。
在一种可能的实施例中,所述云应用为云游戏应用。
本申请实施例提供一种计算机设备,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如前文论述的任一的数据存储方法。
本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如前文论述的任一的数据存储方法。
由于本申请实施例采用上述技术方案,至少具有如下技术效果:
本申请实施例中,代理进程能够在应用进程运行过程中获取应用进程产生的存档数据,并将存档数据发送给云存储设备,从而实现及时地存储存档数据,以避免应用进程异常时数据丢失的情况,提高了数据存档的可靠性。且,代理进程能够更及时第上报存档数据,提高了数据存档的实时性。且,该方案无需对云应用的应用进程进行改造,降低实施成本。进一步地,代理进程可以以增量的更新存档数据,避免重复上传存档数据,降低网络传输负担。
附图说明
图1为相关技术提供的一种存档游戏数据系统的实现架构图;
图2A为本申请实施例提供的一种数据存储方法的应用场景图;
图2B为本申请实施例提供的图2A中云应用服务器的架构示意图一;
图2C为本申请实施例提供的图2A中云应用服务器的架构示意图二;
图3为本申请实施例提供的图2B中各模块的交互示意图一;
图4为本申请实施例提供的图2C中各模块的交互示意图二;
图5为本申请实施例提供的一种数据存储装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的名词进行介绍。
云计算(cloud computing):指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
云存储(cloud storage):是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识ID等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(Redundant Array of Independent Disk,RAID)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
云存储设备:云存储设备泛指具有存储能力的设备,例如云存储设备可以基于云存储技术以实现存储功能的设备。云存储设备例如服务器,或者由云服务器搭建的存储系统等,本申请不限制云存储设备的具体实现形式。
云应用:是基于云技术的一种服务方式,在云应用的运行模式下,所有应用进程都在云应用服务器中运行,用户无需在终端中安装客户端等,直接访问云应用服务器可以使用云应用为其提供服务。云应用例如云游戏,在云游戏的运行模式下,所有游戏进程都在云游戏服务器中运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。
虚拟运行系统:本申请中是指通过虚拟化技术创建在云游戏服务器中的虚拟系统环境,虚拟运行系统与云应用服务器的真实系统环境是相互独立的,用于为应用进程提供运行环境,以隔离为不同用户开启的应用进程。虚拟化技术具体例如通过虚拟机实现,或者可以通过沙箱实现。
虚拟机:(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。虚拟机通常用指令转译的方法实现。
沙箱(Sandboxie):又叫沙盘,是一个虚拟系统程序,是一种按照安全策略限制程序行为的执行环境。早期主要用于测试可疑软件等,比如黑客们为了试用某种病毒或者不安全产品,往往可以将它们在沙箱环境中运行。经典的沙箱系统的实现途径一般是通过拦截系统调用,监视程序行为,然后依据用户定义的策略来控制和限制程序对计算机资源的使用,比如改写注册表,读写磁盘等。
存档数据:是指应用进程在云应用服务器中运行过程中产生的数据。云应用类型不同,对应应用进程产生的存档数据也不完全相同。例如,在角色扮演类游戏(Role-Playing Game,RPG)应用中,存档数据包括玩家在游戏中的进度(例如游戏关卡)、游戏奖励和玩家属性等。应用进程在不同的时间段所产生的存档数据也是不完全相同的。
地址信息:本申请是指存档数据在应用进程内存中的地址,应用进程的内存可以是物理内存或虚拟内存。地址信息包括写入位置、写入地址和写入内存大小,还可以包括写入内存的数据类型,例如数据类型为sizeof(int64)。
下面以云应用为云游戏应用为例,对相关技术中的数据存储方式进行介绍:
请参照图1,为相关技术的游戏存档系统的实现架构。云游戏服务器创建有沙箱环境,游戏进程运行在沙箱环境中,代理进程运行在沙箱环境外。游戏进程将数据写入沙箱环境的本地磁盘中,代理进程在确定游戏结束后,从本地磁盘中拉取存档数据,并将存档数据发送给云存储设备。
但这种方式在游戏进程中途异常的情况下,代理进程无法获取到存档数据,进而导致存档数据无法被存储至云存储设备中,导致存档数据丢失,存储数据的可靠性较低。
有鉴于此,本申请实施例提供一种数据存储方法,下面对本申请实施例的中的数据存储方法的设计思想进行介绍。
本申请实施例中的数据存储方法的主要思路为:在应用进程运行的过程中,代理进程会获取应用进程实时产生的存档数据,进而将存档数据发送给云应用服务器,即实时地上报存档数据,从而避免了应用进程异常时数据丢失的情况,提高了数据存档的可靠性。且,实时地上报存档数据,提高了数据存档的实时性。
在一种可能的情况下,应用进程默认是将存档数据的地址信息写入云应用服务器中的本地磁盘中,本地磁盘在获得地址信息后,基于地址信息写入存档数据。为了适应用进程这一数据写入方式,在本申请实施例中可以借助运行在虚拟运行环境中的钩子模块截取应用进程在进行写入操作过程中的地址信息,根据地址信息获得存档数据,并将存档数据及时地发送给代理进程。
在另一种可能的情况中,应用进程默认是以内存映射的方式将存档数据写入本地磁盘中,为了适配应用进程这一数据写入方式,代理进程可以提前确定应用进程存档数据映射的内存映射区域,检查内存映射区域内的存档数据是否更新,当存档数据有更新时,代理进程可以获取更新部分,并实时地上报至云存储设备。
上述两种实施例中的数据存储方案,不仅实现了实时获取应用进程产生的存档数据,还无需修改应用进程的代码,降低方案的应用成本,另外由于应用本身的代码是第三方开发的,因此这种方式避免让第三方修改云应用的代码,能够扩大该方案的适应范围,提升第三方的使用体验。
基于上述设计思想,下面对本申请实施例的数据存储方法的应用场景进行介绍。
本申请实施例涉及的数据存储方法可以应用于任何需要存储数据的云应用,不限于云应用的类型,例如云游戏应用等。
请参照图2A,为本申请实施例提供的一种数据存储方法的应用场景图,该应用场景图包括云应用服务器210和云存储设备220。该云应用服务器210可以理解为支持云应用的服务器,云存储设备220用于存储云应用产生的数据。其中云应用服务器210可以与云存储设备220是相互独立的设备,但二者之间相互通信,通信方式可以通过有线或无线通信方式进行通信。
云应用服务器210用于为应用进程提供资源,并获取应用进程在运行过程中产生的存档数据。云应用服务器210为应用进程所提供的资源,会在应用进程关闭后释放,以提供给其它的应用进程使用,因此为了保证能够相对长久地存储用户的存档数据,因此云应用服务器210可以将获取的存档数据发送给云存储设备220,云存储设备220用于存储存档数据,并在云应用服务器210需要存档数据时,为云应用服务器210提供存档数据。云存储设备220可以相对长久地存储这些用户的存档数据。但当某个用户超过预设时长不使用云应用,或者注销云应用上的账号时,云应用服务器210可以指示云存储设备220删除该用户的存档数据。
其中,云应用服务器210可以通过独立的物理服务器、多个物理服务器构成的服务器集群、分布式系统、提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器实现,本申请不限制云应用服务器210的具体实现方式。云存储设备220泛指具有存储能力的设备,具有存储能力的设备例如服务器,或者由服务器搭建的存储系统等,本申请不限制云存储设备220的具体实现形式。
在第一种可能的场景下:
请参照图2B,为图2A中云应用服务器210的架构示意图一,云应用服务器210创建有虚拟运行系统211,该虚拟运行系统211可以是基于沙箱创建的,或者基于虚拟机技术创建的,本申请不限制虚拟运行系统211的具体创建方式。该虚拟运行系统211用于为应用进程212提供运行环境,该虚拟运行系统211还可以用于为获取应用进程在运行过程中的存档数据的钩子模块213提供运行环境。代理进程214用于从钩子模块213获取存档数据,并将存档数据上报给云存储设备220。钩子模块213具体可以是该云应用服务器210中的一个进程实现。
进一步地,在获取存档数据之后,代理进程214能够支持将存档数据缓存在代理进程214的内存中,代理进程214在上报存档数据时,如果上报失败,代理进程214能够从自身的内存中再次获取存档数据,将上报失败的存档数据再次上报云存储设备220,从而实现存档数据重传。
另外,在上报存档数据时,代理进程214能够设置上传存档数据的最大带宽,以实现限速上传存档数据,例如代理进程214可以根据每次需要上传的存档数据的大小,设置本次上传存档数据的最大带宽,以避免上传存档数据占用过多的带宽,或者例如代理进程214设置有一个固定的最大带宽,每次上传存档数据所占用的带宽均不能超过最大带宽。
在第二种可能的场景下:
请参照图2C,为本申请实施例提供的为图2A中云应用服务器210的架构示意图二,在第二种可能的场景下,云应用服务器210中没有设置钩子模块,代理进程214可以直接获得应用进程212实时产生的存档数据,上报给云存储设备220。
应当说明的是,上述两种应用场景只是对本申请涉及的数据存储方法的应用场景进行示例说明,但实际上本申请涉及的数据存储方法的应用场景并不限于此。
下面结合图2A~图2B所示的应用场景,下面先对上述第一种可能的场景下涉及的数据存储方法进行介绍。
请参照图3,为图2B中各个模块之间的交互示意图,该交互过程具体包括:
S301,在虚拟运行系统211中加载应用进程的代码文件。
在云应用启动之前,云应用服务器210创建虚拟运行系统211,并将应用进程的代码文件加载到虚拟运行系统211中,相当于在虚拟运行系统211中创建了应用进程212。例如,云应用服务器210接收用户请求运行云应用之后,云应用服务器210将云应用对应的代码文件加载到虚拟运行系统211中。
在一种可能的实施例中,该用户可能之前使用过该云应用,那么云存储设备220中会记录该用户对应的存档数据,因此在创建应用进程212之后,应用进程212可以请求从云存储设备220请求该用户的存档数据。该用户的存档数据可以理解为用户之前使用云应用所记录的存档数据,为了便于区分,又可以称为历史存档数据。该应用进程212获取该历史存档数据,例如应用进程212在拉取历史存档数据之后,可以将该历史存档数据覆盖在应用进程所对应存储存档数据的地址中,在运行过程中能够读取该地址中的历史存档数据。
当然如果该用户为首次使用该云应用,那么云存储设备220中则可能没有该用户的历史存档数据,因此应用进程212从云存储设备220则无法获得该用户的历史存档数据。
S302,钩子模块213扫描应用进程的代码文件,确定与数据写入操作相关的函数指针。
在虚拟运行系统211中加载应用进程的代码文件之后,钩子模块213可以扫描该代码文件,查找出应用进程212进行数据写入操作相关的函数指针。应用进程212进行数据写入操作相关的函数指针可以理解为应用进程212进行数据写入所用到的函数所对应的函数指针。函数指针可以理解为函数地址。应用进程212进行数据写入操作相关的函数例如应用进程常用写入函数的函数pwrite()和函数mmap()指针。
S303,钩子模块213用目标函数指针替换与数据写入操作相关的函数指针。
如果要获得与数据写入操作相关的函数指针所对应的数据,理论上是需要修改与数据写入操作相关的函数,这样一来,需要修改云应用的源代码,增加云应用开发者的工作量,为此,本申请实施例中钩子模块213在确定出函数指针之后,可以用目标函数的目标函数指针替换与数据写入操作相关的函数指针。例如钩子模块213存储有对应的函数库,这些函数库中的各个函数能够反馈对应的调用结果至钩子模块213中,因此在本申请实施例钩子模块213可以将目标函数所对应的函数指针替换为该函数库中函数所对应的函数指针,从而在不影响应用进程212运行的情况下,将应用进程212进行数据写入操作时的内容反馈至钩子模块213,在应用进程212无感的情况下,获取其产生的存档数据。
在具体实施时,如果与数据写入操作相关函数指针包括一个时,则用一个目标函数指针去替换,如果与数据写入操作相关函数指针包括多个时,则分别用目标函数指针去一一替换。本申请实施例涉在不改变应用进程源代码的情况,后续可以利用目标函数指针截取应用数据与数据写入操作相关的信息。
S304,钩子模块213通过目标函数指针,截取应用进程212的地址信息。
在应用进程212运行过程中,应用进程212会产生存档数据,按照应用进程212的默认方式,这些存档数据在应用进程212内存中的存档数据的地址信息会通过与数据写入操作相关的函数写入至本地磁盘中,而本申请实施例中该第一地址信息会被目标函数指针所截取,钩子模块213从而获得该第一地址信息。
其中,第一地址信息是指在第一时间段内产生的存档数据在应用进程212中内存的地址信息。该地址信息具体包括写入存档数据位置、数据类型、写入地址、写入存档数据的内存大小。由于第一时间段包括当前时刻,那么第一时间段在此时可以视为当前时间段。
作为一种实施例,不同的应用进程212所服务的用户是不同的,因此在加载应用进程212同时,该应用进程212会与对应的用户相关联,如此一来,各个模块才能确定后续的存档数据等所对应的用户。
S305,钩子模块213根据第一地址信息,获得第一时间段的第一存档数据。
钩子模块213在截获第一地址信息之后,可以根据第一地址信息,从应用进程212的内存中拷贝出第一存档数据。
具体例如钩子模块213可以调用虚拟运行系统211中的通信函数,从应用进程212中拷贝获得第一存档数据,通过虚拟运行系统211中的通信函数去拷贝数据,可以保证数据的安全性。通信函数例如send()函数。
S306,钩子模块213将第一存档数据发送给代理进程214。
钩子模块213同样可以直接调用send()函数,将第一存档数据发送给代理进程214。
具体send()函数拷贝和发送数据的代码示例如下:
send(进程间通讯句柄,写入位置,size of(int64));
send(进程间通讯句柄,缓冲区地址,缓冲区大小)。
其中,进程间通讯句柄用于实现数据传输的句柄,具体可以理解为内存中保存了的存档数据的资源标识符的数组下标,句柄一般使用一个整形值表示。以虚拟运行系统211为linux操作系统为例,句柄0表示标准输入,句柄1表述标准输出,句柄2表示标准错误。
S307,代理进程214将第一存档数据发送给云存储设备220。
代理进程214在接收存档数据时,可以缓存存档数据。进一步地,代理进程214可以将获得的第一存档数据与之前缓存的存档数据进行比对,将第一存档数据中与之前缓存的存档数据不同的部分作为最终的存档数据,将最终的存档数据发送给云存储设备220。
作为一种实施例,代理进程214可以是周期性地向云存储设备220发送存档数据,而不是在获得第一存档数据之后,立即向云存储设备220发送。
进一步地,由于第一存档数据可能较多,为此,在本申请实施例中,代理进程214可以对第一存档数据进行压缩,传送到云存储设备220进行保存,可以减少资源消耗,避免数据过大造成发送失败的情况,提高数据存储的可靠性。
S308,云存储设备220写入第一存档数据。
在云存储设备220获得第一存档数据的情况下,可以存储第一存档数据。由于存档数据是用户息息相关的,因此云存储设备220在写入存档数据时,可以将存档数据对应的用户标识相关联,便于后续调用该存档数据。
为了便于后续调用存档数据,云存储设备220在存储存档数据时,还可以将存档数据与对应的云应用关联,以便于从该云应用下查找用户所对应的存档数据。
在一种可能的实施例中,在应用进程212意外崩溃的情况下,云应用服务器210可以根据用户的创建请求,再次创建应用进程,此时该应用进程可以请求代理进程214从云存储设备220拉取该用户的存档数据,该应用进程依据该存档数据启动。
S309,钩子模块213截取第二地址信息。
随着应用进程212的不断运行,应用进程212在第二时间段也会产生相应的存档数据,为了便于区分,第二时间段产生的存档数据称为第二存档数据。第二时间段为第一时间段之后的时间段。为了便于更好地理解本申请实施例涉及的第一时间段、第二时间段和当前时间段,下面进行举例说明:
例如应用进程212是每隔5秒进行一次写入操作,从0-5S则可以视为第一时间段,那么第二时间段则为5S~10S。如果当前为第1秒,那么第一时间段视为当前时间段;如果当前为第6秒,那么第二时间段视为当前时间段。
同理,钩子模块213可以通过目标函数指针获得该第二存档数据对应的第二地址信息,第二地址信息包括的信息项与第一地址信息相同,只不过第一地址信息用于指示的是第一存档数据的地址,而第二地址信息用于指示的是第二存档数据的地址。截取第二地址信息的方式可以参照前文截取第一地址信息的方式,此处不再赘述。
S310,钩子模块213根据第二地址信息,获得第二时间段的第二存档数据。
同理,钩子模块213在获得第二地址信息之后,可以从应用进程212的内存中拷贝出第二存档数据。例如可以通过虚拟运行系统211中通信函数从应用进程212的内存中拷贝出第二存档数据。通信函数可以参照前文论述的内容,此处不再赘述。
S311,钩子模块213将第二存档数据发送给代理进程214。
钩子模块213可以调用通信函数将第二存档数据发送给代理进程214。
S312,代理进程214将第二存档数据发送给云存储设备220。
发送第二存档数据的内容可以参照前文论述发送第一存档数据的内容,此处不再赘述。
S313,云存储设备220写入第二存档数据。
写入第二存档数据的方式可以参照前文论述的内容,此处不再赘述。
S314,代理进程214将第一存档数据和第二存档数据发送给云存储设备220。
前文S307和S312是以分别发送第一存档数据和第二存档数据为例,在另一种情况下,代理进程214可以缓存存档数据,周期性向云存储设备220发送存档数据。周期性发送存档数据的周期小于游戏进程的正常运行时长。
S315,云存储设备220写入第一存档数据和第二存档数据。
S314~S315所示的实施例不仅能够提高发送存档数据的实时性,还能相对减少代理进程214的网络传输负荷,以及减少云存储设备220写数据的次数。
上述图3只是对存储存档数据的过程进行示例,实际上在应用进程212运行过程中,存储存档数据的过程会执行多次,每一次存储存档数据的过程可以参照S304~S307或S309~S312的过程,本申请实施例是以存储两次存档数据为例进行示例介绍,但实际不限制存储存档数据的次数。
在图3所示的实施例中,钩子模块213截取应用进程212实时的存档数据的地址,并根据该地址获得实时的存档数据,将该存档数据发送给代理进程214,代理进程214发送给云存储设备220,该方法不仅提高了云应用中写入数据的实时性,还无需修改云应用的应用代码,从而降低实时方案的成本。
下面结合图2A和图2C所示的应用场景,下面先对上述第二种可能的场景下涉及的数据存储方法进行介绍。请参照图4,为图2B中各个模块之间的交互示意图,该交互过程具体包括:
S401,应用进程212加载代码文件。
加载代码文件的内容可以参照前文论述的内容,此处不再赘述。
S402,代理进程214获取内存映射区域信息。
具体的,在云应用服务器210中,某个云应用存储存档数据的地址通常是固定的,例如云应用A所对应的地址为:c:\programe files\games\my game\stotage\backup1.dat,那么对应该云应用A下的应用进程写入存档数据的地址也就相对固定,因此代理进程214可以提前获得用于表示存档数据文件映射在应用进程212的内存中内存映射区域的内存映射区域信息,从而根据该内存映射区域信息,确定该应用进程212所对应的内存映射区域。
应当说明的是,S402可以是在配置代理进程214时,就已经配置有应用进程212的内存映射区域信息,这种情况下S402只执行一次。
S403,代理进程214校验内存映射区域中存档数据是否存在更新。
代理进程214可以根据内存映射区域,校验该内存映射区域中的存档数据是否存在更新,如果不存在更新,则继续执行S403,如果存在更新,则执行S404,将更新部分作为第一存档数据。
其中,涉及到代理进程214如何更新存档数据,下面进行示例说明:
代理进程214可以对内存映射区域中的存档数据进行校验,确定该内存映射区域中的存档数据是否发生变化。
具体的,代理进程214可以将内存映射区域划分为多个子区域,例如可以以按照等间隔划分为多个区域。当然,当内存映射区域所对应的存储空间较小的情况下,代理进程214也可以不对该内存映射区域进行划分。
代理进程214可以确定每个子区域的校验和。代理进程214可以按照预设算法计算每个子区域的校验和,该校验和实际是对每个子区域中的存档数据进行预设算法得到的。预设算法例如CRC64算法或MD5算法。
CRC64算法的基本思想是将子区域中的存档数据表示成特定进制的序列,以该序列除以另一个数,得到的余数即为CRC64的校验和,CRC64算法得到8字节的整形值。例如,存档数据具体内容为“数据”,利用CRC64算法可以得到该存档数据的校验和为:00101000。MD5算法的基本思想是:对数据进行填充,填充到设定长度,MD5是输入不定长度信息,输出固定长度散列的演算法。经过程序流程,生成四个32位数据,最后联合起来成为一个固定长度的散列,基本方式为求馀、取馀、调整长度、与链接变量进行循环运算。例如利用MD5算法对“数据”进行计算,得到的散列为:16aa273f2941c9b5。
其中,该校验和与该子区域中的存档数据是息息相关的,存档数据中任意一个字节的变化都会导致校验和发生变化。
代理进程214判断每个子区域与上一个时间段该区域的校验和,如果每个子区域与上一个时间段该区域的校验和发生变化,那么则确定该子区域中的存档数据发生变化,如果每个子区域与上一个时间段该区域的校验和没有发生变化,则确定该子区域中的存档数据没有发生变化。上一个时间段可以理解为当前时间段邻近的且在当前时间段之前的一个时间段。
代理进程214在检验完内存映射区域之后,可以获得发生变化的存档数据,将变更的存档数据作为在第一时间段内的第一存档数据。第一时间段可以参照前文论述的含义,此处不再赘述。
S403所示的实施例中,代理进程214会对存档数据进行校验,获得变更的存档数据作为第一存档数据,如此一来,代理进程214可以获得最新的那部分存档数据,以减少代理进程214后续发送的存档数据。
在另一种可能的实施例中,代理进程214可以直接从内存映射区域中获取存档数据,将内存映射区域中的所有存档数据作为第一存档数据。这种实施例中,代理进程214可能会获取部分重复的存档数据,但这种方式中代理进程214无需进行存档数据校验,相对可以提高代理进程214获取存档数据的效率。
S404,代理进程214获取第一存档数据。
如上论述的内容,代理进程214可以将更新部分作为第一存档数据,或者直接将内存映射区域中的所有存档数据作为第一存档数据。
S405,代理进程214将第一存档数据发送给云存储设备220。
代理进程214在获得第一存档数据之后,可以将第一存档数据发送给云存储设备220,在第一存档数据为更新的存档数据时,代理进程214相当于是以增量形式上报第一存档数据给云存储设备220,这样有利于减少网络中的数据传输量。增量上报是指上报与之前不同的数据,针对之前已经上报过的数据不再重复上报。具体来说,代理进程214可以将第一存档数据与之前已经上报给云存储设备220的存档数据进行比对,如果第一存档数据相较于之前已上报的存档数据完全不同,则将第一存档数据上报给云存储设备220,如果第一存档数据与之前已上报的存档数据存在部分相同,那么代理进程214可以将第一存档数据与之前已上报的存档数据不同的部分上报给云存储设备220。
S406,云存储设备220写入第一存档数据。
S407,代理进程214检验内存映射区域中存档数据是否存档更新。
在应用进程212不断运行过程中,代理进程214会在第二时间段继续检验内存映射区域中存档数据是否存档更新,其中涉及的校验方式可以参照前文S403的步骤,此处不再赘述。第二时间段可以参照前文论述的含义,此处不再赘述。
S408,代理进程214获取第二存档数据。
同理,代理进程214在校验内存映射区域之后,可以将变更部分的存档数据作为第二时间段的第二存档数据,或者直接获取第二时间段内内存映射区域的存档数据作为第二存档数据。
S409,代理进程214将第二存档数据发送给云存储设备220。
S410,云存储设备220写入第二存档数据。
在一种可能的实施例中,代理进程214在获得第一存档数据和第二存档数据之后,可以周期性将获得的存档数据上报给云存储设备220。
图4所示的实施例中,代理进程214可以对用于存储存档数据的内存映射区域进行校验,实时地获取更新的存档数据,该方式同样能够实时获得存档数据,上报存档数据。且,代理进程214只需提前存储内存映射区域信息即可,无需借助其他模块,可以降低该方案的实现成本,且无需修改云应用代码,可以适配于各种云应用。
在一种可能的实施方式中,在图3或图4所示的实施例中,云应用可以为云游戏应用,那么在虚拟运行系统211中创建的应用进程则为云游戏应用所对应的应用进程,云游戏应用所对应的应用进程所产生的存档数据则具体为用户在使用云游戏应用中所产生的游戏存档数据,当云应用为云游戏应用时,其中涉及到的各个模块对游戏存档数据处理的过程可以参照前文图3或图4的论述内容,此处不再赘述。
基于同一发明构思,本申请实施例提供一种数据存储装置,装置设置在用于进行数据转发服务的代理进程中,请参照图5,该装置包括:
本申请实施例提供一种数据存储装置,装置设置在云应用服务器中,包括:
获取单元501,用于在云应用的应用进程运行过程中,通过代理进程实时获取云应用的应用进程在当前时间段内产生的存档数据;存档数据为目标用户使用云应用所记录的数据;
转发单元502,用于将存档数据转发至云存储设备。
在一种可能的实施例中,获取单元501具体用于:
获取应用进程在当前时间段内进行数据写入操作过程中的地址信息;地址信息表示存档数据在应用进程的内存中的地址;
根据地址信息,获取应用进程在当前时间段内产生的存档数据。
在一种可能的实施例中,获取单元501具体用于:
调用通信函数根据地址信息,从应用进程的内存中,拷贝获得存档数据;
调用通信函数将存档数据发送给代理进程。
在一种可能的实施例中,该装置存储有内存映射区域信息,内存映射区域信息用于表示存档数据文件映射在产生单元的内存中内存映射区域;获取单元501具体用于:
根据内存映射区域信息,校验内存映射区域中存档数据是否存在更新;
若内存映射区域中存档数据存在更新,则将存档数据的更新部分确定为存档数据。
在一种可能的实施例中,获取单元501具体用于:
确定内存映射区域中每个子区域中数据在当前时间段内的检验和,将每个子区域的校验和与上一个时间段对应子区域的校验和进行比较;
若每个子区域在当前周期内的检验和与上一个时间段对应子区域的校验和不同,则确定对应子区域中存档数据存在更新;
若每个子区域在当前周期内的检验和与上一个时间段对应子区域的校验和相同,则确定对应子区域中存档数据不存在更新。
在一种可能的实施例中,云应用为云游戏应用。
应当说明的是,图6所示的装置可以实现前文论述的任一的数据存储方法,此处不再赘述。
基于同一发明构思,本申请实施例提供一种计算机设备,请参照图6,该计算机设备包括处理器601和存储器602。
处理器601可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本申请实施例中不限定上述存储器602和处理器601之间的具体连接介质。本申请实施例在图6中以存储器602和处理器601之间通过总线603连接,总线603在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器602可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器602也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器602可以是上述存储器的组合。
处理器601,用于调用存储器602中存储的计算机程序时执行如前文论述的数据存储方法,还可以用于实现前文图5所示装置的功能。
基于同一发明构思,本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如前文论述任一的数据存储方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
基于同一发明构思,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据存储方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种数据存储方法,其特征在于,应用于云应用服务器中,所述云应用服务器运行有虚拟运行系统,所述虚拟运行系统运行有云应用的应用进程,所述方法包括:
在所述云应用的应用进程运行过程中,通过代理进程实时获取所述云应用的应用进程在当前时间段内产生的存档数据;其中,所述代理进程为运行在所述虚拟运行系统外的进程,所述存档数据为目标用户使用云应用所记录的数据;
通过所述代理进程将所述存档数据转发至云存储设备。
2.如权利要求1所述的方法,其特征在于,所述云应用服务器还包括运行在所述虚拟运行系统中的钩子模块,所述通过代理进程实时获取所述云应用的应用进程在当前时间段内产生的存档数据,包括:
通过所述钩子模块获取所述应用进程在当前时间段内进行数据写入操作过程中的地址信息;所述地址信息表示存档数据在所述应用进程的内存中的地址;
通过所述钩子模块根据所述地址信息,获取所述应用进程在当前时间段内产生的存档数据,并将所述存档数据发送给所述代理进程;
通过所述代理进程获取所述存档数据。
3.如权利要求2所述的方法,其特征在于,所述虚拟运行系统配置有用于转发数据的通信函数,所述钩子模块根据所述地址信息,通过所述钩子模块根据所述地址信息,获取所述应用进程在当前时间段内产生的存档数据,并将所述存档数据发送给所述代理进程,包括:
通过所述钩子模块调用通信函数根据所述地址信息,从所述应用进程的内存中,拷贝获得存档数据;
通过所述钩子模块调用所述通信函数将所述存档数据发送给所述代理进程。
4.如权利要求2所述的方法,其特征在于,所述代理进程存储有内存映射区域信息,所述内存映射区域信息用于表示存档数据文件映射在所述应用进程的内存中内存映射区域;所述通过所述钩子模块获取所述应用进程在当前时间段内进行数据写入操作过程中的地址信息,包括:
通过所述代理进程根据所述内存映射区域信息,校验所述内存映射区域中存档数据是否存在更新;
通过所述代理进程若所述内存映射区域中存档数据存在更新,则将存档数据的更新部分确定为所述存档数据。
5.如权利要求4所述的方法,其特征在于,通过所述代理进程根据所述内存映射区域信息,校验所述内存映射区域中存档数据是否存在更新,包括:
所述代理进程确定所述内存映射区域中每个子区域中数据在当前时间段内的检验和,将每个子区域的校验和与上一个时间段对应子区域的校验和进行比较;
若每个子区域在当前周期内的检验和与上一个时间段对应子区域的校验和不同,则所述代理进程确定对应子区域中存档数据存在更新;
若每个子区域在当前周期内的检验和与上一个时间段对应子区域的校验和相同,则所述代理进程确定对应子区域中存档数据不存在更新。
6.如权利要求1~5任一项所述的方法,其特征在于,所述云应用为云游戏应用。
7.一种数据存储装置,其特征在于,所述装置设置在云应用服务器中,包括:
获取单元,用于在所述云应用的应用进程运行过程中,通过代理进程实时获取所述云应用的应用进程在当前时间段内产生的存档数据;所述存档数据为目标用户使用云应用所记录的数据;
转发单元,用于将所述存档数据转发至云存储设备。
8.如权利要求7所述的装置,其特征在于,所述获取单元具体用于:
获取所述应用进程在当前时间段内进行数据写入操作过程中的地址信息;所述地址信息表示存档数据在所述应用进程的内存中的地址;
根据所述地址信息,获取所述应用进程在当前时间段内产生的存档数据。
9.一种计算机设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1~6任一所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1~6中任一项所述的方法。
CN202011220582.6A 2020-11-05 2020-11-05 一种数据存储方法、装置及介质 Active CN112214177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011220582.6A CN112214177B (zh) 2020-11-05 2020-11-05 一种数据存储方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011220582.6A CN112214177B (zh) 2020-11-05 2020-11-05 一种数据存储方法、装置及介质

Publications (2)

Publication Number Publication Date
CN112214177A CN112214177A (zh) 2021-01-12
CN112214177B true CN112214177B (zh) 2021-10-15

Family

ID=74058250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011220582.6A Active CN112214177B (zh) 2020-11-05 2020-11-05 一种数据存储方法、装置及介质

Country Status (1)

Country Link
CN (1) CN112214177B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742328B (zh) * 2021-09-07 2023-07-28 北京百度网讯科技有限公司 应用数据清理方法、装置、设备、存储介质及程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102631A (zh) * 2013-04-01 2014-10-15 云联(北京)信息技术有限公司 一种基于云游戏的数据检测方法及系统
WO2016048266A1 (en) * 2014-09-22 2016-03-31 Hewlett Packard Enterprise Development Lp Tenant data mapping for multiple tenant cloud applications
CN108717454A (zh) * 2012-04-23 2018-10-30 谷歌有限责任公司 共享和同步电子保存的文件
CN110448894A (zh) * 2019-08-09 2019-11-15 广州点云科技有限公司 一种基于云游戏的联机方法和装置
CN111054067A (zh) * 2019-10-29 2020-04-24 咪咕互动娱乐有限公司 游戏存档文件存储方法、电子设备和存储介质
CN111265853A (zh) * 2020-01-20 2020-06-12 咪咕互动娱乐有限公司 游戏平台切换方法、装置、服务器和存储介质
US10708358B1 (en) * 2019-10-03 2020-07-07 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625495B (zh) * 2020-04-30 2023-12-29 未来穿戴技术有限公司 存档数据的调用方法、电子设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108717454A (zh) * 2012-04-23 2018-10-30 谷歌有限责任公司 共享和同步电子保存的文件
CN104102631A (zh) * 2013-04-01 2014-10-15 云联(北京)信息技术有限公司 一种基于云游戏的数据检测方法及系统
WO2016048266A1 (en) * 2014-09-22 2016-03-31 Hewlett Packard Enterprise Development Lp Tenant data mapping for multiple tenant cloud applications
CN110448894A (zh) * 2019-08-09 2019-11-15 广州点云科技有限公司 一种基于云游戏的联机方法和装置
US10708358B1 (en) * 2019-10-03 2020-07-07 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
CN111054067A (zh) * 2019-10-29 2020-04-24 咪咕互动娱乐有限公司 游戏存档文件存储方法、电子设备和存储介质
CN111265853A (zh) * 2020-01-20 2020-06-12 咪咕互动娱乐有限公司 游戏平台切换方法、装置、服务器和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Cloud Gaming with Foveated Video Encoding》;Gazi Karam Illahi等;《ACM Transactions on Multimedia Computing, Communications, and Applications》;20200217;第1-24页 *
5G云游戏平台组网关键技术探讨;林鹏;《互联网天地》;20200131;第34-39页 *

Also Published As

Publication number Publication date
CN112214177A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
US10846137B2 (en) Dynamic adjustment of application resources in a distributed computing system
US7849462B2 (en) Image server
JP7464732B2 (ja) 画像処理方法及びその装置、サーバ並びにコンピュータプログラム
CN111615716B (zh) 在客户端机器之间分配着色器来进行预缓存
EP3033678B1 (en) Methods, systems, and computer readable media for modeling a workload
US11544812B2 (en) Resiliency schemes for distributed storage systems
JP2016531349A (ja) 仮想化ストレージエリアネットワークのための仮想ディスクブループリント
CN112000287B (zh) 一种io请求处理装置、方法、设备及可读存储介质
US20190146672A1 (en) File operations in a distributed storage system
US11822445B2 (en) Methods and systems for rapid failure recovery for a distributed storage system
US11899621B2 (en) Access redirection in a distributive file system
US20220342756A1 (en) Storage system spanning multiple failure domains
CN112214177B (zh) 一种数据存储方法、装置及介质
CN110225094A (zh) 负载均衡应用虚拟ip切换方法、装置、计算机设备及存储介质
US7328303B1 (en) Method and system for remote execution of code on a distributed data storage system
US11604669B2 (en) Single use execution environment for on-demand code execution
CN116954810A (zh) 容器应用实例的创建方法、系统、存储介质及程序产品
US20240176874A1 (en) Preserving dll hooks
Vandenbergh Vdbench: User Guide
CN114416047A (zh) 基于探针方式的微服务实现方法、系统及存储介质
CN117581205A (zh) 用于虚拟化系统中虚拟化操作的虚拟化引擎
CN114003341A (zh) 分布式存储服务的升级方法、装置、电子设备及存储介质
CN116800739A (zh) 一种数据采集方法、装置、电子设备及存储介质
CN117742884A (zh) 一种模拟客户端构建方法及存储介质
CN112416861A (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