CN114266058A - 针对加密数据的解密预加载方法及装置 - Google Patents

针对加密数据的解密预加载方法及装置 Download PDF

Info

Publication number
CN114266058A
CN114266058A CN202111600558.XA CN202111600558A CN114266058A CN 114266058 A CN114266058 A CN 114266058A CN 202111600558 A CN202111600558 A CN 202111600558A CN 114266058 A CN114266058 A CN 114266058A
Authority
CN
China
Prior art keywords
preloading
database
encrypted
page
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111600558.XA
Other languages
English (en)
Other versions
CN114266058B (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.)
China Electronics Technology Group Jincang Beijing Technology Co ltd
Original Assignee
Beijing Kingbase Information Technologies 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 Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202111600558.XA priority Critical patent/CN114266058B/zh
Publication of CN114266058A publication Critical patent/CN114266058A/zh
Application granted granted Critical
Publication of CN114266058B publication Critical patent/CN114266058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种针对加密数据的解密预加载方法,涉及数据库技术领域。所述方法包括:根据数据库资源使用情况动态调整预加载时机;所述预加载时机包括:数据库启动过程预加载以及数据库运行过程预加载;采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息;将所述解密数据信息存储到共享缓存区中。采用本方法,在确保数据库安全性的情况下,能够根据资源使用情况动态调整预加载时机,进而提高数据库性能。

Description

