CN113010551B - 一种资源缓存方法及装置 - Google Patents
一种资源缓存方法及装置 Download PDFInfo
- Publication number
- CN113010551B CN113010551B CN202110230619.1A CN202110230619A CN113010551B CN 113010551 B CN113010551 B CN 113010551B CN 202110230619 A CN202110230619 A CN 202110230619A CN 113010551 B CN113010551 B CN 113010551B
- Authority
- CN
- China
- Prior art keywords
- storage space
- capacity
- target sub
- target
- resource
- 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
Links
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/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本说明书公开了一种资源缓存方法及装置,服务器根据接收到的目标资源获取请求,确定对应的目标子存储空间。当未命中缓存时,确定该目标子存储空间的期望容量。并当该目标子存储空间中已存储的容量不大于该期望容量时,将该目标资源缓存至该目标子存储空间中。否则,根据该目标子存储空间中已存储的各资源的热度排序,进行资源清除,直至已存储的容量不大于该期望容量为止。其中,在服务器本地设置不同的子存储空间用于存储不同类型的资源,且各子存储空间设置的容量之和大于该服务器本地的存储空间总容量。通过设置对应于不同类型资源的子存储空间,减少了由于资源类型不同对缓存清理机制的影响,使得缓存清理机制更加准确,提高了缓存命中率。
Description
技术领域
本申请涉及数据缓存技术领域,尤其涉及一种资源缓存方法及装置。
背景技术
一般的,数据处理系统的服务器在进行数据处理时,通常需要从该系统的数据库中获取待处理的业务数据,以对获取到的业务数据进行数据处理。
为了降低服务器从数据库拉取数据的频次,以及节省数据拉取的时间,服务器通常将待处理的业务数据缓存至本地,以当需要进行数据处理时,可直接从本地存储空间拉取业务数据进行处理。
进一步的,由于本地存储空间有限,无法将数据库中的所有业务数据都缓存至本地,且随着数据处理任务的不断执行,该服务器本地存储的业务数据不断增多,使得本地剩余空间不足。因此常采用最近最少使用算法(Least recently used,LRU)对本地存储空间中缓存的业务数据进行更新。具体的,当服务器本地存储的业务数据的大小超出本地存储空间的容量时,可通过LRU算法确定用户最近最少使用的业务数据,并进行删除,以释放本地存储空间。
但是,由于待处理的业务数据中包含不同类型的数据,且不同类型数据的访问频次以及访问时间存在差异,因此仅通过上述LRU算法确定用户最近最少使用的业务数据,并对其进行清除的数据清理机制不够准确,使得本地存储空间的利用率较低,进一步导致缓存命中率较低。
发明内容
本说明书实施例提供一种资源缓存方法及装置,用于部分解决现有技术中存在的问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种资源缓存方法,服务器本地设置不同的子存储空间用于存储不同类型的资源,各子存储空间设置的容量之和大于所述服务器本地的存储空间总容量;
所述方法包括:
所述服务器,接收目标资源获取请求,并根据所述目标资源获取请求中包含的目标资源的类型,确定所述目标资源对应的目标子存储空间;
当所述目标资源未命中所述目标子存储空间中已存储的资源时,根据所述目标资源的大小、所述服务器本地的剩余容量、预设的程序运行所需的运行容量以及所述目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,确定所述目标子存储空间中预留的程序运行所需的运行容量;
根据所述目标子存储空间设置的容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量;
判断所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量;
若是,从数据库中获取所述目标资源,并将所述目标资源缓存至所述目标子存储空间中,更新所述目标子存储空间中所述目标资源的热度;
若否,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
可选地,根据所述目标资源的大小、所述服务器本地的剩余容量、预设的程序运行所需的运行容量以及所述目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,确定所述目标子存储空间中预留的程序运行所需的运行容量,具体包括:
根据所述目标资源的大小、所述服务器本地的剩余容量以及预设的程序运行所需的运行容量,判断所述服务器本地是否足够程序运行以及缓存所述目标资源;
若是,则所述目标子存储空间中无需预留程序运行所需的运行容量;
若否,则根据所述目标子存储空间设置的容量在各子存储空间设置的总容量中的占比以及预设的程序运行所需的运行容量,确定所述目标子存储空间中预留的程序运行所需的运行容量。
可选地,根据所述目标子存储空间设置的容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量,具体包括:
根据所述目标资源的大小以及所述服务器本地的剩余容量,判断所述服务器本地是否足够缓存所述目标资源;
若是,根据所述目标子存储空间中已存储的资源的容量、所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量;
若否,根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量、所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量;
根据所述目标子存储空间的预计存储容量以及所述目标子存储空间中预留的程序运行所需的运行容量,确定所述目标子存储空间的期望容量。
可选地,根据所述目标子存储空间中已存储的资源的容量、所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量,具体包括:
根据所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间缓存所述目标资源的最大容量上限;
根据所述目标子存储空间中已存储的资源的容量以及确定出的最大容量上限,从中确定数值最小的容量,作为所述目标子存储空间的预计存储容量。
可选地,根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量、所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量,具体包括:
根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量以及所述目标资源的大小,确定缓存所述目标资源的第一容量上限;
根据所述目标子存储空间设置的容量以及所述目标资源的大小,确定缓存所述目标资源的第二容量上限;
根据所述第一容量上限以及所述第二容量上限,从中确定数值最小的容量上限,作为所述目标子存储空间的预计存储容量。
可选地,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止,具体包括:
根据所述目标子存储空间中已存储的各资源的热度排序,从所述目标子存储空间中删除所述热度最低的资源;
重新确定删除后的目标子存储空间中已存储的各资源的容量,并判断删除后的所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量;
若否,则继续根据所述目标子存储空间中已存储的各资源的热度排序,从所述目标子存储空间中删除所述热度最低的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
可选地,所述方法还包括:
当更新所述目标子存储空间中所述目标资源的热度时,根据所述目标子存储空间中已存储的各资源的版本信息以及所述目标资源的版本信息,从所述目标子存储空间中已存储的各资源中确定属于旧版本的资源;
针对确定出的属于旧版本的每个资源,判断在预设时长内是否使用该资源进行过处理;
若是,则不从所述目标子存储空间中删除该资源;
若否,则从所述目标子存储空间中删除该资源。
可选地,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,具体包括:
确定当前执行的处理任务;
根据所述目标子存储空间中已存储的资源,确定当前执行的处理任务不需要的资源,作为待删除资源;
根据所述待删除资源的热度排序,清除所述目标子存储空间存储的资源。
本说明书提供一种资源缓存装置,包括:
接收模块,接收目标资源获取请求,并根据所述目标资源获取请求中包含的目标资源的类型,确定所述目标资源对应的目标子存储空间;
第一确定模块,当所述目标资源未命中所述目标子存储空间中已存储的资源时,根据所述目标资源的大小、服务器本地的剩余容量、预设的程序运行所需的运行容量以及所述目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,确定所述目标子存储空间中预留的程序运行所需的运行容量;
第二确定模块,根据所述目标子存储空间设置的容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量;
判断模块,判断所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量,若是,从数据库中获取所述目标资源,并将所述目标资源缓存至所述目标子存储空间中,更新所述目标子存储空间中所述目标资源的热度,若否,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述资源缓存方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述资源缓存方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书在服务器本地设置不同的子存储空间用于存储不同类型的资源,各子存储空间设置的容量之和大于该服务器本地的存储空间总容量。在进行资源处理时,该服务器可接收目标资源获取请求,并根据该目标资源获取请求中包含的目标资源的类型,确定该目标资源对应的目标子存储空间。当该目标资源未命中该目标子存储空间中已存储的资源时,根据该目标资源的大小、该服务器本地的剩余容量、预设的程序运行所需的运行容量以及该目标子存储空间设置的容量在子存储空间设置的总容量中的占比,确定该目标子存储空间中预留的程序运行所需的运行容量。之后,根据该目标子存储空间设置的容量、该服务器本地的剩余容量、该目标资源的大小、该目标子存储空间中已存储的资源的容量以及该目标子存储空间中的运行容量,确定该目标子存储空间的期望容量。当该目标子存储空间中已存储的资源的容量不大于该目标子存储空间的期望容量时,从数据库中获取该目标资源,并将该目标资源缓存至该目标子存储空间中,更新该目标子存储空间中该目标资源的热度。否则,根据该目标子存储空间中已存储的各资源的热度排序,清除该目标子存储空间存储的资源,直至该目标子存储空间中已存储的资源的容量不大于该目标子存储空间的期望容量为止。通过设置对应于不同类型资源的子存储空间的方式,减少了由于资源类型不同对缓存清理机制的影响,使得缓存清理机制更加准确,提高了缓存命中率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种数据处理系统的架构示意图;
图2为本说明书实施例提供的一种本地存储空间的存储结构的示意图;
图3为本说明书实施例提供的一种资源缓存方法的流程示意图;
图4为本说明书实施例提供的一种仿真场景下的本地存储空间的存储结构的示意图;
图5为本说明书实施例提供的一种资源缓存装置的结构示意图;
图6为本说明书实施例提供的实现资源缓存方法的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在数据处理系统中进行数据处理时,为了减少从数据库拉取数据的频次以及时长,通常将待处理的业务数据缓存至该系统中服务器的本地存储空间中,以当需要通过该业务数据进行数据处理时,可直接从该服务器本地拉取该业务数据进行处理。
图1为本说明书提供的数据处理系统的架构示意图,如图1所示,该数据处理系统包含服务器、数据库以及该服务器本地的存储空间。
当该服务器获取进行数据处理所需的目标资源时,可先根据该服务器本地已存储的资源,确定是否命中缓存,即,该目标资源是否存在于该服务器本地已存储的资源中。若命中缓存,则该服务器可直接从该服务器本地拉取该目标资源。若未命中缓存,且该服务器本地的剩余容量足以缓存该目标资源时,该服务器可从数据库中获取该目标资源,并缓存至该服务器本地的存储空间中。若未命中缓存,但该服务器本地中的剩余容量不足以缓存该目标资源时,该服务器可先从该服务器本地的存储空间中释放足够的容量,再从数据库中获取该目标资源,并缓存至该服务器本地。
其中,该服务器可以是单一的服务器,也可以是多个服务器组成的系统,如,分布式服务器等。该数据库也可以是单一的数据库,或者是分布式数据库如,Hadoop分布式文件系统(Hadoop Distributed System,HDFS)等。本说明书对此不做限制,具体可根据需要设置。
进一步的,该服务器在从本地的存储空间中释放空间时,可采用LRU算法从该服务器本地缓存的各业务数据中,确定用户最近最少使用的业务数据,并进行删除,以释放空间,继续缓存下一待处理的业务数据。
但是,待处理的业务数据通常分为若干种不同类型的数据,而不同类型数据包含的数据量,以及在进行数据处理时使用频次以及时间存在差异。则在通过LRU算法确定用户最近最少使用的业务数据时,包含数据量较少的类型数据往往被删除的概率较大,导致该类型数据的缓存命中率较低,即,在该服务器本地命中该类型数据的概率较低。
例如,假设待处理的业务数据中包含A、B两种类型的数据,其中,A类型中包含数据a1,B类型中包含数据b1、b2、b3、b4以及b5,若该服务器本地的存储空间仅供存储4个数据,每次进行数据处理均需要使用数据a1以及B类型中的任意四个数据,则当该本地存储空间存储已满,需要进行缓存清理时,A类型数据被删除的概率较大,导致A类型数据的缓存命中率较低。
基于上述存在的缓存命中率较低的问题,本说明书提供一种资源缓存方法,可应用于该服务器从数据库获取资源,并缓存至本地存储空间后,根据缓存的资源进行处理的过程中。并且,由于待处理的资源中可划分为若干种不同类型的资源,不同类型的资源所包含的资源量、访问频次以及访问时长存在差异。因此在本说明书中,可在该服务器本地的存储空间中设置不同的子存储空间,分别用于存储不同类型的资源,以当本地存储空间容量不足需要进行缓存清理时,可针对每种类型的资源,根据该类型中各资源的访问频次以及访问时间,清理对应该类型资源的子存储空间,减少由于资源类型所包含的资源量不同对缓存清理机制产生的影响。
但若根据该服务器本地的存储空间总容量,划分若干固定容量大小的子存储空间,则可能产生本地存储空间的利用率较低的问题,如,其中部分子存储空间容量已满,但其余子存储空间较空。因此为了提高各子存储空间的利用率,在本说明书中将各子存储空间容量之和设置为大于该服务器本地的存储空间总容量的形式。如图2所示,假设该服务器本地的存储空间中设置有两个子存储空间,其中,子存储空间C用于存储C类型的资源,子存储空间D用于存储D类型的资源。图2中实线正方形表示该服务器本地的存储空间,该本地存储空间的容量为100,图中上方的虚线矩形表示子存储空间C,该子存储空间C的容量设置为60,图中下方的虚线矩形表示子存储空间D,该子存储空间D的容量设置为70,则各子存储空间设置的总容量大于该服务器本地的存储空间总容量,即,60+70>100,以便充分利用各子存储空间。其中,各子存储空间设置的总容量为各子存储空间设置的容量之和。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图3为本说明书实施例提供的一种资源缓存方法的流程示意图,具体可包括以下步骤:
S100:所述服务器,接收目标资源获取请求,并根据所述目标资源获取请求中包含的目标资源的类型,确定所述目标资源对应的目标子存储空间。
基于上述阐述,本说明书在该服务器本地设置了不同的子存储空间,用于存储不同类型的资源,且各子存储空间容量之和大于该服务器本地的存储空间总容量。因此在进行资源处理过程中,可根据待获取的目标资源所属类型,确定是否命中该类型对应的目标子存储空间中已缓存的资源。其中,该服务器本地的存储空间可以存储在磁盘等存储介质中。
具体的,该服务器可接收目标资源获取请求,并根据该目标资源请求中包含的目标资源的类型,从该服务器本地包含的各子存储空间中,确定该目标资源对应的目标子存储空间。
S102:当所述目标资源未命中所述目标子存储空间中已存储的资源时,根据所述目标资源的大小、所述服务器本地的剩余容量、预设的程序运行所需的运行容量以及所述目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,确定所述目标子存储空间中预留的程序运行所需的运行容量。
在本说明书一种或多种实施例中,当确定出待获取的目标资源对应的目标子存储空间后,便可根据该目标子存储空间中已缓存的资源,确定该目标资源是否命中缓存。
具体的,该服务器可先确定该服务器本地的目标子存储空间中已存储的资源,之后,根据该目标资源以及确定出的目标子存储空间中已存储的各资源,判断是否命中缓存,即,该目标资源是否已存储在该目标子存储空间中。
当确定命中缓存时,即,该目标资源存储在该目标子存储空间中,则该服务器可直接从该服务器本地的目标子存储空间中获取该目标资源。
当确定未命中缓存时,即,该目标资源未存储在该目标子存储空间中,则该服务器可该目标子存储空间设置的容量、该目标子存储空间中已存储的资源的容量以及目标资源的大小,确定该目标子存储空间是否充足。当该目标子存储空间充足时,从该数据库中获取目标资源,并缓存至该服务器本地的目标子存储空间中。当该目标子存储空间不充足时,从该目标子存储空间中清理出足够的空间,再从该数据库中获取目标资源,缓存至该服务器本地的目标子存储空间中。
进一步的,在资源处理过程中,为保证处理程序的正常运行,还需在该服务器本地的存储空间中为程序运行预留出部分容量。因此在本说明书中可先确定该目标子存储空间中为程序运行预留的部分容量,后续再根据该目标子存储空间设置的容量、该目标子存储空间中已存储的资源的容量、该目标资源的大小以及该目标子存储空间中为程序运行预留的部分容量,确定该目标子存储空间是否充足。
更进一步的,在确定该目标子存储空间中为程序运行预留的部分容量时,该服务器可先根据该服务器本地各子存储空间中已存储的资源的容量,以及该服务器本地的存储空间总容量,确定该服务器本地的剩余容量。之后,根据该服务器本地的剩余容量、该目标资源的大小以及预设的程序运行所需的运行容量,判断该服务器本地的剩余容量是否足够程序运行以及缓存该目标资源。当确定该服务器本地的剩余容量足够程序运行以及缓存该目标资源时,无需在该目标子存储空间中预留程序运行所需的运行容量。当确定该服务器本地的剩余容量不足以程序运行以及缓存该目标资源时,可根据该目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,以及预设的程序运行所需的运行容量,确定在该目标子存储空间中预留的程序运行所需的运行容量。
其中,在计算该目标子存储空间中预留的程序运行所需的运行容量时,可采用如下公式进行计算:
在公式(1)中,Mi表示第i个子存储空间设置的容量,Mt表示目标子存储空间设置的容量,表示各子存储空间设置的容量之和,即,各子存储空间设置的总容量,γt表示目标子存储空间设置的容量在各子存储空间设置的总容量中的占比。可根据目标子存储空间设置的容量Mt,以及各子存储空间设置的总容量确定该目标子存储空间设置的容量在各子存储空间设置的总容量中的占比γt。
在公式(2)中,Sd表示该服务器本地的剩余容量,St表示目标资源的容量大小,Sr表示预设的程序运行所需的运行容量,Sp表示在目标子存储空间中预留的程序运行所需的运行容量。当Sd-St<Sr时,表示该服务器本地的剩余容量足够程序运行以及缓存该目标资源,可确定无需在该目标子存储空间中预留的程序运行所需的运行容量,因此Sp为0,当Sd-St≥Sr时,表示该服务器本地的剩余容量不足以程序运行以及缓存该目标资源,可根据该目标子存储空间设置的容量在各子存储空间设置的总容量中的占比γt,以及预设的程序运行所需的运行容量Sr,确定在该目标子存储空间中预留的程序运行所需的运行容量Sp。
S104:根据所述目标子存储空间设置的容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量。
在本说明书一种或多种实施例中,当确定出在该目标子存储空间中预留的程序运行所需的运行容量后,便可根据该目标子存储空间设置的容量、该目标子存储空间中已存储的资源的容量、该目标资源的大小以及该目标子存储空间中为程序运行预留的运行容量,确定该目标子存储空间是否充足。
具体的,该服务器可先根据该目标资源的大小以及该服务器本地的剩余容量,判断该服务器本地的剩余容量是否足够缓存该目标资源。
当确定该服务器本地的剩余容量足够缓存该目标资源时,该服务器可根据该目标子存储空间中已存储的资源的容量、该目标子存储空间设置的容量以及该目标资源的大小,确定该目标子存储空间的预计存储容量。其中,该预计存储容量表示该目标子存储空间除缓存该目标资源外,用于程序运行以及缓存其它资源所需的容量大小。
进一步的,当该服务器本地的剩余容量足够缓存该目标资源时,该服务器可根据该目标子存储空间设置的容量以及该目标资源的大小,确定在该目标子存储空间中缓存该目标资源的最大容量上限。并根据该目标子存储空间中已存储的资源的容量以及确定出的最大容量上限,从中确定数值最小的容量,作为该目标子存储空间的预计存储容量。
当确定该服务器本地的剩余容量不足以缓存该目标资源时,该服务器可根据该目标子存储空间中已存储的资源的容量、该服务器本地的剩余容量、该目标子存储空间设置的容量以及该目标资源的大小,确定该目标子存储空间的预计存储容量。
进一步的,当该本地存储空间不足够缓存该目标资源时,该服务器可根据该目标子存储空间中已存储的资源的容量、该服务器本地的剩余容量以及该目标资源的大小,确定缓存该目标资源的第一容量上限,并根据该目标子存储空间设置的容量以及该目标资源的大小,确定缓存该目标资源的第二容量上限。之后,根据该第一容量上限以及该第二容量上限,从中确定数值最小的容量上限,作为该目标子存储空间的预计存储容量。
最后,该服务器可根据该目标子存储空间的预计存储容量以及该目标子存储空间中预留的程序运行所需的运行容量,确定该目标子存储空间的期望容量。其中,该期望容量表征在该目标子存储空间中缓存该目标资源,以及预留出程序运行所需的运行容量外,该目标子存储空间用于缓存其它资源的容量大小。以当该目标子存储空间中已存储的资源的容量大于该期望容量时,表示当前目标子存储空间不足,则删除该目标子存储空间中部分已存储的资源,释放出部分容量空间。当该目标子存储空间中已存储的资源的容量小于该期望容量时,表示当前目标子存储空间充足,无需删除该目标子存储空间中已存储的资源。
其中,计算该目标子存储空间中期望容量的公式如下:
Ce=Cr-Sp (4)
在公式(3)中,St表示目标资源的容量大小,Sd表示该服务器本地的剩余容量,Ct表示该目标子存储空间中已存储的资源的容量,Mt表示该目标子存储空间设置的容量,Cr表示该目标子存储空间的预计存储容量。Mt-St表示在该目标子存储空间中存储该目标资源时,该目标子存储空间的最大容量上限。
当该目标资源的大小St小于该服务器本地的剩余容量Sd时,表示该目标子存储空间可能需要删除部分资源,以释放容量空间,也可能无需删除资源。具体是否需要删除可通过下述方法确定:
该服务器可先通过Mt-St确定该目标子存储空间缓存该目标资源时的最大容量上限,若该目标子存储空间中已存储的资源的容量Ct小于该最大容量上限Mt-St,表示该目标子存储空间无需删除已存储的资源,则该目标子存储空间的预计存储容量Cr,即为该目标子存储空间中当前已存储的资源的容量Ct。若目标子存储空间中已存储的资源的容量Ct大于该最大容量上限Mt-St,表示该目标子存储空间需要删除部分已存储的资源,则该目标子存储空间的预计存储容量Cr,即为该最大容量上限Mt-St,也就是说,从目标子存储空间中当前已存储的资源中删除部分资源,使得删除后的资源的容量达到该最大容量上限Mt-St。
当该目标资源的大小St大于该本地存储空间中的剩余容量Sd时,表示该目标子存储空间一定需要删除部分资源,释放容量空间。具体释放多少容量空间可通过下述方法确定:
该服务器可通过Mt-St确定该目标子存储空间缓存该目标资源时的最大容量上限,记做第二容量上限。并根据该目标子存储空间中已存储的资源的容量Ct、该服务器本地的剩余容量Sd以及该目标资源的大小St,确定直接在该服务器本地缓存该目标资源的第一容量上限Ct+Sd-St。之后,根据该第一容量上限Ct+Sd-St以及该第二容量上限Mt-St,从中确定数值最小的容量上限,作为该目标子存储空间的预计存储容量。
在公式(4)中,Ce表示该目标子存储空间缓存该目标资源的期望容量,Cr表示确定出的预计存储容量,Sp表示在该目标子存储空间中预留的程序运行所需的运行容量。该服务器可根据确定出的预计存储容量Cr,即,该目标子存储空间用于缓存其它资源以及运行程序所需的容量,以及该目标子存储空间中预留的程序运行所需的运行容量Sp,确定该目标子存储空间期望缓存目标资源时,该目标子存储空间中已存储的资源的期望容量。
S106:判断所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量,若是,则执行步骤S108,若否,则执行步骤S110。
S108:从数据库中获取所述目标资源,并将所述目标资源缓存至所述目标子存储空间中,更新所述目标子存储空间中所述目标资源的热度。
S110:根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
在本说明书一种或多种实施例中,当确定出该目标子存储空间的期望容量后,便可根据该目标子存储空间当前已存储的各资源的容量,确定是否需要删除该目标子存储空间中的资源,以释放容量空间。
具体的,该服务器可根据该目标子存储空间中当前已存储的各资源的容量,以及确定出的该目标子存储空间的期望容量,判断该目标子存储空间中已存储的资源的容量是否不大于该目标子存储空间的期望容量,也就是说,是否需要对该目标子存储空间中已存储的资源进行清理。
当确定该目标子存储空间中已存储的资源的容量不大于该目标子存储空间的期望容量时,表明当前的该目标子存储空间充足,该服务器可直接从对应的数据库中获取该目标资源,并将该目标资源缓存至该目标子存储空间中,以及更新该目标子存储空间中该目标资源的热度。其中,该目标资源的热度基于该目标资源的访问频次以及访问时间综合确定。
当确定该目标子存储空间中已存储的资源的容量小于该目标子存储空间的期望容量时,表明当前的目标子存储空间不充足,则该服务器可根据该目标子存储空间中已存储的各资源的热度排序,从该目标子存储空间中删除热度最低的资源,并重新确定删除后的目标子存储空间中已存储的各资源的容量,并判断删除后的该目标子存储空间中已存储的资源的容量是否不大于该目标子存储空间的期望容量。若删除后的该目标子存储空间中已存储的资源的容量小于该目标子存储空间的期望容量,则从对应的数据库中获取该目标资源,并将该目标资源缓存至该目标子存储空间中,以及更新该目标子存储空间中该目标资源的热度。
若删除后的该目标子存储空间中已存储的资源的容量仍不大于该目标子存储空间的期望容量,则继续根据该目标子存储空间中已存储的各资源的热度排序,从该目标子存储空间中删除该热度最低的资源,直至该目标子存储空间中已存储的资源的容量不大于该目标子存储空间的期望容量为止。
其中,在确定服务器本地缓存的各资源的热度时,可通过LRU-K(K表示访问频次)算法,结合资源访问频次以及资源访问时间,确定缓存的各资源的热度。由于LRU-K算法已经是较为成熟的现有技术,本说明书对此不做赘述。
基于图3所示的资源缓存方法,在服务器本地设置不同的子存储空间用于存储不同类型的资源,各子存储空间设置的容量之和大于该服务器本地的存储空间总容量。在进行资源处理时,该服务器可接收目标资源获取请求,并根据该目标资源获取请求中包含的目标资源的类型,确定该目标资源对应的目标子存储空间。当该目标资源未命中该目标子存储空间中已存储的资源时,根据该目标资源的大小、该服务器本地的剩余容量、预设的程序运行所需的运行容量以及该目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,确定该目标子存储空间中预留的程序运行所需的运行容量。之后,根据该目标子存储空间设置的容量、该服务器本地的剩余容量、该目标资源的大小、该目标子存储空间中已存储的资源的容量以及该目标子存储空间中的运行容量,确定该目标子存储空间的期望容量。当该目标子存储空间中已存储的资源的容量不大于该目标子存储空间的期望容量时,从数据库中获取该目标资源,并将该目标资源缓存至该目标子存储空间中,更新该目标子存储空间中该目标资源的热度。否则,根据该目标子存储空间中已存储的各资源的热度排序,清除该目标子存储空间存储的资源,直至该目标子存储空间中已存储的资源的容量不大于该目标子存储空间的期望容量为止。通过设置对应于不同类型资源的子存储空间的方式,减少了由于资源类型不同对缓存清理机制的影响,使得缓存清理机制更加准确,提高了缓存命中率。
并且,在本说明书中通过预设的程序运行所需的运行容量以及该目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,确定该目标子存储空间中预留的程序运行所需的运行容量,也进一步提高了缓存清理机制的准确性。
在本说明书一种或多种实施例中,由于数据库中存储的资源也会周期性的进行版本更新,而更新后的旧版本资源在进行资源处理的过程中被访问的频次较低,因此缓存在本地存储空间中的旧版本资源会随着资源热度的不断降低而被清除。但是,从版本更替至旧版本资源从本地存储空间中完全清除,仍然需要较长一段时间,而在这段时间内,旧版本资源仍缓存在该服务器本地的存储空间中,使得该本地的存储空间的利用率较低,导致缓存命中剩余子存储空间中资源的概率降低。
为了解决上述版本更替对缓存命中率的影响,在本说明书中当更新该目标子存储空间中该目标资源的热度时,该服务器可根据该目标子存储空间中已存储的各资源的版本信息以及该目标资源的版本信息,从目标子存储空间中已存储的各资源中确定属于旧版本的资源。之后,由于版本更替后,旧版本资源在进行资源处理时仍可能被使用,为了避免删除仍需使用的旧版本资源,该服务器可针对确定出的属于旧版本的每个资源,判断在预设时长内是否使用该资源进行过资源处理。若在预设时长内使用该资源进行过资源处理,则表明该旧版本的资源后续可能仍会使用,因此无需从该目标子存储空间中删除该资源。若在预设时长内未使用该资源进行过资源处理,则表明该旧版本的资源后续使用率极低,可从该目标子存储空间中删除该资源。其中,预设时长可根据需要设置,例如,设置为一天,本说明书对此不做限制。
在本说明书一种或多种实施例中,在清除目标子存储空间中已存储的资源,以释放容量空间用于缓存该目标资源时,为保证当前处理任务的正常执行,需要保证当前执行的处理任务所需的资源不被删除,因此在本说明书中进行资源清理时,可先确定当前执行的处理任务,并从该目标子存储空间中已存储的资源中,确定当前执行的处理任务不需要的资源,作为待删除资源。之后,根据该待删除资源的热度排序,清除该目标子存储空间存储的资源。
需要说明的是,若确定出的待删除资源为空时,即,该目标子存储空间中已存储的资源,都是执行当前处理任务所必需的资源,没有可供删除的非必需资源。此时,该目标子存储空间无法缓存该目标资源,可确定缓存出错,提示用户进行修改。
本说明书提供的资源缓存方法,可应用于各种资源处理过程中进行资源缓存的步骤中。例如,可应用于对数据进行仿真计算的过程中。
以对无人驾驶算法进行仿真验证为例,假设数据库中存储有无人驾驶所需的场景数据以及地图数据,用于进行无人驾驶算法的仿真验证。在服务器本地的存储空间中设置有场景子存储空间以及地图子存储空间,其中,场景子存储空间用于缓存场景数据,地图子存储空间用于缓存地图数据。
在进行仿真验证的过程中,当需要获取无人驾驶所需的场景数据,以进行仿真运算时,该服务器可先从本地的场景子存储空间中确定是否命中缓存,即,待获取的场景数据是否已存储在本地的场景子存储空间中。当命中缓存时,可直接从该场景子存储空间中拉取所需的场景数据。当未命中缓存时,若该场景子存储空间的容量充足,可从对应的数据库中获取所需的场景数据,并缓存至该场景子存储空间中。若该场景子存储空间的容量不充足,则需要对该场景子存储空间已存储的数据进行清理,以释放容量空间后,再从对应的数据库中获取所需的场景数据,并缓存至该场景子存储空间中。
假设该服务器本地的存储空间的总容量为100,预设的场景子存储空间的容量为60,用于缓存无人驾驶的场景数据,且该场景子存储空间中已存储的资源的容量为30。预设的地图子存储空间的容量为70,用于缓存无人驾驶的地图数据,且该地图子存储空间中已存储的资源的容量为40。待获取的目标资源为地图数据a,大小为40,预设的程序运行所需的运行容量为10。如图4所示,图4中实线正方形表示该服务器本地的存储空间,上方虚线矩形表示场景子存储空间,其中阴影部分表示该场景子存储空间中已存储的资源,下方虚线矩形表示地图子存储空间,其中阴影部分表示该地图子存储空间中已存储的资源。
在进行资源处理时,若该地图数据a未命中缓存,即,该地图子存储空间中已存储的地图数据中不包含该地图数据a。此时,由于该服务器本地的存储空间中的剩余容量为100-30-40=30<10+40,即,无法同时满足程序运行所需的容量10以及缓存地图数据a所需的容量40,可通过上述公式(1),确定该地图子存储空间设置的容量在各子存储空间设置的总容量中的占比为 再通过公式(2),确定该地图子存储空间中预留的程序运行所需的运行容量为
之后,由于该地图数据a的大小大于该服务器本地的剩余容量,即,40>30,因此可通过公式(3)确定该地图子存储空间的预计存储容量为:min(40+30,70)-40=30,又由于该地图子存储空间中预留的程序运行所需的运行容量为5.38,因此可通过公式(4),确定该地图子存储空间的期望容量为30-5.38=24.62。
最后,由于该地图子存储空间中已存储的资源的容量为40,而该地图子存储空间缓存该地图数据a的期望容量为24.62,因此需要对该地图子存储空间中已存储的资源进行清理,根据该地图子存储空间中已存储的资源的热度排序,释放出40-24.62=15.38的容量,用于缓存该目标资源。
此外,在本说明书中当应用该资源缓存方法用于进行无人驾驶算法的仿真验证场景中,则通过验证后的无人驾驶算法可用于无人车中,用于实现无人驾驶功能。并且该无人车可用于快递、外卖等无人配送的场景中,当无人车进行配送时,可通过该资源缓存方法,预先对配送过程中所涉及的无人驾驶算法进行仿真验证,如,路径规划、实时定位等。并基于仿真验证成功的算法执行配送任务。
基于图3所示的资源缓存方法,本说明书实施例还对应提供一种资源缓存装置的结构示意图,如图5所示。
图5为本说明书实施例提供的一种资源缓存装置的结构示意图,该资源缓存装置可应用于服务器中,以使该服务器从数据库获取资源并缓存至本地的存储空间中,以及根据缓存的资源进行处理。
所述装置包括:
接收模块200,接收目标资源获取请求,并根据所述目标资源获取请求中包含的目标资源的类型,确定所述目标资源对应的目标子存储空间;
第一确定模块202,当所述目标资源未命中所述目标子存储空间中已存储的资源时,根据所述目标资源的大小、所述服务器本地的剩余容量、预设的程序运行所需的运行容量以及所述目标子存储空间设置的容量在各子存储空间设置的总容量中的占比,确定所述目标子存储空间中预留的程序运行所需的运行容量;
第二确定模块204,根据所述目标子存储空间设置的容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量;
判断模块206,判断所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量,若是,从数据库中获取所述目标资源,并将所述目标资源缓存至所述目标子存储空间中,更新所述目标子存储空间中所述目标资源的热度,若否,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
可选地,所述第一确定模块202具体用于,根据所述目标资源的大小、所述服务器本地的剩余容量以及预设的程序运行所需的运行容量,判断所述服务器本地是否足够程序运行以及缓存所述目标资源,若是,则所述目标子存储空间中无需预留程序运行所需的运行容量,若否,则根据所述目标子存储空间设置的容量在各子存储空间设置的总容量中的占比以及预设的程序运行所需的运行容量,确定所述目标子存储空间中预留的程序运行所需的运行容量。
可选地,所述第二确定模块204具体用于,根据所述目标资源的大小以及所述服务器本地的剩余容量,判断所述服务器本地是否足够缓存所述目标资源;
若是,根据所述目标子存储空间中已存储的资源的容量、所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量,若否,根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量、所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量,根据所述目标子存储空间的预计存储容量以及所述目标子存储空间中预留的程序运行所需的运行容量,确定所述目标子存储空间的期望容量。
可选地,所述第二确定模块204具体用于,根据所述目标子存储空间设置的容量以及所述目标资源的大小,确定所述目标子存储空间缓存所述目标资源的最大容量上限,根据所述目标子存储空间中已存储的资源的容量以及确定出的最大容量上限,从中确定数值最小的容量,作为所述目标子存储空间的预计存储容量。
可选地,所述第二确定模块204具体用于,根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量以及所述目标资源的大小,确定缓存所述目标资源的第一容量上限,根据所述目标子存储空间设置的容量以及所述目标资源的大小,确定缓存所述目标资源的第二容量上限,根据所述第一容量上限以及所述第二容量上限,从中确定数值最小的容量上限,作为所述目标子存储空间的预计存储容量。
可选地,所述判断模块206具体用于,根据所述目标子存储空间中已存储的各资源的热度排序,从所述目标子存储空间中删除所述热度最低的资源,重新确定删除后的目标子存储空间中已存储的各资源的容量,并判断删除后的所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量,若否,则继续根据所述目标子存储空间中已存储的各资源的热度排序,从所述目标子存储空间中删除所述热度最低的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
可选地,所述资源缓存装置还包含版本更新模块208,所述版本更新模型具体用于,当更新所述目标子存储空间中所述目标资源的热度时,根据所述目标子存储空间中已存储的各资源的版本信息以及所述目标资源的版本信息,从所述目标子存储空间中已存储的各资源中确定属于旧版本的资源,针对确定出的属于旧版本的每个资源,判断在预设时长内是否使用该资源进行过处理,若是,则不从所述目标子存储空间中删除该资源,若否,则从所述目标子存储空间中删除该资源。
可选地,所述判断模块206具体用于,确定当前执行的处理任务,根据所述目标子存储空间中已存储的资源,确定当前执行的处理任务不需要的资源,作为待删除资源,根据所述待删除资源的热度排序,清除所述目标子存储空间存储的资源。
本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图3提供的资源缓存方法。
基于图3所示的资源缓存方法,本说明书实施例还提出了图6所示的电子设备的示意结构图。如图6,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图3所示的资源缓存方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于本地存储空间存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁本地存储空间存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于本地存储空间存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种资源缓存方法,其特征在于,服务器本地设置不同的子存储空间用于存储不同类型的资源,各子存储空间设置的虚拟容量之和大于所述服务器本地的存储空间总容量;所述方法包括:
所述服务器,接收目标资源获取请求,并根据所述目标资源获取请求中包含的目标资源的类型,确定所述目标资源对应的目标子存储空间;
当所述目标资源未命中所述目标子存储空间中已存储的资源时,根据所述目标资源的大小、所述服务器本地的剩余容量以及预设的程序运行所需的运行容量,判断所述服务器本地是否足够程序运行以及缓存所述目标资源;若是,则所述目标子存储空间中无需预留程序运行所需的运行容量;若否,则根据所述目标子存储空间的虚拟容量在各子存储空间的虚拟总容量中的占比以及预设的程序运行所需的运行容量,确定所述目标子存储空间中预留的程序运行所需的运行容量;
根据所述目标子存储空间的虚拟容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量;其中,所述期望容量表征在所述目标子存储空间中缓存所述目标资源以及预留出程序运行所需的运行容量外,所述目标子存储空间用于缓存其它资源的容量大小;
判断所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量;
若是,从数据库中获取所述目标资源,并将所述目标资源缓存至所述目标子存储空间中,更新所述目标子存储空间中所述目标资源的热度;
若否,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
2.如权利要求1所述的方法,其特征在于,根据所述目标子存储空间的虚拟容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量,具体包括:
根据所述目标资源的大小以及所述服务器本地的剩余容量,判断所述服务器本地是否足够缓存所述目标资源;
若是,根据所述目标子存储空间中已存储的资源的容量、所述目标子存储空间的虚拟容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量;
若否,根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量、所述目标子存储空间的虚拟容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量;
根据所述目标子存储空间的预计存储容量以及所述目标子存储空间中预留的程序运行所需的运行容量,确定所述目标子存储空间的期望容量。
3.如权利要求2所述的方法,其特征在于,根据所述目标子存储空间中已存储的资源的容量、所述目标子存储空间的虚拟容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量,具体包括:
根据所述目标子存储空间的虚拟容量以及所述目标资源的大小,确定所述目标子存储空间缓存所述目标资源的最大容量上限;
根据所述目标子存储空间中已存储的资源的容量以及确定出的最大容量上限,从中确定数值最小的容量,作为所述目标子存储空间的预计存储容量。
4.如权利要求2所述的方法,其特征在于,根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量、所述目标子存储空间的虚拟容量以及所述目标资源的大小,确定所述目标子存储空间的预计存储容量,具体包括:
根据所述目标子存储空间中已存储的资源的容量、所述服务器本地的剩余容量以及所述目标资源的大小,确定缓存所述目标资源的第一容量上限;
根据所述目标子存储空间的虚拟容量以及所述目标资源的大小,确定缓存所述目标资源的第二容量上限;
根据所述第一容量上限以及所述第二容量上限,从中确定数值最小的容量上限,作为所述目标子存储空间的预计存储容量。
5.如权利要求1所述的方法,其特征在于,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止,具体包括:
根据所述目标子存储空间中已存储的各资源的热度排序,从所述目标子存储空间中删除热度最低的资源;
重新确定删除后的目标子存储空间中已存储的各资源的容量,并判断删除后的所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量;
若否,则继续根据所述目标子存储空间中已存储的各资源的热度排序,从所述目标子存储空间中删除所述热度最低的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
当更新所述目标子存储空间中所述目标资源的热度时,根据所述目标子存储空间中已存储的各资源的版本信息以及所述目标资源的版本信息,从所述目标子存储空间中已存储的各资源中确定属于旧版本的资源;
针对确定出的属于旧版本的每个资源,判断在预设时长内是否使用该资源进行过处理;
若是,则不从所述目标子存储空间中删除该资源;
若否,则从所述目标子存储空间中删除该资源。
7.如权利要求1所述的方法,其特征在于,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,具体包括:
确定当前执行的处理任务;
根据所述目标子存储空间中已存储的资源,确定当前执行的处理任务不需要的资源,作为待删除资源;
根据所述待删除资源的热度排序,清除所述目标子存储空间存储的资源。
8.一种资源缓存装置,其特征在于,包括:
接收模块,接收目标资源获取请求,并根据所述目标资源获取请求中包含的目标资源的类型,确定所述目标资源对应的目标子存储空间;
第一确定模块,当所述目标资源未命中所述目标子存储空间中已存储的资源时,根据所述目标资源的大小、服务器本地的剩余容量以及预设的程序运行所需的运行容量,判断所述服务器本地是否足够程序运行以及缓存所述目标资源;若是,则所述目标子存储空间中无需预留程序运行所需的运行容量;若否,则根据所述目标子存储空间的虚拟容量在各子存储空间虚拟总容量中的占比以及预设的程序运行所需的运行容量,确定所述目标子存储空间中预留的程序运行所需的运行容量;
第二确定模块,根据所述目标子存储空间的虚拟容量、所述服务器本地的剩余容量、所述目标资源的大小、所述目标子存储空间中已存储的资源的容量以及所述目标子存储空间中的运行容量,确定所述目标子存储空间的期望容量;其中,所述期望容量表征在所述目标子存储空间中缓存所述目标资源以及预留出程序运行所需的运行容量外,所述目标子存储空间用于缓存其它资源的容量大小;
判断模块,判断所述目标子存储空间中已存储的资源的容量是否不大于所述目标子存储空间的期望容量,若是,从数据库中获取所述目标资源,并将所述目标资源缓存至所述目标子存储空间中,更新所述目标子存储空间中所述目标资源的热度,若否,根据所述目标子存储空间中已存储的各资源的热度排序,清除所述目标子存储空间存储的资源,直至所述目标子存储空间中已存储的资源的容量不大于所述目标子存储空间的期望容量为止。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-7任一所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110230619.1A CN113010551B (zh) | 2021-03-02 | 2021-03-02 | 一种资源缓存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110230619.1A CN113010551B (zh) | 2021-03-02 | 2021-03-02 | 一种资源缓存方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010551A CN113010551A (zh) | 2021-06-22 |
CN113010551B true CN113010551B (zh) | 2022-05-10 |
Family
ID=76402426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110230619.1A Active CN113010551B (zh) | 2021-03-02 | 2021-03-02 | 一种资源缓存方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010551B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968945A (zh) * | 2022-06-30 | 2022-08-30 | 重庆紫光华山智安科技有限公司 | 数据留存管理方法、装置、存储介质及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798494B2 (en) * | 2015-01-30 | 2017-10-24 | International Business Machines Corporation | Preallocating storage space for an application operation in a space efficient volume |
CN107085548A (zh) * | 2016-02-16 | 2017-08-22 | 阿里巴巴集团控股有限公司 | 一种监控应用程序内存的方法、装置及电子设备 |
CN107590144A (zh) * | 2016-07-07 | 2018-01-16 | 中兴通讯股份有限公司 | 一种文件存储方法和终端 |
CN109710436B (zh) * | 2018-08-17 | 2021-03-30 | 深圳壹账通智能科技有限公司 | 空间清理方法、装置、设备和计算机可读存储介质 |
CN110389842B (zh) * | 2019-07-26 | 2022-09-20 | 中国工商银行股份有限公司 | 一种动态资源分配方法、装置、存储介质及设备 |
-
2021
- 2021-03-02 CN CN202110230619.1A patent/CN113010551B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113010551A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116822657B (zh) | 一种模型训练加速的方法、装置、存储介质及电子设备 | |
CN117312394B (zh) | 一种数据访问方法、装置、存储介质及电子设备 | |
JP2008544422A (ja) | メモリページ管理 | |
US20210311669A1 (en) | Method, device, and computer program product for managing storage system | |
CN116432778B (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN113010551B (zh) | 一种资源缓存方法及装置 | |
CN111273965B (zh) | 一种容器应用启动方法、系统、装置及电子设备 | |
CN111190655B (zh) | 一种应用缓存数据的处理方法、装置、设备及系统 | |
CN115374117A (zh) | 一种数据处理方法、装置、可读存储介质及电子设备 | |
CN116048800A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
US10719441B1 (en) | Using predictions of outcomes of cache memory access requests for controlling whether a request generator sends memory access requests to a memory in parallel with cache memory access requests | |
CN117130792B (zh) | 缓存对象的处理方法、装置、设备及存储介质 | |
CN113032119A (zh) | 一种任务调度方法、装置、存储介质及电子设备 | |
CN110908429B (zh) | 一种定时器操作方法及装置 | |
CN116894130A (zh) | 用于多页签的页面刷新处理方法、装置及处理器 | |
CN115080292A (zh) | 一种异常检测的方法及装置 | |
CN114120273A (zh) | 一种模型训练的方法及装置 | |
CN109614388B (zh) | 一种预算扣减方法和装置 | |
CN110362769B (zh) | 一种数据处理方法及装置 | |
CN113343141A (zh) | 一种网页获取方法及装置 | |
CN110298004B (zh) | 一种目标对象的缓存管理方法、系统、装置及电子设备 | |
CN108733789B (zh) | 数据库操作指令的执行计划演进方法、装置以及设备 | |
CN112306677A (zh) | 一种资源调度方法及装置 | |
CN117555697B (zh) | 一种面向分布式训练的缓存加载系统、方法、装置及设备 | |
CN117909371B (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 |