CN112612537A - 配置数据缓存方法、装置、设备及存储介质 - Google Patents
配置数据缓存方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112612537A CN112612537A CN202011492149.8A CN202011492149A CN112612537A CN 112612537 A CN112612537 A CN 112612537A CN 202011492149 A CN202011492149 A CN 202011492149A CN 112612537 A CN112612537 A CN 112612537A
- Authority
- CN
- China
- Prior art keywords
- data
- configuration data
- preset
- local cache
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 241000508269 Psidium Species 0.000 claims abstract description 39
- 238000004140 cleaning Methods 0.000 claims abstract description 39
- 238000005516 engineering process Methods 0.000 claims abstract description 16
- 238000011084 recovery Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 35
- 230000000903 blocking effect Effects 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 4
- 238000005201 scrubbing Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008676 import Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5016—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 the resource being the memory
-
- 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
- G06F9/5022—Mechanisms to release resources
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,公开一种配置数据缓存方法、装置、设备及存储介质,该方法包括:通过guava组件从预设数据库表中读取配置数据;判断本地缓存的已使用容量是否超过预设容量阈值;若超过则根据预设数据回收策略对本地缓存进行数据清理,通过guava组件采用多线程技术将配置数据写入本地缓存。由于是将配置数据写入到缓存中以便数据需求方在读取配置数据时,直接从缓存中读取配置数据,从而避免了在获取配置数据时需要先读取配置文件然后从中读取配置数据的繁琐操作,此外由于是从缓存而不是数据库表中读取配置数据,当配置数据发生变更时,也不会影响已存入到缓存中的配置数据,能够避免配置数据变更时需要重启服务器的缺陷。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种配置数据缓存方法、装置、设备及存储介质。
背景技术
软件开发过程中,经常需要用到一些配置数据。项目中一般都是把这些配置数据统一放在配置文件中,便于统一管理和方便修改,需要使用的时候通过相关的工具类读取配置文件获取参数数据。
上述方式在使用配置数据时,需要读取整个配置文件,然后从配置文件中获取对应的参数属性值,无法高效的获取数据。同时,上述方式存放的数据在发生数据变更时,只能重启整个项目来重新加载获取最新的数据。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种配置数据缓存方法、装置、设备及存储介质,旨在解决现有技术对缓存数据的处理方式导致的数据读取效率不高,在配置数据发生变更时,只能通过重启服务器的方式来获取配置数据的技术问题。
为实现上述目的,本发明提供了一种配置数据缓存方法,所述方法包括以下步骤:
在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;
获取本地缓存的已使用容量,并判断所述已使用容量是否超过预设容量阈值;
在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理;
在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存。
优选地,所述在检测到服务器启动时,通过guava组件从所述服务器存放的预设数据库表中读取配置数据的步骤之前,所述方法还包括:
在获取到配置数据时,对所述配置数据进行分类,获得分类后的关键数据和参数数据;
获取所述配置数据的数据源路径,并根据所述数据源路径确定所述配置数据所属的业务项目;
获取所述业务项目对应的项目标识,并根据所述项目标识查找对应的预设数据库表;
将所述关键数据和所述参数数据写入所述预设数据库表。
优选地,所述在获取到配置数据时,对所述配置数据进行分类,获得分类后的关键数据和参数数据的步骤,包括:
在获取到配置数据时,按字符对所述配置数据进行遍历,并根据遍历结果确定所述配置数据中包含的标签字段;
根据所述标签字段所属的数据类型对所述配置数据进行分类,获得分类后的关键数据和参数数据。
优选地,所述在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理的步骤,包括:
在所述已使用容量超过所述预设容量阈值时,按数据大小对本地缓存中的缓存数据进行降序排序;
根据排序结果依次获取所述缓存数据对应的访问时间日期;
计算所述访问时间日期和所述当前时间日期之间的间隔时长;
根据所述间隔时长与预设时长阈值的比较结果确定所述本地缓存中的待清理缓存数据;
基于所述待清理缓存数据对所述本地缓存进行数据清理。
优选地,所述在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤,包括:
在数据清理完成时,获取所述配置数据的数据大小,并检测所述数据大小是否超过预设阈值;
在所述数据大小超过预设阈值时,获取目标进程的当前线程池中的可用线程数量;
判断所述可用线程数量是否满足预设数据写入需求,若不满足,则根据所述可用线程数量和所述预设数据写入需求确定待创建新线程的数量;
根据所述待创建新线程的数量确定新线程创建时所需要的额外计算资源;
检测所述目标进程对应的可用计算资源是否大于或等于所述额外计算资源;
若所述可用计算资源大于或等于所述额外计算资源,则在所述当前线程池中创建新线程,以获得新的线程池;
通过所述guava组件调用所述新的线程池中的线程将所述配置数据写入所述本地缓存。
优选地,所述检测所述目标进程对应的可用计算资源是否大于或等于所述额外计算资源的步骤之后,所述方法还包括:
若所述可用计算资源小于所述额外计算资源,则获取所述当前线程池中处于阻塞状态的线程对应的最后活跃时间;
计算所述最后活跃时间与当前时间之间的时间间隔,并根据所述时间间隔对所述阻塞状态的线程进行优先级排序;
根据排序结果确定待释放线程,并依次释放所述待释放线程,直至所述目标进程对应的可用计算资源大于或等于所述额外计算资源。
优选地,所述在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤之后,所述方法包括:
通过信息摘要算法计算所述配置数据对应的当前哈希值;
获取所述配置数据被写入所述本地缓存之前对应的基准哈希值;
判断所述当前哈希值和所述基准哈希值是否一致,若不一致,则将所述配置数据从所述本地缓存中移除,并返回通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤。
此外,为实现上述目的,本发明还提出一种配置数据缓存装置,所述配置数据缓存装置包括:
数据读取模块,用于在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;
容量检测模块,用于获取本地缓存的已使用容量,并判断所述已使用容量是否超过预设容量阈值;
缓存清理模块,用于在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理;
数据写入模块,用于在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存。
此外,为实现上述目的,本发明还提出一种配置数据缓存设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的配置数据缓存程序,所述配置数据缓存程序配置为实现如上文所述的配置数据缓存方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有配置数据缓存程序,所述配置数据缓存程序被处理器执行时实现如上文所述的配置数据缓存方法的步骤。
本发明在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;获取本地缓存的已使用容量,并判断已使用容量是否超过预设容量阈值;若超过则根据预设数据回收策略对本地缓存进行数据清理;在数据清理完成时,通过guava组件采用多线程技术将配置数据写入本地缓存。由于本发明是将配置数据写入到缓存中以便数据需求方在需要读取配置数据时,直接从缓存中读取该配置数据,从而避免了在获取配置数据时,需要先读取配置文件,然后从配置文件中读取配置数据的繁琐操作,此外,由于本发明是从缓存而不是数据库表中读取配置数据,因此当配置数据发生变更时,也不会影响已存入到缓存中的配置数据,能够避免配置数据变更时需要重启服务器的缺陷。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的配置数据缓存设备的结构示意图;
图2为本发明配置数据缓存方法第一实施例的流程示意图;
图3为本发明配置数据缓存方法第二实施例的流程示意图;
图4为本发明配置数据缓存方法第三实施例的流程示意图;
图5为本发明配置数据缓存装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的配置数据缓存设备结构示意图。
如图1所示,该配置数据缓存设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对配置数据缓存设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及配置数据缓存程序。
在图1所示的配置数据缓存设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明配置数据缓存设备中的处理器1001、存储器1005可以设置在配置数据缓存设备中,所述配置数据缓存设备通过处理器1001调用存储器1005中存储的配置数据缓存程序,并执行本发明实施例提供的配置数据缓存方法。
本发明实施例提供了一种配置数据缓存方法,参照图2,图2为本发明配置数据缓存方法第一实施例的流程示意图。
本实施例中,所述配置数据缓存方法包括以下步骤:
步骤S10:在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;
需要说明的是,本实施方法的执行主体可以是具备数据处理、网络通信以及程序运行功能的计算服务设备(例如智能手机、平板电脑以及个人电脑等),或者是该计算服务设备上集成的用于对配置数据进行处理的应用程序或数据平台。下面以数据平台为例,对本实施例和下述各实施例进行说明。
所述服务器可以是为计算机上装载的应用程序APP或业务平台提供后台服务的服务器。所述预设数据库表可以是预先创建的用来存放配置数据的数据表,开发人员可预先将配置数据导入到该数据库表中,以便后续使用,该预设数据库表可存放在上述服务器的内存中。
应理解的是,Guava是一种基于开源的Java库,这个库能够方便编码,并减少编码错误。本实施例中的guava组件可以是一个能够提供集合,缓存,支持原语句,并发性,常见注解,字符串处理,I/O和验证的软件工具。
在具体实现中,数据平台在检测到应用程序或业务平台对应的服务器启动时,将通过guava组件从预设数据库表中读取配置数据。
步骤S20:获取本地缓存的已使用容量,并判断所述已使用容量是否超过预设容量阈值;
实际操作中,为了保证配置数据能够完整存入本地缓存,数据平台需要对本地缓存进行容量检测,当本地缓存的可用容量过低时,就需要对本地缓存进行数据清除,以使配置数据能够顺利的存放。
应理解的是,所述已使用容量,即本地缓存中已经被使用或占用的存储空间。所述预设容量阈值,即预先设定的判断是否需要对本地缓存进行数据清理的标准值或参考值,当已使用容量高于该预设容量阈值,则表明需要对本地缓存进行数据清理,反之,则表明不需要进行数据清理。
此外,本实施例中所述预设容量阈值的大小可根据本地缓存的存储空间大小来设定,例如本地缓存的存储空间大小为10G,则可将预设容量阈值的大小设置为6G,即已使用容量的占比须小于等于存储空间大小×60%,当然此处仅做举例,具体的预设容量阈值的设置方式本实施例不加以限制。
步骤S30:在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理;
需要说明的是,所述数据回收策略,可以是预先设定的数据清理策略。本实施例中,所述数据清理策略可以配置为在检测到本地缓存中的缓存数据在给定时间内(例如12小时、48小时或一周)未被读/写/访问时,对该缓存数据进行清理,降低已使用容量。
进一步地,为了保证被清理的数据对其它数据需求方的数据使用影响较小。本实施例中,数据平台还可以在所述已使用容量超过所述预设容量阈值时,按数据大小对本地缓存中的缓存数据进行降序排序(即数据越大排序越靠前);然后根据排序结果依次获取所述缓存数据对应的访问时间日期;再计算所述访问时间日期和所述当前时间日期之间的间隔时长;然后根据所述间隔时长与预设时长阈值的比较结果确定所述本地缓存中的待清理缓存数据;最后基于所述待清理缓存数据对所述本地缓存进行数据清理。其中,所述访问时间日期可以是用户最后一次访问操作(例如删/改/查)对应的操作时间日期。
本实施例通过上述方式,优先考虑对占用存储空间较大且较长时间未被访问的缓存数据进行清理,从而保证了数据清除的准确性和可靠性。
步骤S40:在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存。
在具体实现中,数据平台在对本地缓存中的待清理的缓存数据清理完成时,即可通过guava组件将配置数据写入本地缓存。
进一步地,考虑到不同配置数据的体量不同,本实施例可以根据配置数据的数据大小来判断是否需要采用多线程机制进行数据写入。例如,可设定一个阈值来判断配置数据的大小是否大于或等于该阈值,若是,则获取当前线程池中的可用线程,然后根据通过这些可用线程采用多线程技术将配置数据写入到缓存中。
应理解的是,多线程(multithreading)技术,是指从软件或者硬件上实现多个线程并发执行的技术。本实施例通过多线程技术对所述配置数据进行写入,能够有效提升数据写入的速度。
需要说明的是,上述可用线程可以是根据线程的当前状态确定的、当前能够被调用的线程。通常情况下,java线程具有五种基本状态:新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)和死亡状态(Dead),本实施例中可以将就绪状态(Runnable)的线程作为可用线程来执行数据写入操作。
进一步地,数据平台在通过上述方式将配置数据写入到本地缓存后,即可基于本地缓存中的配置数据为需要使用配置数据的数据需求方提供数据服务。
具体的,数据平台在接收到配置数据读取指令时,即可直接对指令进行解析,获得用来确定待读取的配置数据的数据标识(能够区分不同项目配置数据的唯一信息,例如存储路径),然后在本地缓存中查找所述待读取数据标识对应的目标配置数据返回给指令的发送方。
本实施例在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;获取本地缓存的已使用容量,并判断已使用容量是否超过预设容量阈值;若超过则根据预设数据回收策略对本地缓存进行数据清理;在数据清理完成时,通过guava组件采用多线程技术将配置数据写入本地缓存。由于本实施例是将配置数据写入到缓存中以便数据需求方在需要读取配置数据时,直接从缓存中读取该配置数据,从而避免了在获取配置数据时,需要先读取配置文件,然后从配置文件中读取配置数据的繁琐操作,此外,由于本实施例是从缓存而不是数据库表中读取配置数据,因此当配置数据发生变更时,也不会影响缓存中的配置数据,能够避免配置数据变更时需要重启服务器的缺陷。
参考图3,图3为本发明配置数据缓存方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10之前,所述方法还包括:
步骤S01:在获取到配置数据时,对所述配置数据进行分类,获得分类后的关键数据和参数数据;
需要说明的是,为了保证配置数据的读取和写入效率,本实施例中数据平台在获取到配置数据时,还可以对配置数据进行分类,然后将分类后的配置数据按对应的数据类型在预设数据库表中存放。
实际操作中,可根据配置数据的数据属性或使用情况,将配置数据划分为关键数据和参数数据。其中,关键数据可以是类似于数据库的IP地址、用户密码、账户ID等类型的数据;参数数据可以是类似于定时任务的执行频率,某个功能的开关等类型的数据。
为了保证数据分类的准确性,本实施例中,数据平台可以在获取到配置数据时,按字符对所述配置数据进行遍历,然后根据遍历结果确定所述配置数据中包含的标签字段;然后根据所述标签字段所属的数据类型对所述配置数据进行分类,获得分类后的关键数据和参数数据。
其中,所述标签字段可以是含有类似于地址、密钥、任务等标签的字符或数据。所述数据类型包括参数数据和关键数据,当数据平台检测到配置数据中的某一段数据包含IP地址,即可识别出这一段数据包含地址标签字段,此时可将这段数据归类为关键数据。
步骤S02:获取所述配置数据的数据源路径,并根据所述数据源路径确定所述配置数据所属的业务项目;
可理解的是,所述数据源路径可以是配置数据的来源路径或来源信息,该数据源路径可以用来追溯开发人员在导入该配置数据时,是从哪一个业务平台或系统导入,例如,开发人员在业务系统A中导入了项目B的配置数据C,那么在配置数据C的数据源路径就需要携带业务系统A和项目B所对应的标识信息。
本步骤中,数据平台在获取到配置数据的数据源路径时,即可根据该数据源路径确定配置数据所属的业务项目。
步骤S03:获取所述业务项目对应的项目标识,并根据所述项目标识查找对应的预设数据库表;
需要说明的是,为了保证配置数据存放的规范性和独立性,同时考虑到不同业务项目对配置数据的需求不同,本实施例可预先为每一个业务项目配置一个或多个数据库表,用来存放该业务项目下不同子项目或业务对应的配置数据。另外,为了便于后续对数据库表的准确查找,本实施例还可建立不同业务项目的项目标识和该业务项目对应的预设数据库表之间的映射关系,以使的数据平台在获取业务项目对应的项目标识时,能够根据该项目标识在映射关系中查找对应的预设数据库表。
步骤S04:将所述关键数据和所述参数数据写入所述预设数据库表。
在具体实现中,数据平台将配置数据划分为关键数据和参数数据后,即可将它们写入到预先查找到的预设数据库表中,以便后续读取然后写入到本地缓存。
进一步地,本实施例中数据平台在读取数据库表中的数据时,可按照预先设置的数据刷新机制,定期的对数据库表进行数据刷新;然后根据刷新结果判断是否存在配置数据更新,若存在,则从数据库表读取更新后的配置数据,以保证每次读取的配置数据是最新的,这样当有配置数据发生修改时,可以不需要人为干预就能够获取到最新的配置数据。
本实施例在获取到配置数据时,对配置数据进行分类,获得分类后的关键数据和参数数据;然后获取配置数据的数据源路径,并根据数据源路径确定配置数据所属的业务项目;再获取业务项目对应的项目标识,并根据项目标识查找对应的预设数据库表;最后将关键数据和参数数据写入预设数据库表,由于本实施例是对配置数据进行分类后,再存放到配置数据所属业务项目对应的数据库表中,从而能够保证后续配置数据读取的准确性和读取效率,同时,配置数据的分类存储也便于统一管理和修改,减轻了开发人员的工作量。
参考图4,图4为本发明配置数据缓存方法第三实施例的流程示意图。
基于上述第一实施例和第二实施例,在本实施例中,所述步骤S40包括:
步骤S401:在数据清理完成时,获取所述配置数据的数据大小,并检测所述数据大小是否超过预设阈值;
需要说明的是,所述数据大小即配置数据所占用的存储空间的大小。所述预设阈值可以是判断配置数据是否需要采用多个线程进行同步写入的标准值。在数据大小超过该预设阈值时,表明需要采用多线程对配置数据进行写入,若数据大小未超过该预设阈值时,表明不需要采用多线程对配置数据进行写入。
步骤S402:在所述数据大小超过预设阈值时,获取目标进程的当前线程池中的可用线程数量;
在具体实现中,数据平台在检测到数据大小超过上述预设阈值时,将获取目标进程的当前当前线程池中的可用线程数量。其中,所述目标进程,即用于对配置数据执行写入操作的应用,本实施例中所述目标进程可以是上述数据平台。
应理解的是,线程(thread)是操作系统能够进行运算调度的最小单位,一个进程根据其被分配的计算资源可以拥有一个或多个线程,这些线程都隶属于一个线程池。所述可用线程的数量,即当前时刻,线程池中处于就绪状态的线程的数目。
步骤S403:判断所述可用线程数量是否满足预设数据写入需求,若不满足,则根据所述可用线程数量和所述预设数据写入需求确定待创建新线程的数量;
应理解的是,本实施例中所述预设数据写入需求是指上述可用线程的数量能够支持对配置数据进行多线程写入,或者是可用线程的数量需要大于或等于某一数值,例如需要大于5、10或15等,该数值的确定可以通过公式“数值=配置数据的数据大小/基准大小”,其中,基准大小可根据实际情况进行设定,本实施例不加以限制。
在具体实现中,若数据平台检测到可用线程数量不满足预设数据写入需求,则根据所述可用线程数量和所述预设数据写入需求确定待创建新线程的数量,例如将上述公式计算出的数值和可用线程数量相减,获得一个差值,然后根据该差值来确定待创建新线程的数量。
步骤S404:根据所述待创建新线程的数量确定新线程创建时所需要的额外计算资源;
应理解的是,线程的创建需要使用一定的计算资源,例如计算机的CPU资源、内存资源等。通常情况下,进程的计算资源在进程创建时都是分配好的,一个进程在计算资源既定的情况下,其能够创建的线程数量也是有限的,因此在一些情况下,为一个进程创建新线程就需要判断该进程当前时刻的可用计算资源是否能够支撑新线程的创建。所以此时就需要根据待创建新线程的数量确定新线程创建时所需要的额外计算资源。
步骤S405:检测所述目标进程对应的可用计算资源是否大于或等于所述额外计算资源;
需要说明的是,本步骤中检测可用计算资源是否大于或等于额外计算资源,可理解为检测可用计算资源是否能够支撑新线程的创建,即可用计算资源是否满足该额外计算资源的需求,只有当额外计算资源中的每一项资源需求,该可用计算资源都能满足时,才判定可用计算资源大于或等于额外计算资源;反之则判定可用计算资源小于额外计算资源。
进一步地,为了保证对配置数据的多线程写入,本实施例中,数据平台在检测到所述可用计算资源小于所述额外计算资源时,将获取所述当前线程池中处于阻塞状态的线程对应的最后活跃时间;计算所述最后活跃时间与当前时间之间的时间间隔,并根据所述时间间隔对所述阻塞状态的线程进行优先级排序;然后根据排序结果确定待释放线程,并依次释放所述待释放线程,直至所述目标进程对应的可用计算资源大于或等于所述额外计算资源。其中,上述最后活跃时间,即线程最后一次被调用的时间。
步骤S406:若所述可用计算资源大于或等于所述额外计算资源,则在所述当前线程池中创建新线程,以获得新的线程池;
在具体实现中,数据平台在检测到可用计算资源大于或等于所述额外计算资源,表明此时可以直接在目标进程对应的当前线程池中创建新线程,得到拥有更多可用线程的线程池,即所述新的线程池。
步骤S407:通过所述guava组件调用所述新的线程池中的线程将所述配置数据写入所述本地缓存。
在具体实现中,数据平台在完成新线程的创建后,即可通过guava组件调用新的线程池中的线程将配置数据写入本地缓存。
进一步地,在进行配置数据的写入时,为了保证写入前的配置数据和写入后的配置数据的一致性和完整性,本实施例数据平台在将配置数据写入缓存前,还将通过信息摘要算法(例如哈希算法或MD5算法)来计算配置数据的哈希值,同时计算写入缓存中的配置数据的哈希值,将二者进行比对,若二者相同,则表明数据写入不存在问题,反之则存在问题,具体的,数据平台可以通过信息摘要算法计算所述配置数据对应的当前哈希值;获取所述配置数据被写入所述本地缓存之前对应的基准哈希值;判断所述当前哈希值和所述基准哈希值是否一致,若不一致,则将所述配置数据从所述本地缓存中移除,并返回通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤,直至计算出的当前哈希值和基准哈希值一致。
当然,本方案也可以采用循环冗余校验(Cyclic Redundancy Check,CRC)算法来实现配置数据的写入一致性校验。
进一步地,考虑到实际情况中,目标进程的当前线程池中的可用线程数量不满足预设数据写入需求,且又无法通过释放线程池中的其他线程进行新线程的创建时,数据平台还可以请求计算机另外分配一些计算资源给目标进行进行新线程创建。
具体的,计算机在接收到数据平台发送的资源分配请求时,可先获取各处于后台运行状态进程,然后获取这些进程的资源占用信息(例如可通过公式P=ax+by+cz计算一个资源占用值,a、b、c为权重值,x,y,z为计算机资源参数如cpu占用率、内存占用率、磁盘使用率等),然后根据这些资源占用信息来对这些进程进行排序,并根据排序结果依次选择进程释放资源;再基于释放的资源重新为目标进程分配计算资源,以供其完成新线程的创建。
本实施例通过在数据清理完成时,获取所述配置数据的数据大小,并检测所述数据大小是否超过预设阈值;在所述数据大小超过预设阈值时,获取目标进程的当前线程池中的可用线程数量;判断所述可用线程数量是否满足预设数据写入需求,若不满足,则根据所述可用线程数量和所述预设数据写入需求确定待创建新线程的数量;根据所述待创建新线程的数量确定新线程创建时所需要的额外计算资源;检测所述目标进程对应的可用计算资源是否大于或等于所述额外计算资源;若所述可用计算资源大于或等于所述额外计算资源,则在所述当前线程池中创建新线程,以获得新的线程池;通过所述guava组件调用所述新的线程池中的线程将所述配置数据写入所述本地缓存。上述方式能够灵活的根据配置数据的数据大小和当前线程池中可用线程的数量判断是否需要创建新的线程来对配置数据进行写入,保证了数据写入的效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有配置数据缓存程序,所述配置数据缓存程序被处理器执行时实现如上文所述的配置数据缓存方法的步骤。
参照图5,图5为本发明配置数据缓存装置第一实施例的结构框图。
如图5所示,本发明实施例提出的配置数据缓存装置包括:
数据读取模块501,用于在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;
容量检测模块502,用于获取本地缓存的已使用容量,并判断所述已使用容量是否超过预设容量阈值;
缓存清理模块503,用于在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理;
数据写入模块504,用于在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存。
本实施例在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;获取本地缓存的已使用容量,并判断已使用容量是否超过预设容量阈值;若超过则根据预设数据回收策略对本地缓存进行数据清理;在数据清理完成时,通过guava组件采用多线程技术将配置数据写入本地缓存。由于本实施例是将配置数据写入到缓存中以便数据需求方在需要读取配置数据时,直接从缓存中读取该配置数据,从而避免了在获取配置数据时,需要先读取配置文件,然后从配置文件中读取配置数据的繁琐操作,此外,由于本实施例是从缓存而不是数据库表中读取配置数据,因此当配置数据发生变更时,也不会影响缓存中的配置数据,能够避免配置数据变更时需要重启服务器的缺陷。
基于本发明上述配置数据缓存装置第一实施例,提出本发明配置数据缓存装置的第二实施例。
在本实施例中,所述配置数据缓存装置还包括:数据导入模块,用于在获取到配置数据时,对所述配置数据进行分类,获得分类后的关键数据和参数数据;获取所述配置数据的数据源路径,并根据所述数据源路径确定所述配置数据所属的业务项目;获取所述业务项目对应的项目标识,并根据所述项目标识查找对应的预设数据库表;将所述关键数据和所述参数数据写入所述预设数据库表。
进一步地,所述数据导入模块,还用于在获取到配置数据时,按字符对所述配置数据进行遍历,并根据遍历结果确定所述配置数据中包含的标签字段;根据所述标签字段所属的数据类型对所述配置数据进行分类,获得分类后的关键数据和参数数据。
进一步地,所述缓存清理模块503,还用于在所述已使用容量超过所述预设容量阈值时,按数据大小对本地缓存中的缓存数据进行降序排序;根据排序结果依次获取所述缓存数据对应的访问时间日期;计算所述访问时间日期和所述当前时间日期之间的间隔时长;根据所述间隔时长与预设时长阈值的比较结果确定所述本地缓存中的待清理缓存数据;基于所述待清理缓存数据对所述本地缓存进行数据清理。
进一步地,所述数据写入模块504,还用于在所述可用计算资源小于所述额外计算资源时,获取所述当前线程池中处于阻塞状态的线程对应的最后活跃时间;计算所述最后活跃时间与当前时间之间的时间间隔,并根据所述时间间隔对所述阻塞状态的线程进行优先级排序;根据排序结果确定待释放线程,并依次释放所述待释放线程,直至所述目标进程对应的可用计算资源大于或等于所述额外计算资源。
进一步地,所述数据写入模块504,还用于通过信息摘要算法计算所述配置数据对应的当前哈希值;获取所述配置数据被写入所述本地缓存之前对应的基准哈希值;判断所述当前哈希值和所述基准哈希值是否一致,若不一致,则将所述配置数据从所述本地缓存中移除,并返回通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤。
本发明配置数据缓存装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种配置数据缓存方法,其特征在于,所述配置数据缓存方法包括:
在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;
获取本地缓存的已使用容量,并判断所述已使用容量是否超过预设容量阈值;
在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理;
在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存。
2.如权利要求1所述的配置数据缓存方法,其特征在于,所述在检测到服务器启动时,通过guava组件从所述服务器存放的预设数据库表中读取配置数据的步骤之前,所述方法还包括:
在获取到配置数据时,对所述配置数据进行分类,获得分类后的关键数据和参数数据;
获取所述配置数据的数据源路径,并根据所述数据源路径确定所述配置数据所属的业务项目;
获取所述业务项目对应的项目标识,并根据所述项目标识查找对应的预设数据库表;
将所述关键数据和所述参数数据写入所述预设数据库表。
3.如权利要求2所述的配置数据缓存方法,其特征在于,所述在获取到配置数据时,对所述配置数据进行分类,获得分类后的关键数据和参数数据的步骤,包括:
在获取到配置数据时,按字符对所述配置数据进行遍历,并根据遍历结果确定所述配置数据中包含的标签字段;
根据所述标签字段所属的数据类型对所述配置数据进行分类,获得分类后的关键数据和参数数据。
4.如权利要求1所述的配置数据缓存方法,其特征在于,所述在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理的步骤,包括:
在所述已使用容量超过所述预设容量阈值时,按数据大小对本地缓存中的缓存数据进行降序排序;
根据排序结果依次获取所述缓存数据对应的访问时间日期;
计算所述访问时间日期和所述当前时间日期之间的间隔时长;
根据所述间隔时长与预设时长阈值的比较结果确定所述本地缓存中的待清理缓存数据;
基于所述待清理缓存数据对所述本地缓存进行数据清理。
5.如权利要求1所述的配置数据缓存方法,其特征在于,所述在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤,包括:
在数据清理完成时,获取所述配置数据的数据大小,并检测所述数据大小是否超过预设阈值;
在所述数据大小超过预设阈值时,获取目标进程的当前线程池中的可用线程数量;
判断所述可用线程数量是否满足预设数据写入需求,若不满足,则根据所述可用线程数量和所述预设数据写入需求确定待创建新线程的数量;
根据所述待创建新线程的数量确定新线程创建时所需要的额外计算资源;
检测所述目标进程对应的可用计算资源是否大于或等于所述额外计算资源;
若所述可用计算资源大于或等于所述额外计算资源,则在所述当前线程池中创建新线程,以获得新的线程池;
通过所述guava组件调用所述新的线程池中的线程将所述配置数据写入所述本地缓存。
6.如权利要求5所述的配置数据缓存方法,其特征在于,所述检测所述目标进程对应的可用计算资源是否大于或等于所述额外计算资源的步骤之后,所述方法还包括:
若所述可用计算资源小于所述额外计算资源,则获取所述当前线程池中处于阻塞状态的线程对应的最后活跃时间;
计算所述最后活跃时间与当前时间之间的时间间隔,并根据所述时间间隔对所述阻塞状态的线程进行优先级排序;
根据排序结果确定待释放线程,并依次释放所述待释放线程,直至所述目标进程对应的可用计算资源大于或等于所述额外计算资源。
7.如权利要求1所述的配置数据缓存方法,其特征在于,所述在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤之后,所述方法包括:
通过信息摘要算法计算所述配置数据对应的当前哈希值;
获取所述配置数据被写入所述本地缓存之前对应的基准哈希值;
判断所述当前哈希值和所述基准哈希值是否一致,若不一致,则将所述配置数据从所述本地缓存中移除,并返回通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存的步骤。
8.一种配置数据缓存装置,其特征在于,所述配置数据缓存装置包括:
数据读取模块,用于在检测到服务器启动时,通过guava组件从预设数据库表中读取配置数据;
容量检测模块,用于获取本地缓存的已使用容量,并判断所述已使用容量是否超过预设容量阈值;
缓存清理模块,用于在所述已使用容量超过所述预设容量阈值时,根据预设数据回收策略对所述本地缓存进行数据清理;
数据写入模块,用于在数据清理完成时,通过所述guava组件采用多线程技术将所述配置数据写入所述本地缓存。
9.一种配置数据缓存设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的配置数据缓存程序,所述配置数据缓存程序配置为实现如权利要求1至7中任一项所述的配置数据缓存方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有配置数据缓存程序,所述配置数据缓存程序被处理器执行时实现如权利要求1至7任一项所述的配置数据缓存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492149.8A CN112612537A (zh) | 2020-12-16 | 2020-12-16 | 配置数据缓存方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492149.8A CN112612537A (zh) | 2020-12-16 | 2020-12-16 | 配置数据缓存方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112612537A true CN112612537A (zh) | 2021-04-06 |
Family
ID=75239925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011492149.8A Pending CN112612537A (zh) | 2020-12-16 | 2020-12-16 | 配置数据缓存方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612537A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342885A (zh) * | 2021-06-15 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 数据导入方法、装置、设备及计算机程序产品 |
CN116009949A (zh) * | 2023-03-28 | 2023-04-25 | 税友软件集团股份有限公司 | 一种数值获取方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331986A (zh) * | 2010-07-12 | 2012-01-25 | 阿里巴巴集团控股有限公司 | 一种数据库缓存管理方法及一种数据库服务器 |
CN103810048A (zh) * | 2014-03-11 | 2014-05-21 | 国家电网公司 | 一种面向资源利用最优的线程数量自动调整方法及装置 |
US20170228316A1 (en) * | 2016-02-04 | 2017-08-10 | International Business Machines Corporation | Request-type sensitive cache coherence |
CN107463511A (zh) * | 2017-01-23 | 2017-12-12 | 北京思特奇信息技术股份有限公司 | 一种基于多级缓存的数据国际化实现方法及装置 |
CN107678698A (zh) * | 2017-10-31 | 2018-02-09 | 努比亚技术有限公司 | 缓存数据清理方法、服务器、终端及计算机可读存储介质 |
CN110784534A (zh) * | 2019-10-25 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 数据服务方法、装置、系统及电子设备 |
CN111694868A (zh) * | 2020-06-16 | 2020-09-22 | 北京同邦卓益科技有限公司 | 数据缓存方法、装置、电子设备及存储介质 |
-
2020
- 2020-12-16 CN CN202011492149.8A patent/CN112612537A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331986A (zh) * | 2010-07-12 | 2012-01-25 | 阿里巴巴集团控股有限公司 | 一种数据库缓存管理方法及一种数据库服务器 |
CN103810048A (zh) * | 2014-03-11 | 2014-05-21 | 国家电网公司 | 一种面向资源利用最优的线程数量自动调整方法及装置 |
US20170228316A1 (en) * | 2016-02-04 | 2017-08-10 | International Business Machines Corporation | Request-type sensitive cache coherence |
CN107463511A (zh) * | 2017-01-23 | 2017-12-12 | 北京思特奇信息技术股份有限公司 | 一种基于多级缓存的数据国际化实现方法及装置 |
CN107678698A (zh) * | 2017-10-31 | 2018-02-09 | 努比亚技术有限公司 | 缓存数据清理方法、服务器、终端及计算机可读存储介质 |
CN110784534A (zh) * | 2019-10-25 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 数据服务方法、装置、系统及电子设备 |
CN111694868A (zh) * | 2020-06-16 | 2020-09-22 | 北京同邦卓益科技有限公司 | 数据缓存方法、装置、电子设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342885A (zh) * | 2021-06-15 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 数据导入方法、装置、设备及计算机程序产品 |
CN116009949A (zh) * | 2023-03-28 | 2023-04-25 | 税友软件集团股份有限公司 | 一种数值获取方法、装置、设备及存储介质 |
CN116009949B (zh) * | 2023-03-28 | 2023-08-29 | 税友软件集团股份有限公司 | 一种数值获取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9747086B2 (en) | Transmission point pattern extraction from executable code in message passing environments | |
TWI574202B (zh) | 用於新應用程式之記憶體管理模型與介面 | |
US8196116B2 (en) | Tracing objects in object-oriented programming model | |
US20080313238A1 (en) | Read-Copy Update System And Method | |
TW201301029A (zh) | 具有增強型應用程式元資料之記憶體管理器 | |
TW201301033A (zh) | 用於未修正應用程式的記憶體管理模型和界面 | |
US8745622B2 (en) | Standalone software performance optimizer system for hybrid systems | |
CN112612537A (zh) | 配置数据缓存方法、装置、设备及存储介质 | |
US20060253503A1 (en) | Method and apparatus for aging a versioned heap system | |
CN111831440A (zh) | 内存回收方法、装置、存储介质及电子设备 | |
US9575827B2 (en) | Memory management program, memory management method, and memory management device | |
GB2513528A (en) | Method and system for backup management of software environments in a distributed network environment | |
US20230129140A1 (en) | Multi-ring shared, traversable, and dynamic advanced database | |
CN111813520A (zh) | 线程调度方法、装置、存储介质及电子设备 | |
CN112214388A (zh) | 内存监控方法、装置、设备及计算机可读存储介质 | |
CN113515317A (zh) | 数据恢复的方法、装置 | |
US8769498B2 (en) | Warning of register and storage area assignment errors | |
CN113342554A (zh) | Io多路复用方法、介质、设备和操作系统 | |
US20210109862A1 (en) | Routing traffic of a logical unit to multiple backend data objects based on metadata mapping | |
CN111831435A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN115878336A (zh) | 锁操作中的信息处理方法、装置及计算设备 | |
CN106959888B (zh) | 云存储系统中的任务处理方法及装置 | |
CN112463595A (zh) | 基于云计算的移动端软件开发处理方法及云计算软件平台 | |
US10521155B2 (en) | Application management data | |
CN113419864B (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 |