针对加密数据的解密预加载方法及装置
技术领域
本公开涉及数据库技术领域,尤其涉及一种针对加密数据的解密预加载方法及装置。
背景技术
随着计算机安全的发展,在对数据库中的数据采用加密的方法来完成访问控制的功能,拥有密钥的用户在访问加密数据时,需要解密,这个操作代价往往比较大,极大地影响了系统的性能。
现有的方案中,数据库中越来越多的数据以透明加密的方式被存储,例如表空间透明存储加密和表透明存储加密,可以采用预加载的方式,在使用前进行解密,以提高系统性能。但是这种方式的缺点是:目前数据库的预加载都是针对非加密数据,对加密数据支持的较少;而且预加载需要手动执行,不能自动的周期的进行。
因此,在确保数据库安全性的情况下,如何提高数据库性能是当前亟需解决的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种针对加密数据的解密预加载方法及装置,解决了在确保数据库安全性的情况下,影响数据库性能的问题。
为了实现上述目的,本公开实施例提供技术方案如下:
第一方面,本公开的实施例提供一种针对加密数据的解密预加载方法,应用于数据库服务器,所述方法包括:
根据数据库资源使用情况动态调整预加载时机;所述预加载时机包括:数据库启动过程预加载以及数据库运行过程预加载;
采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息;
将所述解密数据信息存储到共享缓存区中。
作为本公开实施例一种可选的实施方式,当所述预加载时机为数据库启动过程预加载时,所述采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,包括:
通过元数据获取数据库中的加密对象信息;所述加密对象信息包括:表空间加密信息、表加密信息;
对所述加密对象信息进行解密,获取解密数据信息。
作为本公开实施例一种可选的实施方式,当所述预加载时机为数据库运行过程预加载时,所述采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,包括:
根据预设时间间隔周期性获取数据库加密对象的信息;
针对每个加密对象,判断当前加密页面是否已加载到共享缓存区中;所述每个加密对象包括至少一个加密页面;
若当前加密页面未加载到共享缓存区中,则判断是否满足预加载条件;
若满足预加载条件,则对所述加密对象进行解密,获取解密数据信息。
作为本公开实施例一种可选的实施方式,所述判断是否满足预加载条件,包括:
判断在第一预设时间内,所述加密对象的数据获取操作次数是否大于预设阈值次数;所述数据获取操作包括:查询、插入、更新以及删除;
判断共享缓存区的使用率是否小于第一预设阈值;
判断中央处理器的使用率是否小于第二预设阈值;
判断磁盘的利用率是否大于第三预设阈值。
作为本公开实施例一种可选的实施方式,在将所述解密数据信息预加载到共享缓存区中之前,所述方法还包括:
根据内存置换策略将内存页面置换属性设置为常驻。
作为本公开实施例一种可选的实施方式,所述判断当前加密页面是否已加载到共享缓存区中,包括:
若当前加密页面已加载到共享缓存区中,则对所述当前加密页面的下一个加密页面进行预加载处理。
作为本公开实施例一种可选的实施方式,所述采用多线程处理方式对数据库的加密对象进行预加载,包括:
根据加密对象的内存大小确定执行解密操作的线程数量。
第二方面,本公开实施例提供一种针对加密数据的解密预加载装置,包括:
调整模块,用于根据数据库资源使用情况动态调整预加载时机;所述预加载时机包括:数据库启动过程预加载以及数据库运行过程预加载;
预加载模块,用于采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息;
存储模块,用于将所述解密数据信息存储到共享缓存区中。
作为本公开实施例一种可选的实施方式,当所述预加载时机为数据库启动过程预加载时,所述预加载模块包括:
第一获取单元,用于通过元数据获取数据库中的加密对象信息;所述加密对象信息包括:表空间加密信息、表加密信息;
第一解密单元,用于对所述加密对象信息进行解密,获取解密数据信息。
作为本公开实施例一种可选的实施方式,当所述预加载时机为数据库运行过程预加载时,所述预加载模块包括:
第二获取单元,用于根据预设时间间隔周期性获取数据库加密对象的信息;
判断单元,用于针对每个加密对象,判断当前加密页面是否已加载到共享缓存区中;所述每个加密对象包括至少一个加密页面;
分析单元,用于若当前加密页面未加载到共享缓存区中,则判断是否满足预加载条件;
第二解密单元,用于若满足预加载条件,则对所述加密对象进行解密,获取解密数据信息。
作为本公开实施例一种可选的实施方式,所述分析单元具体用于:
判断在第一预设时间内,所述加密对象的数据获取操作次数是否大于预设阈值次数;所述数据获取操作包括:查询、插入、更新以及删除;
判断共享缓存区的使用率是否小于第一预设阈值;
判断中央处理器的使用率是否小于第二预设阈值;
判断磁盘的利用率是否大于第三预设阈值。
作为本公开实施例一种可选的实施方式,所述装置还包括:
设置单元,用于根据内存置换策略将内存页面置换属性设置为常驻。
作为本公开实施例一种可选的实施方式,所述判断单元还用于:
若当前加密页面已加载到共享缓存区中,则对所述当前加密页面的下一个加密页面进行预加载处理。
作为本公开实施例一种可选的实施方式,所述预加载单元具体用于:
根据加密对象的内存大小确定执行解密操作的线程数量。
第三方面,本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第一方面的任一实施方式所述的针对加密数据的解密预加载方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面或第一方面的任一实施方式所述的针对加密数据的解密预加载方法。
本公开实施例提供的针对加密数据的解密预加载方法,应用于数据库服务器,首先根据数据库资源使用情况动态调整预加载时机,然后采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,最后将解密数据信息存储到共享缓存区中。由于预加载时机包括数据库启动过程预加载和数据库运行过程预加载,能够根据资源使用情况动态调整预加载时机,且对数据库的加密对象进行预加载时采用多线程处理方式,同时解密预加载多个加密对象,进而能提高数据库的性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中针对加密数据的解密预加载方法的流程示意图;
图2为另一个实施例中针对加密数据的解密预加载方法的流程示意图;
图3为又一个实施例中针对加密数据的解密预加载方法的流程示意图;
图4为一个实施例中针对加密数据的解密预加载装置的结构示意图;
图5为本公开实施例所述的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开的说明书和权利要求书中的术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本公开实施例中,“示例性的”或者“例如”等词是用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本公开实施例的整体构思为:在确保数据库安全性的情况下,在数据库内核中新增加密对象的解密预加载方法,根据资源使用情况动态调整加载时机,支持数据库启动过程预加载和数据库运行过程预加载两种情况,并且在数据库运行过程中周期性触发,引入多线程并发处理机制,同时解密加载多个对象,提升数据库的性能。
本公开提供一种针对加密数据的解密预加载方法,应用于数据库服务器。在本实施例中,针对加密数据的解密预加载方法包括如下步骤:
S11、根据数据库资源使用情况动态调整预加载时机。
其中,所述预加载时机包括:数据库启动过程预加载以及数据库运行过程预加载。
具体的,预加载,即在真正使用数据之前,先异步将数据加载好,等需要使用时,就可以直接使用之间加载好的数据。可以理解为,将所有所需的资源提前加载到本地,以便在使用时直接从缓存中获取资源。其中,预加载使用异步方法加载数据,即使用后台线程来加载数据,这样做的好处是:不会阻塞当前的主线程。
另外,预加载时机的确定需要保证两点:①预加载资源应该尽量不影响用户的正常操作;②预加载的资源尽量保证用户能够使用到。
示例性的,如果建立了过多的连接,会消耗数据库的资源。
S12、采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息。
具体的,由于不同加密对象的加密页面大小不同,加载的时间不同,若使用一个线程对多个加密页面进行加载时,有的加密页面预加载时间长,有的加密页面预加载时间短,容易导致网络堵塞在加密页面数据较大的地方,从而影响整个网络的速率。因此,采用多线程处理方式对加密对象进行预加载,可以缓解网络的压力,提高预加载性能。
示例性的,若磁盘有5G的加密数据需要进行预加载,可以设置5 个线程对加密页面进行解密处理,处理解密操作的线程数量可以根据实际应用情况进行设置,此处不作具体限制。
S13、将所述解密数据信息存储到共享缓存区中。
具体的,共享缓存区是指进程间通信在多处理器的计算机系统中,可以被不同中央处理器访问的大容量内存。共享缓存区的特点:共享缓存区是进程间共享数据的一种最快的方法。一个进程向共享的内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。共享缓存区作为沟通数据库各部分的桥梁,对数据的所有操作,都要作用在缓冲区的信息之上。缓冲区管理就是对系统缓冲区的调度和管理,包括缓冲区与外界交换数据,以及对其中的数据进行操作,缓冲区各项属性的变化。
另外,将解密数据信息预加载到共享缓存区有以下好处:若查询的数据已经读取到数据缓存区的话,就直接从缓存区获取数据,避免从磁盘的物理文件中读取,提高速率。
本公开实施例提供的针对加密数据的解密预加载方法,应用于数据库服务器,首先根据数据库资源使用情况动态调整预加载时机,然后采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,最后将解密数据信息存储到共享缓存区中。由于预加载时机包括数据库启动过程预加载和数据库运行过程预加载,能够根据资源使用情况动态调整预加载时机,且对数据库的加密对象进行预加载时采用多线程处理方式,同时解密预加载多个加密对象,进而能提高数据库的性能。
在一个实施例中,在图1的基础上,本公开实施例提供的针对加密数据的解密预加载方法,当所述预加载时机为数据库启动过程预加载时,参照图2所示,步骤S12执行如下步骤S1211和S1212:
S1211、通过元数据获取数据库中的加密对象信息。
其中,所述加密对象信息包括:表空间加密信息、表加密信息。
具体的,元数据是指定义数据结构的数据。数据库元数据就是指定义数据库各类对象结构的数据。例如数据库中的数据库名、表名、列名、用户名、版本名以及从SQL语句得到的结果中的大部分字符串是元数据。通过元数据可以获取到数据库的表空间加密信息和表加密信息。
具体的,数据库中表空间和表透明存储加密,透明加密技术是通过监控应用程序对文件的操作,在打开文件时自动对密文进行解密,在写文件时自动将内存中的明文加密写入存储介质,从而保证存储介质上的文件始终处于加密状态。
S1212、对所述加密对象信息进行解密,获取解密数据信息。
具体的,数据库中对加密对象的预加载,也是把加密对象对应的页面解密后,加载到共享缓存区中。
在一个实施例中,在图1的基础上,本公开实施例提供的针对加密数据的解密预加载方法,当所述预加载时机为数据库运行过程预加载时,参照图3所示,步骤S12执行如下步骤S1221-S1224:
S1221、根据预设时间间隔周期性获取数据库加密对象的信息。
示例性的,预设时间间隔可以设置为4小时或其他合理数值,此处不作具体限制。可以通过定时触发的方式,例如对元数据进行定时扫描,从而获取数据库加密对象的信息。
S1222、针对每个加密对象,判断当前加密页面是否已加载到共享缓存区中。
其中,所述每个加密对象包括至少一个加密页面。
具体的,数据库中表空间和表透明存储加密,都是采用页面存储加密,加密和解密的单位都是页面。其中,每个项目对应一个表空间,数据库是通过表空间存储物理表的,一个数据库示例可以有N个表空间,一个表空间下可以有N张表。每个表空间由同一磁盘上的一个或多个文件组成,这些文件被称为数据文件。一个数据文件只能属于一个表空间。
另外,在关系数据库中,数据库表是一系列二维数组的集合,用来代表和存储数据对象之间的关系。它由纵向的列和横向的行组成。
若当前加密页面未加载到共享缓存区中,则执行步骤S1223。
S1223、判断是否满足预加载条件。
对应的,当前加密页面未加载到共享缓存区中,则判断是否满足预加载条件。
具体的,判断当前加载对象是否满足预加载条件,是为了减少预加载对应用的正常操作的影响。
若满足预加载条件,则执行步骤S1224。
S1224、所述加密对象进行解密,获取解密数据信息。
具体的,由于数据库中表空间和表透明存储加密,都是采用页面存储加密,所以加密和解密的单位都是页面,因此,对加密对象以页面为对象进行解密。
在一个实施例中,S1223、若当前加密页面未加载到共享缓存区中,则判断是否满足预加载条件,可以通过如下方式实现:
①判断在第一预设时间内,所述加密对象的数据获取操作次数是否大于预设阈值次数;所述数据获取操作包括:查询、插入、更新以及删除;
②判断共享缓存区的使用率是否小于第一预设阈值;
③判断中央处理器的使用率是否小于第二预设阈值;
④判断磁盘的利用率是否大于第三预设阈值。
具体的,若所述加密对象的数据获取操作次数、共享缓存区的使用率、中央处理器的使用率以及磁盘的利用率均满足预设条件,则对所述加密对象进行预加载。
示例性的,根据中央处理器CPU的核数、主频等硬件参数判断加密对象在一段时间内的DML+select次数是否大于指定的阈值次数。当操作系统为X86时,预设阈值次数可以是30万次,为一般的国产操作系统时,预设阈值次数可以是3万次或5万次,具体的数值根据实际情况进行设置,此处不作具体限制。
其中,DML(数据操纵语言,Data Manipulation Language)是用于数据库操作,对数据库中的对象和数据运行访问工作的编程语句,通常是数据库专用编程语言之中的一个子集,例如,在信息软件产业通行标准的SQL语言中,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入(新增或创建)、更新(修改)与删除(销毁)。在使用数据库的系统开发过程中,其中应用程序必然会使用的指令;而加上SQL的SELECT语句,欧美地区的开发人员把这四种指令,以“CRUD”(分别为Create,Read,Update,Delete英文四前缀字母缩略的术语)来称呼;而亚洲地区使用汉语的开发人员,或可能以四个汉字:增、查、改、删来略称。
具体的,数据库的基本作用就是实现对数据的管理与查询。随之而来的就是大量的IO操作,在海量数据的情况下,数据库的性能问题有80%以上和IO有关。因此,优化ORACLE数据库的I/O性能一般有两个方面,一是减少处理时间,二是减少等待事件。
示例性的,加密对象的数据获取操作次数是否大于3万次,当前共享缓存区的使用率是否小于50%,当前CPU的使用率是否小于50%,当前IO的空闲时间是否大于50%,当以上条件都满足时,对加密对象进行预加载。
在一个实施例中,在将所述解密数据信息预加载到共享缓存区中之前,所述方法还包括:根据内存置换策略将内存页面置换属性设置为常驻。
具体的,对加密的表和表空间进行解密,将解密后的表和表空间存入内存缓冲区,再将表和表空间的内存置换属性设置为常驻。
其中,常驻是常驻内存的意思,常驻集是当前时刻正在运行的程序驻留在内存中的页面集合。如果说工作集体现了程序在运行过程中对页面访问的属性,是程序本身的固有属性;常驻集是操作系统和计算机系统给应用程序分配的物理页的空间的大小,以及采取的页面置换算法来决定将哪些页面放入内存。
另外,操作系统在程序运行时可以分配的常驻集的大小是不确定的,分配的物理页也不是越多越好,当物理页多到一定程度时,再增加常驻集的大小意义就不大,只要整体缺页次数少,缺页率较低,整体性能就高。
进而可以理解,通过内存置换策略将解密数据信息的内存页面置换属性设置为常驻,是为了减少解密后的页面被置换出共享缓存区的概率。
在一个实施例中,所述判断当前加密页面是否已加载到共享缓存区中,包括:若当前加密页面已加载到共享缓存区中,则对所述当前加密页面的下一个加密页面进行预加载处理。
具体的,对每一个加密对象,首先判断当前加密页面是否已加载到共享缓存区中,若当前加密页面已加载到共享缓存区中,则对当前加密页面的下一个加密页面进行预加载处理。
进一步,判断当前加密对象包含的页面是否已经全部加载到共享缓存区中,如果当前加密对象的每一个页面均已加载到共享缓存区中,则对下一个加密对象的加密页面进行预加载处理。
在一个实施例中,所述采用多线程处理方式对数据库的加密对象进行预加载,包括:根据加密对象的内存大小确定执行解密操作的线程数量。
示例性的,若磁盘有20G的加密数据需要进行预加载,可以设置 10个线程对加密页面进行解密处理,处理解密操作的线程数量可以根据实际应用情况进行设置,此处不作具体限制。
为了提高预加载的性能,引入多线程并发的机制,采用多线程处理方式对数据库的加密对象进行预加载,同时处理多个加密对象。
本公开实施例提供的针对加密数据的解密预加载方法,应用于数据库服务器,首先根据数据库资源使用情况动态调整预加载时机,然后采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,最后将解密数据信息存储到共享缓存区中。由于预加载时机包括数据库启动过程预加载和数据库运行过程预加载,能够根据资源使用情况动态调整预加载时机,且对数据库的加密对象进行预加载时采用多线程处理方式,同时解密预加载多个加密对象,进而能提高数据库的性能。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,针对加密数据的解密预加载装置,包括:
调整模块410,用于根据数据库资源使用情况动态调整预加载时机;所述预加载时机包括:数据库启动过程预加载以及数据库运行过程预加载;
预加载模块420,用于采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息;
存储模块430,用于将所述解密数据信息存储到共享缓存区中。
作为本公开实施例一种可选的实施方式,当所述预加载时机为数据库启动过程预加载时,所述预加载模块420包括:
第一获取单元,用于通过元数据获取数据库中的加密对象信息;所述加密对象信息包括:表空间加密信息、表加密信息;
第一解密单元,用于对所述加密对象信息进行解密,获取解密数据信息。
作为本公开实施例一种可选的实施方式,当所述预加载时机为数据库运行过程预加载时,所述预加载模块420包括:
第二获取单元,用于根据预设时间间隔周期性获取数据库加密对象的信息;
判断单元,用于针对每个加密对象,判断当前加密页面是否已加载到共享缓存区中;所述每个加密对象包括至少一个加密页面;
分析单元,用于若当前加密页面未加载到共享缓存区中,则判断是否满足预加载条件;
第二解密单元,用于若满足预加载条件,则对所述加密对象进行解密,获取解密数据信息。
作为本公开实施例一种可选的实施方式,所述分析单元具体用于:
判断在第一预设时间内,所述加密对象的数据获取操作次数是否大于预设阈值次数;所述数据获取操作包括:查询、插入、更新以及删除;
判断共享缓存区的使用率是否小于第一预设阈值;
判断中央处理器的使用率是否小于第二预设阈值;
判断磁盘的利用率是否大于第三预设阈值。
作为本公开实施例一种可选的实施方式,所述装置还包括:
设置单元,用于根据内存置换策略将内存页面置换属性设置为常驻。
作为本公开实施例一种可选的实施方式,所述判断单元还用于:
若当前加密页面已加载到共享缓存区中,则对所述当前加密页面的下一个加密页面进行预加载处理。
作为本公开实施例一种可选的实施方式,所述预加载单元具体用于:
根据加密对象的内存大小确定执行解密操作的线程数量。
本公开实施例提供的针对加密数据的解密预加载装置,应用于数据库服务器,首先根据数据库资源使用情况动态调整预加载时机,然后采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,最后将解密数据信息存储到共享缓存区中。由于预加载时机包括数据库启动过程预加载和数据库运行过程预加载,能够根据资源使用情况动态调整预加载时机,且对数据库的加密对象进行预加载时采用多线程处理方式,同时解密预加载多个加密对象,进而能提高数据库的性能。
本公开实施例还提供了一种电子设备,图5为本公开实施例提供的针对加密数据的解密预加载电子设备的结构示意图。如图5所示,本实施例提供的针对加密数据的解密预加载电子设备包括:存储器51 和处理器52,存储器51用于存储计算机程序;处理器52用于调用计算机程序时执行上述方法实施例提供的针对加密数据的解密预加载方法中任一实施例所执行的步骤。
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例提供的针对加密数据的解密预加载方法中任一实施例所执行的步骤。
处理器可以是中央判断单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存 (flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitorymedia),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种针对加密数据的解密预加载方法,其特征在于,所述方法包括:
根据数据库资源使用情况动态调整预加载时机;所述预加载时机包括:数据库启动过程预加载以及数据库运行过程预加载;
采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息;
将所述解密数据信息存储到共享缓存区中。
2.根据权利要求1所述的方法,其特征在于,当所述预加载时机为数据库启动过程预加载时,所述采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,包括:
通过元数据获取数据库中的加密对象信息;所述加密对象信息包括:表空间加密信息、表加密信息;
对所述加密对象信息进行解密,获取解密数据信息。
3.根据权利要求1所述的方法,其特征在于,当所述预加载时机为数据库运行过程预加载时,所述采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息,包括:
根据预设时间间隔周期性获取数据库加密对象的信息;
针对每个加密对象,判断当前加密页面是否已加载到共享缓存区中;所述每个加密对象包括至少一个加密页面;
若当前加密页面未加载到共享缓存区中,则判断是否满足预加载条件;
若满足预加载条件,则对所述加密对象进行解密,获取解密数据信息。
4.根据权利要求3所述方法,其特征在于,所述判断是否满足预加载条件,包括:
判断在第一预设时间内,所述加密对象的数据获取操作次数是否大于预设阈值次数;所述数据获取操作包括:查询、插入、更新以及删除;
判断共享缓存区的使用率是否小于第一预设阈值;
判断中央处理器的使用率是否小于第二预设阈值;
判断磁盘的利用率是否大于第三预设阈值。
5.根据权利要求1所述的方法,其特征在于,在将所述解密数据信息预加载到共享缓存区中之前,所述方法还包括:
根据内存置换策略将内存页面置换属性设置为常驻。
6.根据权利要求3所述的方法,其特征在于,所述判断当前加密页面是否已加载到共享缓存区中,包括:
若当前加密页面已加载到共享缓存区中,则对所述当前加密页面的下一个加密页面进行预加载处理。
7.根据权利要求1所述的方法,其特征在于,所述采用多线程处理方式对数据库的加密对象进行预加载,包括:
根据加密对象的内存大小确定执行解密操作的线程数量。
8.一种针对加密数据的解密预加载装置,其特征在于,包括:
调整模块,用于根据数据库资源使用情况动态调整预加载时机;所述预加载时机包括:数据库启动过程预加载以及数据库运行过程预加载;
预加载模块,用于采用多线程处理方式对数据库的加密对象进行预加载,获取解密数据信息;
存储模块,用于将所述解密数据信息存储到共享缓存区中。
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述针对加密数据的解密预加载方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现权利要求1至7任一项所述的针对加密数据的解密预加载方法。
CN202111600558.XA 2021-12-24 2021-12-24 针对加密数据的解密预加载方法及装置 Active CN114266058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111600558.XA CN114266058B (zh) 2021-12-24 2021-12-24 针对加密数据的解密预加载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111600558.XA CN114266058B (zh) 2021-12-24 2021-12-24 针对加密数据的解密预加载方法及装置

