CN113177031B - 数据库共享缓存的处理方法、装置、电子设备和介质 - Google Patents
数据库共享缓存的处理方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN113177031B CN113177031B CN202110428707.2A CN202110428707A CN113177031B CN 113177031 B CN113177031 B CN 113177031B CN 202110428707 A CN202110428707 A CN 202110428707A CN 113177031 B CN113177031 B CN 113177031B
- Authority
- CN
- China
- Prior art keywords
- time
- shared
- data page
- shared cache
- storage capacity
- 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
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据库共享缓存的处理方法、装置、电子设备和介质;其中,该方法包括:接收目标数据库的共享缓存建议请求;其中,共享缓存建议请求包括建议起始时间和建议终止时间;基于建议起始时间和建议终止时间,采集共享缓存区的数据页标识序列;其中,数据页标识序列为数据库进程访问共享缓存区记录的页面标识集合;根据数据页标识序列,确定共享缓存区的存储容量值。本公开实施例解决了依赖人工经验导致确定出的存储容量值的稳定度较低的问题,从而精准预估出共享缓存区的存储容量值。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据库共享缓存的处理方法、装置、电子设备和介质。
背景技术
数据库是一种基础应用软件,随着互联网、大数据以及人工智能等新应用在商业应用中的广泛普及,数据库应用日益庞大复杂,随之数据库性能表现的重要性也越发凸显;目前主流的数据库产品,都是通过共享内存数据缓冲区的技术在多个进程实例之间进行共享数据的访问,因此共享内存的访问效率成为也成为影响数据库性能的重要因素之一,共享内存的存储容量值会直接影响到其访问效率。目前对于共享数据缓冲区的存储容量是基于人为经验进行预先配置。
现有方案的缺陷在于:依赖于配置人员的主观性,对配置人员的技术能力要求较高,使得共享缓存区存储容量配置的稳定性较低。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据库共享缓存的处理方法、装置、电子设备和介质。
第一方面,本公开提供了一种数据库共享缓存的处理方法,包括:
接收目标数据库的共享缓存建议请求;其中,所述共享缓存建议请求包括建议起始时间和建议终止时间;
基于所述建议起始时间和所述建议终止时间,采集共享缓存区的数据页标识序列;其中,所述数据页标识序列为数据库进程访问所述共享缓存区记录的页面标识集合;
根据所述数据页标识序列,确定所述共享缓存区的存储容量值。
可选的,所述基于所述建议起始时间和所述建议终止时间,采集共享缓存区的数据页标识序列,包括:
判断当前采集时间是否超过所述建议终止时间;
若是,则从共享缓存区中采集所述建议起始时间到所述建议终止时间内的数据页标识序列。
可选的,所述判断当前采集时间是否超过所述建议终止时间之后,所述方法还包括:
若否,则从共享缓存区中采集所述建议起始时间到所述当前采集时间内的第一标识序列;直至所述当前采集时间为所述建议终止时间,以得到共享缓存区的数据页标识序列。
可选的,所述根据所述数据页标识序列,确定所述共享缓存区的存储容量值,包括:
统计所述数据页标识序列中标识不重复的数据页标识的数量;
将所述标识不重复的数据页标识的数量作为所述共享缓存区的存储容量值。
可选的,所述确定所述共享缓存区的存储容量值之后,所述方法还包括:
获取所述数据页标识序列中数据页序列被共享缓存命中的次数;以及获取所述数据页标识序列中数据页序列被磁盘缓存命中的次数;
确定所述共享缓存区在所述存储容量值下的磁盘访问时间;
根据所述数据页序列被共享缓存命中的次数、所述数据页序列被磁盘缓存命中的次数、所述存储容量值下的磁盘访问时间和所述存储容量值,确定所述共享缓存区的目标缓存信息表。
可选的,所述确定所述共享缓存区在所述存储容量值下的磁盘访问时间之前,所述方法还包括:
获取磁盘缓存的实际访问次数和所述实际访问次数的访问时间;
所述确定所述共享缓存区在所述存储容量值下的磁盘访问时间,包括:
根据所述实际访问次数、所述实际访问次数的访问时间和所述数据页序列被磁盘缓存命中的次数,确定所述共享缓存区在所述存储容量值下的磁盘访问时间。
可选的,所述方法还包括:
返回所述共享缓存区的存储容量值,用于对所述共享缓存区的存储容量进行选择配置。
第二方面,本公开还提供了一种数据库共享缓存的处理装置,包括:
请求接收模块,用于接收目标数据库的共享缓存建议请求;其中,所述共享缓存建议请求包括建议起始时间和建议终止时间;
序列采集模块,用于基于所述建议起始时间和所述建议终止时间,采集共享缓存区的数据页标识序列;其中,所述数据页标识序列为数据库进程访问所述共享缓存区记录的页面标识集合;
存储容量值确定模块,用于根据所述数据页标识序列,确定所述共享缓存区的存储容量值。
可选的,序列采集模块,包括:时间判断单元和序列采集单元;
时间判断单元,用于判断当前采集时间是否超过所述建议终止时间;
序列采集单元,用于若是,则从共享缓存区中采集所述建议起始时间到所述建议终止时间内的数据页标识序列。
可选的,序列采集单元,还用于若否,则从共享缓存区中采集所述建议起始时间到所述当前采集时间内的第一标识序列;直至所述当前采集时间为所述建议终止时间,以得到共享缓存区的数据页标识序列。
可选的,存储容量值确定模块,具体用于;
统计所述数据页标识序列中标识不重复的数据页标识的数量;
将所述标识不重复的数据页标识的数量作为所述共享缓存区的存储容量值。
可选的,还包括:次数获取模块、时间确定模块和信息表确定模块;
次数获取模块,用于获取所述数据页标识序列中数据页序列被共享缓存命中的次数;以及获取所述数据页标识序列中数据页序列被磁盘缓存命中的次数;
时间确定模块,用于确定所述共享缓存区在所述存储容量值下的磁盘访问时间;
信息表确定模块,用于根据所述数据页序列被共享缓存命中的次数、所述数据页序列被磁盘缓存命中的次数、所述存储容量值下的磁盘访问时间和所述存储容量值,确定所述共享缓存区的目标缓存信息表。
可选的,还包括:
时间获取模块,用于获取磁盘缓存的实际访问次数和所述实际访问次数的访问时间;
时间确定模块,具体用于:
根据所述实际访问次数、所述实际访问次数的访问时间和所述数据页序列被磁盘缓存命中的次数,确定所述共享缓存区在所述存储容量值下的磁盘访问时间。
可选的,还包括:
存储容量值返回模块,用于返回所述共享缓存区的存储容量值,用于对所述共享缓存区的存储容量进行选择配置。
本公开实施例提供的技术方案与现有技术相比具有如下优点:能够根据共享缓存区的历史进程数据确定存储容量值,解决了依赖人工经验导致确定出的存储容量值的稳定度较低的问题,从而精准预估出共享缓存区的存储容量值。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种数据库共享缓存的处理方法的流程示意图;
图2是本公开实施例提供另的一种数据库共享缓存的处理方法的流程示意图;
图3是本公开实施例提供的又一种数据库共享缓存的处理方法的流程示意图;
图4是数组中元素置换的示意图;
图5是数据访问时的置换示意图;
图6是本公开实施例提供的一种数据库共享缓存的处理装置的结构示意图;
图7是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1是本公开实施例提供的一种数据库共享缓存的处理方法的流程示意图。本实施例可适用于预估共享缓存区的存储容量值的情况。本实施例方法可由数据库共享缓存的处理装置来执行,该装置可采用硬件/或软件的方式来实现,并可配置于电子设备中。可实现本申请任意实施例所述的数据库共享缓存的处理方法。
共享内存缓存区是一种多个数据库实例进程都可以访问的内存结构,其主要用于缓存数据,降低数据库的输入输出(Input/Output,IO)开销;因为内存的访问速度远远大于磁盘等硬件设备的访问速度,所以大部分数据库产品都是通过二级缓存的方式提高数据访问的效率,即读取数据时,首先从共享内存中的数据共享缓冲区中读入数据块,如果共享内存中没有缓存该数据块,再从磁盘读取并同时存入共享内存之中以备下次读取使用;如果共享内存中存在该数据块,则直接从内存读取,称为共享内存命中;如果共享内存中没有多余的空间,则通过算法将部分内存块中的数据释放以便重用该空间,称为共享内存置换。
其中,共享内存的命中率越高,数据库的性能越好;而分配的共享内存的大小直接影响到共享内存的命中率,随着缓冲区的增加,命中率提高,但同时命中率的提高比例也随着缓冲区的增加而逐渐减少从而导致增加缓冲区的效益逐渐降低。同时,对同一套数据库***,对不同的应用场景,不同的时间段,***所需要的共享内存大小是不同的;盲目分配过大的共享内存会占用的过多的内存硬件资源,造成资源的浪费。
如图1所示,该方法具体包括如下:
S110、接收目标数据库的共享缓存建议请求;其中,共享缓存建议请求包括建议起始时间和建议终止时间。
在本实施例中,用户可通过在客户端执行共享内存建议的结构化查询(Structured Query Language,SQL)语句,以实现对共享内存的起始请求;同时,客户端可以通过再次执行该SQL语句,以指示结束目标数据库的共享缓存建议请求;其中,建议起始时间可为用户通过客户端首次执行SQL语句的执行时间;建议终止时间可为用户通过客户端第二次执行该SQL语句的执行时间。
具体的,上述SQL语句可参考如下。
“select*from sba.share_buffer_snapshot”。
需要说明的是,本实施例中目标数据库的共享缓存建议请求不限于SQL语句的实现,也可包含其他可实现语句,此处不对其进行具体限定。
S120、基于建议起始时间和建议终止时间,采集共享缓存区的数据页标识序列;其中,数据页标识序列为数据库进程访问共享缓存区记录的页面标识集合。
在本实施例中,在目标数据库中的每一个数据库进程均会对共享缓存区进程数据访问,以进行数据的有效提取;访问过程中,共享缓存区会记录每一数据库进程的访问信息,例如访问的数据页标识序列、访问的数据类型以及访问时间等信息。
其中,共享缓存区中缓存数据的单位为数据文件的数据页。示例性的,通常数据文件的每个数据页大小为8K,如果配置文件共享内存大小为128M,则共享内存中可缓存128M/8K个数据页。每个页面通过以“表空间+数据库+表文件+表类型+表块”作为访问的数据页标识;具体的,表空间、数据库、表文件、表类型和标块均为整数编号,则其组成的数据页标识可为一串字符。
S130、根据数据页标识序列,确定共享缓存区的存储容量值。
在本实施例中,数据页标识序列中包括多个数据库进程访问过的数据页标识,其中包含重复的数据页标识和非重复的数据页标识;具体的,可根据不重复的数据页标识的数量确定出共享缓存区的存储容量值。
本公开实施例接收目标数据库的共享缓存建议请求;其中,共享缓存建议请求包括建议起始时间和建议终止时间;基于建议起始时间和建议终止时间,采集共享缓存区的数据页标识序列;其中,数据页标识序列为数据库进程访问共享缓存区记录的页面标识集合;根据数据页标识序列,确定共享缓存区的存储容量值。本公开实施例能够根据共享缓存区的历史进程数据确定存储容量值,解决了依赖人工经验导致确定出的存储容量值的稳定度较低的问题,从而精准预估出共享缓存区的存储容量值。
图2是本公开实施例提供的另一种数据库共享缓存的处理方法的流程示意图。本实施例是在上述实施例的基础上进一步扩展与优化,并可与上述技术方案中任意可选方案组合。如图2所示,该方法包括:
S210、接收目标数据库的共享缓存建议请求;其中,共享缓存建议请求包括建议起始时间和建议终止时间。
S220、判断当前采集时间是否超过建议终止时间;若是,则执行S230;若否,则执行S240。
S230、从共享缓存区中采集建议起始时间到建议终止时间内的数据页标识序列。
在本实施例中,由于每个数据库进程对共享缓存区中存储数据的访问频率很高,为了提高缓存数据的访问效率,因此,本实施例利用二级缓存的方式存储记录的共享内存访问序列(即数据页标识序列)。
开启数据采集时,由目标数据库中收到采集请求的进程将数据页标识的初始快照保存在第一磁盘文件(例如自定义文件sba_init)中,采集期间,每个数据库进程将共享内存访问请求记录在进程本地内存之中,在本地内存达到门限值或数据库进程内计时器到期(例如达到设定时间)时刷入第二磁盘文件(例如自定义文件sba_track)中;从而实现数据的二级缓存。
示例性的,以开启共享内存数据采集流程为例进行说明;检查当前是否存在sba_init文件,若不存在,则判断用户为首次执行共享缓存建议请求;申请得到共享内存中所有分区锁,将共享内存锁住,以防止数据采集过程中其他进程进行数据采集导致数据采集不完整的问题;遍历共享内存的描述数组(例如BufferDesc),保存每个存在于共享内存中的数据页标识(BufferTag)到一个进程本地内存数组中(例如tags);释放共享内存锁;将共享内存中的数据tags保存到sba_init文件中,并释放内存,以完成数据的有效采集。
本实施例能够在共享缓存区中基于数据页标识的访问时间进行采集,以实现精准快速的数据页标识序列的组成。
S240、从共享缓存区中采集建议起始时间到当前采集时间内的第一标识序列;直至当前采集时间为建议终止时间,以得到共享缓存区的数据页标识序列。
在本实施例中,进行采集时,需要将数据存储文件的名称进行更改,以避免采集过程被其他进程采集请求而影响。
示例性的,以第一磁盘文件为sba_init;第二磁盘文件为sba_track为例进行说明;判断存在sba_init文件和sba_track后,将这两个文件的文件名称进行更改,得到sba_init_temp和sba_track_temp,以防止其他进程再次写入。
其中,第一标识序列为建议起始时间到当前采集时间内采集到的数据页标识,且该当前采集时间并未超过建议终止时间,则采集过程并未结束,直至当前采集时间过渡到建议终止时间。示例性的,以建议起始时间为2021年4月20日9:00;建议终止时间为2021年4月20日12:00;当前采集时间为2021年4月20日10:00;则第一标识序列为2021年4月20日9:00-10:00采集到的数据页标识序列;直至当前采集时间从2021年4月20日10:00过渡到2021年4月20日12:00,则可采集到第二标识序列,第二标识序列为2021年4月20日10:00-12:00采集到的数据页标识序列,即根据第一标识序列和第二标识序列可得到共享缓存区在建议起始时间到建议终止时间内的数据页标识序列。
本实施例在进行数据页标识序列的采集时,根据建议终止时间与当前时间进行比对,以准确采集时间,从而避免采集时间未到建议终止时间导致采集信息不完全的问题。
S250、统计数据页标识序列中标识不重复的数据页标识的数量。
在本实施例中,共享缓存区中存储的数据页标识可能相同,也可能不同;标识不重复的数据页标识的个数能够有效反映出该共享缓存区的实际存储性能。
S260、将标识不重复的数据页标识的数量作为共享缓存区的存储容量值。
示例性的,共享缓存区中存储的数据页标识序列包括“10112”、“12003”、“11520”、“10112”、“22321”和“12314”;其中,每一数据页标识为共享缓存区中其中一页的数据标识,大小可以为8K;那么,标识不重复的数据页标识的数量为5,则得到共享缓存区的存储容量值为5×8K。
图3是本公开实施例提供的又一种数据库共享缓存的处理方法的流程示意图。本实施例是在上述实施例的基础上进一步扩展与优化,并可与上述技术方案中任意可选方案组合。如图2所示,该方法包括:
S310、接收目标数据库的共享缓存建议请求;其中,共享缓存建议请求包括建议起始时间和建议终止时间。
S320、基于建议起始时间和建议终止时间,采集共享缓存区的数据页标识序列;其中,数据页标识序列为数据库进程访问共享缓存区记录的页面标识集合。
S330、根据数据页标识序列,确定共享缓存区的存储容量值。
S340、获取数据页标识序列中数据页序列被共享缓存命中的次数;以及获取数据页标识序列中数据页序列被磁盘缓存命中的次数。
在本实施例中,数据页序列被共享缓存命中为采集数据时是直接在共享缓存区中采集;数据页序列被磁盘缓存命中为采集数据时未在共享缓存区中查找到,而在磁盘中查找到。
其中,可通过建立哈希表和数组实现,可参见以下示例。
对每一个共享内存的大小值,建立一个数组和一个哈希表。通过数组模拟存储管理(例如Least Recently Used,LRU)链表从而提高计算速度;数组个数为:内存值大小/数据页大小+1;数组中元素为:prev=LRU链表中上一个元素的下标,BufferTag=共享缓存标识,next=LRU链表中下一个元素的下标;数组的第0个元素不参与LRU链表,只是用来记录链表的第一个和最后一个元素的位置;每次置换时取第0个元素的next值保存的成员来置换;Hash表的Key为BufferTag,值为在数组的下标值,通过在Hash表中查找BufferTag从而快速得到数据块在模拟共享内存中的位置。
可参见图4,图4为数组中元素置换的示意图;初始元素为:P1、P2、P3、P4、P5和P6,当元素P3被访问时,则将其位置进行转换,新的数组中元素为:P1、P2、P4、P5、P6和P3。
图5为数据访问时的置换示意图;其中,P1被访问,各数据项按照访问的顺序由旧到新依次为P1、P2、P3;如果此时输入序列访问的下个数据页为P1,则在哈希表中根据P1的标识值可以取到P1在LRU数组中的编号1,经过计算后LRU数据页按照从旧到新的排列变为P2、P3、P1;此时如果输入序列访问的下个数据页为P4且数组最大长度为3,则LRU数组中P2会被替换为P4,LRU中数据页从旧到新的排列变为P3、P1、P4。
具体的,将sba_init_temp中保存的不重复的BufferTag加入数组中和Hash表中构成共享内存的初始状态;依次读取sba_track_temp中保存的BufferTag,从Hash表中读取,如果能读取值,则认为共享缓存被命中,将读取的数组元素移到LRU链表的最后;如果Hash表中没有值,则认为存在一次IO读取;如果数组中保存的元素没有达到最大值,则分配一个新的元素并放入LRU链表的最后,同时放入Hash表中。如果Hash表中没有值且数组中元素达到了最大值,则认为存在一次共享内存置换,从LRU链表中取一个最近最少使用的数组元素,即LRU链表的第一个元素,将该元素的BufferTag值从Hash表中删除,将该元素的BufferTag值替换为当前从sba_track_temp中读取的BufferTag,并且将该元素移到LRU链表的尾部。
在本实施例中,可选的,确定共享缓存区在存储容量值下的磁盘访问时间之前,本实施例方法还包括:
获取磁盘缓存的实际访问次数和实际访问次数的访问时间。
其中,磁盘缓存的实际访问次数为数据采集时在磁盘文件中采集得到的次数;可包括数据写入和数据读取;实际访问次数的访问时间为数据写入时间和数据读取时间。
S350、确定共享缓存区在存储容量值下的磁盘访问时间。
在本实施例中,可选的,确定共享缓存区在存储容量值下的磁盘访问时间,包括:
根据实际访问次数、实际访问次数的访问时间和数据页序列被磁盘缓存命中的次数,确定共享缓存区在存储容量值下的磁盘访问时间。
其中,磁盘访问时间可包括写入时间和读取时间;可根据实际访问次数、实际访问次数的访问时间和数据页序列被磁盘缓存命中的次数,准确确定出共享缓存区在存储容量值下的磁盘访问时间。
具体可参见如下公式得出。
其中,Trecommend为共享缓存区在存储容量值下的磁盘访问时间;TIO为实际访问次数的访问时间;NIO为数据页序列被磁盘缓存命中的次数;N访问为实际访问次数。
S360、根据数据页序列被共享缓存命中的次数、数据页序列被磁盘缓存命中的次数、存储容量值下的磁盘访问时间和存储容量值,确定共享缓存区的目标缓存信息表。
在本实施例中,根据数据页序列被共享缓存命中的次数、数据页序列被磁盘缓存命中的次数、存储容量值下的磁盘访问时间和存储容量值,确定出的共享缓存区的目标缓存信息表,可利于用户对共享缓存区不同存储容量值的访问性能进行直观了解。
具体的,可在确定出的共享缓存区的存储容量值的基础上,分别取该存储容量值的不同百分比,并计算出不同百分比下对应的共享缓存存储容量值的配置下,***的缓存命中率、缓存未命中率、缓存的置换次数以及IO访问时间。
示例性的,以百分比为100%、80%、50%、30%和20%为例进行说明;具体可参见下表1。
表1共享缓存区对应不同存储容量值的目标缓存信息表
其中,逻辑读为在共享缓存区中读取;物理读为在磁盘中读取;确定出共享缓存区的存储容量值为644MB;百分比为80%对应的存储容量值为515MB;百分比为50%对应的存储容量值为322MB;百分比为30%对应的存储容量值为193MB;百分比为20%对应的存储容量值为128MB。
可将该目标缓存信息表返回给用户,以使得用户可直观有效的了解到不同存储容量值对应的访问数据收益情况。
在本实施例中,可选的,本实施例方法还包括:
返回共享缓存区的存储容量值,用于对共享缓存区的存储容量进行选择配置。
其中,存储容量值对应于不同的建议时间;将不同时间建议的存储容量值返回给用户,以使得用户可参考该存储容量值,选择性的对目标数据库的存储容量进行配置。
数据库***启动时,启动一个采集进程,该进程每5秒执行采集一次;每次采集记录下sba_track文件的大小;每次采集从上次记录的sba_track大小为开始位置读取sba_track文件;将sba_track文件中的BufferTag放入一个哈希(hash)表中,hash Key为BufferTag;利用Key不重复的特性来保证记录不重复的BufferTag;将采集时间,哈希表的元素个数存入数据表中。
具体可参见下表2,以向用户进行反馈。
表2存储容量值示意表
图6是本公开实施例提供的一种数据库共享缓存的处理装置的结构示意图;该装置配置于电子设备中,可实现本申请任意实施例所述的数据库共享缓存的处理方法。该装置具体包括如下:
请求接收模块610,用于接收目标数据库的共享缓存建议请求;其中,所述共享缓存建议请求包括建议起始时间和建议终止时间;
序列采集模块620,用于基于所述建议起始时间和所述建议终止时间,采集共享缓存区的数据页标识序列;其中,所述数据页标识序列为数据库进程访问所述共享缓存区记录的页面标识集合;
存储容量值确定模块630,用于根据所述数据页标识序列,确定所述共享缓存区的存储容量值。
在本实施例中,可选的,序列采集模块620,包括:时间判断单元和序列采集单元;
时间判断单元,用于判断当前采集时间是否超过所述建议终止时间;
序列采集单元,用于若是,则从共享缓存区中采集所述建议起始时间到所述建议终止时间内的数据页标识序列。
在本实施例中,可选的,序列采集单元,还用于若否,则从共享缓存区中采集所述建议起始时间到所述当前采集时间内的第一标识序列;直至所述当前采集时间为所述建议终止时间,以得到共享缓存区的数据页标识序列。
在本实施例中,可选的,存储容量值确定模块630,具体用于;
统计所述数据页标识序列中标识不重复的数据页标识的数量;
将所述标识不重复的数据页标识的数量作为所述共享缓存区的存储容量值。
在本实施例中,可选的,本实施例装置还包括:次数获取模块、时间确定模块和信息表确定模块;
次数获取模块,用于获取所述数据页标识序列中数据页序列被共享缓存命中的次数;以及获取所述数据页标识序列中数据页序列被磁盘缓存命中的次数;
时间确定模块,用于确定所述共享缓存区在所述存储容量值下的磁盘访问时间;
信息表确定模块,用于根据所述数据页序列被共享缓存命中的次数、所述数据页序列被磁盘缓存命中的次数、所述存储容量值下的磁盘访问时间和所述存储容量值,确定所述共享缓存区的目标缓存信息表。
在本实施例中,可选的,本实施例装置还包括:
时间获取模块,用于获取磁盘缓存的实际访问次数和所述实际访问次数的访问时间;
时间确定模块,具体用于:
根据所述实际访问次数、所述实际访问次数的访问时间和所述数据页序列被磁盘缓存命中的次数,确定所述共享缓存区在所述存储容量值下的磁盘访问时间。
在本实施例中,可选的,本实施例装置还包括:
存储容量值返回模块,用于返回所述共享缓存区的存储容量值,用于对所述共享缓存区的存储容量进行选择配置。
通过本发明实施例的数据库共享缓存的处理装置,能够根据共享缓存区的历史进程数据确定存储容量值,解决了依赖人工经验导致确定出的存储容量值的稳定度较低的问题,从而精准预估出共享缓存区的存储容量值。
本发明实施例所提供的数据库共享缓存的处理装置可执行本发明任意实施例所提供的数据库共享缓存的处理方法,具备执行方法相应的功能模块和有益效果。
图7本公开实施例提供的一种电子设备的结构示意图。如图7所示,该电子设备包括处理器710、存储器720、输入装置730和输出装置740;电子设备中处理器710的数量可以是一个或多个,图7中以一个处理器710为例;电子设备中的处理器710、存储器720、输入装置730和输出装置740可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器720作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据库共享缓存的处理方法对应的程序指令/模块。处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现本发明实施例所提供的数据库共享缓存的处理方法。
存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,可以包括键盘、鼠标等。输出装置740可包括显示屏等显示设备。
本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现本发明实施例所提供的数据库共享缓存的处理方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据库共享缓存的处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种数据库共享缓存的处理方法,其特征在于,所述方法包括:
接收目标数据库的共享缓存建议请求;其中,所述共享缓存建议请求包括:建议起始时间和建议终止时间,所述建议起始时间为首次执行共享内存建议的结构化查询语句的执行时间,所述建议终止时间为第二次执行共享内存建议的结构化查询语句的执行时间;
基于所述建议起始时间和所述建议终止时间,采集共享缓存区的数据页标识序列;其中,所述数据页标识序列为数据库进程访问所述共享缓存区记录的页面标识集合;
根据所述数据页标识序列中标识不重复的数据页标识的数量,确定所述共享缓存区的存储容量值。
2.根据权利要求1所述的方法,其特征在于,所述基于所述建议起始时间和所述建议终止时间,采集共享缓存区的数据页标识序列,包括:
判断当前采集时间是否超过所述建议终止时间;
若是,则从共享缓存区中采集所述建议起始时间到所述建议终止时间内的数据页标识序列。
3.根据权利要求2所述的方法,其特征在于,所述判断当前采集时间是否超过所述建议终止时间之后,所述方法还包括:
若否,则从共享缓存区中采集所述建议起始时间到所述当前采集时间内的第一标识序列;直至所述当前采集时间为所述建议终止时间,以得到共享缓存区的数据页标识序列。
4.根据权利要求1所述的方法,其特征在于,所述确定所述共享缓存区的存储容量值之后,所述方法还包括:
获取所述数据页标识序列中数据页序列被共享缓存命中的次数;以及获取所述数据页标识序列中数据页序列被磁盘缓存命中的次数;
确定所述共享缓存区在所述存储容量值下的磁盘访问时间;
根据所述数据页序列被共享缓存命中的次数、所述数据页序列被磁盘缓存命中的次数、所述存储容量值下的磁盘访问时间和所述存储容量值,确定所述共享缓存区的目标缓存信息表。
5.根据权利要求4所述的方法,其特征在于,所述确定所述共享缓存区在所述存储容量值下的磁盘访问时间之前,所述方法还包括:
获取磁盘缓存的实际访问次数和所述实际访问次数的访问时间;
所述确定所述共享缓存区在所述存储容量值下的磁盘访问时间,包括:
根据所述实际访问次数、所述实际访问次数的访问时间和所述数据页序列被磁盘缓存命中的次数,确定所述共享缓存区在所述存储容量值下的磁盘访问时间。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
返回所述共享缓存区的存储容量值,用于对所述共享缓存区的存储容量进行选择配置。
7.一种数据库共享缓存的处理装置,其特征在于,所述装置包括:
请求接收模块,用于接收目标数据库的共享缓存建议请求;其中,所述共享缓存建议请求包括建议起始时间和建议终止时间,所述建议起始时间为首次执行共享内存建议的结构化查询语句的执行时间,所述建议终止时间为第二次执行共享内存建议的结构化查询语句的执行时间;
序列采集模块,用于基于所述建议起始时间和所述建议终止时间,采集共享缓存区的数据页标识序列;其中,所述数据页标识序列为数据库进程访问所述共享缓存区记录的页面标识集合;
存储容量值确定模块,用于根据所述数据页标识序列中标识不重复的数据页标识的数量,确定所述共享缓存区的存储容量值。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1~6中任一所述的数据库共享缓存的处理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~6中任一所述的数据库共享缓存的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110428707.2A CN113177031B (zh) | 2021-04-21 | 2021-04-21 | 数据库共享缓存的处理方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110428707.2A CN113177031B (zh) | 2021-04-21 | 2021-04-21 | 数据库共享缓存的处理方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113177031A CN113177031A (zh) | 2021-07-27 |
CN113177031B true CN113177031B (zh) | 2023-08-01 |
Family
ID=76923954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110428707.2A Active CN113177031B (zh) | 2021-04-21 | 2021-04-21 | 数据库共享缓存的处理方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113177031B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013152539A (ja) * | 2012-01-24 | 2013-08-08 | Toshiba Corp | メモリデバイス、メモリデバイス制御方法及びメモリデバイス制御プログラム |
CN106021370A (zh) * | 2016-05-11 | 2016-10-12 | 智者四海(北京)技术有限公司 | 内存数据库实例的管理方法及装置 |
CN109542912A (zh) * | 2018-12-04 | 2019-03-29 | 北京锐安科技有限公司 | 区间数据存储方法、装置、服务器及存储介质 |
CN110555001A (zh) * | 2019-09-05 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
CN110704336A (zh) * | 2019-09-26 | 2020-01-17 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据缓存方法及装置 |
CN110889629A (zh) * | 2019-11-27 | 2020-03-17 | 陕西格物实业有限公司 | 无人机空中、水下、户外融合汇聚发布融媒体*** |
CN111190655A (zh) * | 2019-12-30 | 2020-05-22 | 中国银行股份有限公司 | 一种应用缓存数据的处理方法、装置、设备及*** |
CN111309720A (zh) * | 2018-12-11 | 2020-06-19 | 北京京东尚科信息技术有限公司 | 时序数据的存储、读取方法、装置、电子设备及存储介质 |
CN111737168A (zh) * | 2020-06-24 | 2020-10-02 | 华中科技大学 | 一种缓存***、缓存处理方法、装置、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6457021B1 (en) * | 1998-08-18 | 2002-09-24 | Microsoft Corporation | In-memory database system |
CN111095204A (zh) * | 2017-11-22 | 2020-05-01 | 英特尔公司 | 针对高速缓存存储器进行文件预取调度以减少等待时间 |
-
2021
- 2021-04-21 CN CN202110428707.2A patent/CN113177031B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013152539A (ja) * | 2012-01-24 | 2013-08-08 | Toshiba Corp | メモリデバイス、メモリデバイス制御方法及びメモリデバイス制御プログラム |
CN106021370A (zh) * | 2016-05-11 | 2016-10-12 | 智者四海(北京)技术有限公司 | 内存数据库实例的管理方法及装置 |
CN109542912A (zh) * | 2018-12-04 | 2019-03-29 | 北京锐安科技有限公司 | 区间数据存储方法、装置、服务器及存储介质 |
CN111309720A (zh) * | 2018-12-11 | 2020-06-19 | 北京京东尚科信息技术有限公司 | 时序数据的存储、读取方法、装置、电子设备及存储介质 |
CN110555001A (zh) * | 2019-09-05 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
CN110704336A (zh) * | 2019-09-26 | 2020-01-17 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据缓存方法及装置 |
CN110889629A (zh) * | 2019-11-27 | 2020-03-17 | 陕西格物实业有限公司 | 无人机空中、水下、户外融合汇聚发布融媒体*** |
CN111190655A (zh) * | 2019-12-30 | 2020-05-22 | 中国银行股份有限公司 | 一种应用缓存数据的处理方法、装置、设备及*** |
CN111737168A (zh) * | 2020-06-24 | 2020-10-02 | 华中科技大学 | 一种缓存***、缓存处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113177031A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200409925A1 (en) | Data processing method and apparatus, storage medium and electronic device | |
CN107943718B (zh) | 一种清理缓存文件的方法和装置 | |
CN107301215B (zh) | 一种搜索结果缓存方法及装置、搜索方法及装置 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN111309720A (zh) | 时序数据的存储、读取方法、装置、电子设备及存储介质 | |
JP6642650B2 (ja) | Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法 | |
US20190005101A1 (en) | Method and apparatus for accessing time series data in memory | |
US11113195B2 (en) | Method, device and computer program product for cache-based index mapping and data access | |
EP2541423A1 (en) | Replacement policy for resource container | |
CN109766318B (zh) | 文件读取方法及装置 | |
EP3859536B1 (en) | Method and device for buffering data blocks, computer device, and computer-readable storage medium | |
CN112148736B (zh) | 缓存数据的方法、设备及存储介质 | |
CN111782707A (zh) | 一种数据查询方法及*** | |
US20210286730A1 (en) | Method, electronic device and computer program product for managing cache | |
CN111737254B (zh) | 一种提高应用缓存利用率的方法及装置 | |
CN111177090A (zh) | 一种基于子模优化算法的客户端缓存方法及*** | |
CN111158601A (zh) | 一种缓存中的io数据下刷方法、***及相关装置 | |
CN113177031B (zh) | 数据库共享缓存的处理方法、装置、电子设备和介质 | |
CN115827702B (zh) | 一种基于布隆过滤器的软件白名单查询方法 | |
CN110502535B (zh) | 数据访问方法、装置、设备和存储介质 | |
CN110399451B (zh) | 一种基于非易失性内存的全文检索引擎缓存方法,***,设备及可读存储介质 | |
JP2001282599A (ja) | データ管理方法および装置並びにデータ管理プログラムを格納した記録媒体 | |
CN117033831A (zh) | 一种客户端缓存方法、装置及其介质 | |
US11816103B1 (en) | Dynamic prefetching for database queries | |
CN105653367A (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 |