Publications (2)

Publication Number Publication Date
CN114266058A true CN114266058A (zh) 2022-04-01
CN114266058B CN114266058B (zh) 2024-09-13

Family

ID=80829900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111600558.XA Active CN114266058B (zh) 2021-12-24 2021-12-24 针对加密数据的解密预加载方法及装置

Country Status (1)

Country Link
CN (1) CN114266058B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214167A1 (en) * 2006-02-16 2007-09-13 Sushil Nair Method for fast bulk loading data into a database while bypassing exit routines
US20130212334A1 (en) * 2012-02-09 2013-08-15 Qualcomm Incorporated Determining Optimal Preload Distance at Runtime
CN103793249A (zh) * 2014-01-24 2014-05-14 北京航空航天大学 一种Java虚拟机中类库的多线程预加载方法
US20190121892A1 (en) * 2017-10-25 2019-04-25 International Business Machines Corporation Transparent analytical query accelerator over encrypted data
US20190188007A1 (en) * 2017-12-20 2019-06-20 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for Preloading Application, Storage Medium, and Terminal Device
CN110287432A (zh) * 2019-06-28 2019-09-27 北京金山安全软件有限公司 网络信息处理方法、装置和电子设备
CN110414217A (zh) * 2019-07-31 2019-11-05 广东小天才科技有限公司 应用程序的安全运行方法、装置、电子设备和存储介质
CN112148387A (zh) * 2020-10-14 2020-12-29 中国平安人寿保险股份有限公司 预加载反馈信息的方法、装置、计算机设备及存储介质
CN112433779A (zh) * 2020-11-10 2021-03-02 金蝶云科技有限公司 基于erp系统的应用站点预加载方法、设备和存储介质
US20210232429A1 (en) * 2018-10-15 2021-07-29 Huawei Technologies Co., Ltd. Method, apparatus, and terminal for accelerating cold startup of an application
CN113535664A (zh) * 2021-09-14 2021-10-22 深圳兆瑞优品科技有限公司 一种基于数据页预加载的数据库数据同步方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214167A1 (en) * 2006-02-16 2007-09-13 Sushil Nair Method for fast bulk loading data into a database while bypassing exit routines
US20130212334A1 (en) * 2012-02-09 2013-08-15 Qualcomm Incorporated Determining Optimal Preload Distance at Runtime
CN103793249A (zh) * 2014-01-24 2014-05-14 北京航空航天大学 一种Java虚拟机中类库的多线程预加载方法
US20190121892A1 (en) * 2017-10-25 2019-04-25 International Business Machines Corporation Transparent analytical query accelerator over encrypted data
US20190188007A1 (en) * 2017-12-20 2019-06-20 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for Preloading Application, Storage Medium, and Terminal Device
US20210232429A1 (en) * 2018-10-15 2021-07-29 Huawei Technologies Co., Ltd. Method, apparatus, and terminal for accelerating cold startup of an application
CN110287432A (zh) * 2019-06-28 2019-09-27 北京金山安全软件有限公司 网络信息处理方法、装置和电子设备
CN110414217A (zh) * 2019-07-31 2019-11-05 广东小天才科技有限公司 应用程序的安全运行方法、装置、电子设备和存储介质
CN112148387A (zh) * 2020-10-14 2020-12-29 中国平安人寿保险股份有限公司 预加载反馈信息的方法、装置、计算机设备及存储介质
CN112433779A (zh) * 2020-11-10 2021-03-02 金蝶云科技有限公司 基于erp系统的应用站点预加载方法、设备和存储介质
CN113535664A (zh) * 2021-09-14 2021-10-22 深圳兆瑞优品科技有限公司 一种基于数据页预加载的数据库数据同步方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李逸龙;张凯;何震瀛;王晓阳;: "基于GPU数据库系统的并发查询性能优化", 计算机应用与软件, no. 08, 12 August 2018 (2018-08-12) *
韦伟;冯佩;柯琦;林瑞;钟诚;: "多核机器上线程级并行加解密数据库数据方法", 广西科学院学报, no. 04, 15 November 2009 (2009-11-15) *

Also Published As

Publication number Publication date
CN114266058B (zh) 2024-09-13

Similar Documents

Publication Publication Date Title
Zhou et al. Spitfire: A three-tier buffer manager for volatile and non-volatile memory
US8725730B2 (en) Responding to a query in a data processing system
US20090210445A1 (en) Method and system for optimizing data access in a database using multi-class objects
CN102495857B (zh) 一种分布式数据库的负载均衡方法
US7512597B2 (en) Relational database architecture with dynamic load capability
Alabi et al. Fast k-selection algorithms for graphics processing units
US20230153455A1 (en) Query-based database redaction
US20170322997A1 (en) Method, Apparatus and Data Structure for Copying Values of a Table of a Database
Chandramouli et al. FASTER: an embedded concurrent key-value store for state management
CN114266058B (zh) 针对加密数据的解密预加载方法及装置
CN111221814B (zh) 二级索引的构建方法、装置及设备
US6963957B1 (en) Memory paging based on memory pressure and probability of use of pages
US20210248133A1 (en) Database management method and system, and electronic device
Sangat et al. Nimble join: A parallel star join for main memory column‐stores
Mitake et al. Looking into the Peak memory consumption of epoch-based reclamation in scalable in-memory database systems
Lu et al. A novel multi-stage forest-based key-value store for holistic performance improvement
Kim et al. Take me to SSD: a hybrid block-selection method on HDFS based on storage type
Begley et al. PaMeCo join: A parallel main memory compact hash join
Gemulla et al. Deferred maintenance of disk-based random samples
McClain et al. Caching support for range query processing on bitmap indices
CN114254043A (zh) 提升数据同步性能的方法及装置
Bach et al. Hybrid column/row-oriented DBMS
CN113486021B (zh) 分布式银行系统中确定账户日平均余额的方法及装置
US12124376B2 (en) Elastic columnar cache for cloud databases
US11789951B2 (en) Storage of data structures

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100102 201, 2 / F, 101, No. 5 building, No. 7 Rongda Road, Chaoyang District, Beijing

Patentee after: China Electronics Technology Group Jincang (Beijing) Technology Co.,Ltd.

Country or region after: China

Address before: 100102 201, 2 / F, 101, No. 5 building, No. 7 Rongda Road, Chaoyang District, Beijing

Patentee before: BEIJING KINGBASE INFORMATION TECHNOLOGIES Inc.

Country or region before: China