存储器中数据库的选择性数据压缩制造技术

技术编号:38721258 阅读:6 留言:0更新日期:2023-09-08 23:16
本发明专利技术涉及存储器中数据库的选择性数据压缩。提供了一种技术,该技术用于以一种格式持久性维护数据,但使该数据以多于一种的格式可用于数据库服务器。可以在易失性存储器中专门维护处于独立于盘格式的格式中的数据,以减少与保持数据与数据的盘上格式拷贝同步相关联的开销。选择要在易失性存储器中被维护的数据可以基于各种因素。一旦被选择,该数据也可以被压缩以节省易失性存储器中的空间。压缩级别可以取决于针对选定数据被评估的一个或多个因素。可以周期性地对数据的压缩级别和选择的因素进行评估,并且基于该评估,可以从易失性存储器中移除选定数据或者相应地改变选定数据的压缩级别。数据的压缩级别。数据的压缩级别。

【技术实现步骤摘要】
存储器中数据库的选择性数据压缩
[0001]本申请是国际申请日为2016年6月30日、国家申请号为201680057698.8、专利技术名称为“存储器中数据库的选择性数据压缩”的进入中国国家阶段的PCT申请的分案申请。


[0002]本专利技术涉及数据库系统,并且更具体地涉及存储器中(in

memory)数据库的选择性数据压缩。

技术介绍

[0003]鉴于易失性存储器(有时也称为“主存储器”)正在变得越来越便宜并且越来越大,可以将更多数据从盘存储装置高速缓存到易失性存储器。这种高速缓存使得可更快地访问数据,并且对于使用数据的应用而言,允许以更快速的方式来执行工作。
[0004]但是,使数据在易失性存储器中可访问仍然存在许多挑战。首先,通常由应用使用的数据量也显著增加。特别地,为了在易失性存储器中完全高速缓存较大量数据(俗称“大数据”),将需要极大量的易失性存储器。因此,不管易失性存储器的大小如何,仍然可能存在不能同时被高速缓存在易失性存储器中的数据(并且在一些情况下是数据的重要部分)。将根据需要从盘存储装置中访问这些数据并将这些数据加载到高速缓存中(替换高速缓存中的其它数据)。
[0005]当数据库系统需要对非高速缓存的数据执行操作时,需要首先将盘存储装置中的数据从盘存储装置读取到数据库系统的易失性存储器中。一旦加载到易失性存储器中,数据库系统就可以对数据执行操作。但是,与获得已驻留在易失性存储器中的数据相比,从盘存储装置读取数据通常会导致显著的性能损失。因此,当数据库系统需要对非高速缓存数据执行操作时,数据库系统无法从数据库系统具有大量易失性存储器的事实中经历显著的性能效益。
[0006]将更多数据适配到易失性存储器上的一种方法是在将数据存储到易失性存储器之前压缩数据。一旦数据被压缩,该数据将被重新调整大小以在易失性存储器中占用更少的空间。但是,并非所有数据都可以被显著压缩。此外,如果频繁地访问压缩后的数据用于操作,则将需要频繁地解压缩数据以便使用。这种频繁的解压缩使用本来可能用于数据操作的计算资源,从而减慢了数据操作并因此减慢了请求数据操作的应用。因此,在易失性存储器中高速缓存的数据的无差别数据压缩具有明显的缺点。
[0007]此外,无论在什么级别的压缩数据被复制到易失性存储器中,在某个时刻,数据库系统仍将用尽易失性存储器中的空间来存储更多的数据。因此,当易失性存储器处于满负荷状态并且数据库系统需要对仅存储在盘存储装置上的数据执行操作时,已经在易失性存储器中的一些数据将需要被替换以便为来自盘存储装置的数据腾出空间。这种替换越频繁,越多的计算资源浪费在将数据移入和移出易失性存储器上。因此,使数据替换的频率最小化将有助于数据库系统的高效性能。
[0008]本部分中描述的方法是可以实行的方法,但不一定是先前已被构思或实行的方
法。因此,除非另外指出,否则不应当假定在本部分中描述的任何方法仅仅凭其被包括在本部分中就有资格作为现有技术。
附图说明
[0009]在附图中:
[0010]图1是根据实施例的同时维护在易失性存储器中的镜像格式数据和在持久性存储装置上的持久性格式数据的数据库系统的框图;
[0011]图2A是用于示例的表的框图;
[0012]图2B是根据实施例的如何可以同时以两种格式进行维护的表的数据项的框图,其中一种格式是存储器中格式;
[0013]图3A是图示根据一个或多个实施例的用于选择用于镜像的候选数据部分的处理的框图;
[0014]图3B是图示根据一个或多个实施例的用于指定用于从易失性存储器中移除的镜像数据部分的处理的框图;
[0015]图4是根据一个或多个实施例的描绘用于选择针对选定部分的压缩级别的处理的框图;以及
[0016]图5是图示可以用于实现本文所描述的技术的计算机系统的框图。
具体实施方式
[0017]在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本专利技术的透彻理解。但是,可以在没有这些具体细节的情况下实践本专利技术将是显然的。在其它情况下,以框图的形式示出众所周知的结构和设备以避免不必要地模糊本专利技术。
[0018]总体概述
[0019]不同数据格式具有不同的好处。因此,本文所描述的技术用于以一种格式持久性地维护数据,但是使该数据以多于一种的格式对数据库服务器可用。在一个实施例中,使数据可用于查询处理的一种格式是基于盘上(on

disk)格式,而使数据可用于查询处理的另一种格式是独立于盘上格式的。
[0020]与盘上格式对应的格式在本文被称为“持久性格式”或“PF”。持久性格式中的数据在本文被称为PF数据。独立于盘上格式的存储器中格式被称为“镜像格式”或“MF”。镜像格式中的数据在本文被称为MF数据。关于利用MF数据和PF数据的数据库系统的更多细节在本文称为“镜像数据应用(Mirroring Data Application)”的于2014年7月21日提交的美国专利申请14/337,179“Mirroring,In Memory,Data From Disk To Improve Query Performance”中进行描述,该专利申请的全部内容通过该引用并入本文。
[0021]根据一个实施例,镜像格式完全独立于持久性格式。但是,基于持久存储的PF数据而非基于任何持久性MF结构在易失性存储器中初始地构建MF数据。由于不需要持久性MF结构,因此现有数据库的用户不需要将其现有数据库中的数据或结构迁移到另一种格式。因此,使用盘块中的非压缩数据的常规数据库系统可以在不执行任何数据迁移的情况下继续使用这些盘块来持久存储数据库系统的数据,同时仍然获得由于具有在较快的易失性存储器中可用的数据的压缩表示而产生的存储器空间益处。
[0022]MF数据对已经存在于PF数据中的数据进行镜像。但是,虽然在MF数据中的所有项都是在PF数据中的对应项的镜像版本(尽管以不同的格式被组织),并非在PF数据中的所有项都需要在MF数据中被镜像。因此,MF数据可以是PF数据的子集。
[0023]由于并非所有PF数据都必须在MF数据中被镜像,因此使用选择标准来自动选择要从PF数据被镜像到MF数据中的数据部分,诸如列。在实施例中,关于PF数据中的数据部分的各种因素被用来确定要对PF数据的哪些数据部分进行镜像。例如,如果表具有列A、B和C,并且列A具有最频繁的读取访问,则列A可以被选择用于从PF数据镜像到MF数据中。在这个示例中,使用列A的查询可以看到性能的提升,因为对在易失性存储器中的MF数据的访问比对在非易失性存储器中的PF数据的访问更快。除了考虑数据部分的访问统计值(诸如以上示例)之外,还可以考虑其它因素,诸如数据部分的数据统计值、操作统计值和数据类型。
[0024]即使在查询可能需要只能由PF数据满足的数据的情况下,MF数据仍然可以用于(a)满足查询的一部分,和/或(b)加快从PF数据中对所需数据的检索。例如,MF数据可以用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实现的方法,包括:由数据库服务器维护持久性存储装置上的数据库;其中所述数据库包括已经被指定为有资格在易失性存储器内用于镜像的数据部分;由数据库服务器执行对与所述数据部分相关的一个或多个因素的评估;基于所述评估,生成与所述数据部分对应的资格数据;其中所述资格数据(a)反映使所述数据部分在所述易失性存储器中被镜像的估计益处,以及(b)由所述数据库服务器基于所述一个或多个因素来确定;基于所述资格数据,自动地改变所述数据部分的镜像状态;其中自动地改变所述数据部分的镜像状态包括以下中的一个:当所述数据部分当前未在所述易失性存储器中被镜像时,使得所述数据部分在所述易失性存储器内被镜像,或者当所述数据部分当前在所述易失性存储器中被镜像时,使得所述数据部分从所述易失性存储器中被移除。2.如权利要求1所述的方法,还包括:由所述数据库服务器周期性地或基于以下中的一个或多个来执行对与所述数据部分相关的所述一个或多个因素的一个或多个评估:a)达到用户指定的时间,b)达到由所述数据库服务器基于系统统计值确定的时间,或c)一个或多个用户指定的触发器,其中所述一个或多个用户指定的触发器包括以下中的一个或多个:易失性存储器中的空间的可用性或者数据库服务器的统计值跨越一个或多个阈值;基于所述一个或多个评估,生成与所述数据部分对应的新的资格数据;基于所述新的资格数据,自动地改变所述数据部分的镜像状态;其中自动地改变所述数据部分的镜像状态包括以下中的一个:当所述数据部分当前未在所述易失性存储器中被镜像时,使得所述数据部分在所述易失性存储器内被镜像,或者当所述数据部分当前在所述易失性存储器中被镜像时,使得所述数据部分从所述易失性存储器中被移除。3.如权利要求1所述的方法,其中所述数据库包括已经被指定为有资格在易失性存储器内用于镜像的第二数据部分,其中所述数据部分是第一数据部分,所述镜像状态是第一镜像状态,并且所述资格数据是第一资格数据,并且所述方法还包括:存储与所述第二数据部分对应的第二资格数据,其中所述第二资格数据反映使所述第二数据部分在所述易失性存储器中被镜像的估计益处;其中第二资格数据由所述数据库服务器基于所述一个或多个因素来确定;基于第二资格数据,自动地改变第二数据部分的第二镜像状态;其中自动地改变第二数据部分的第二镜像状态包括以下中的一个:当所述数据部分当前未在所述易失性存储器中被镜像时,使得所述数据部分在所述易失性存储器内被镜像,或者
当所述数据部分当前在所述易失性存储器中被镜像时,使得所述数据部分从所述易失性存储器中被移除。4.如权利要求3所述的方法,还包括:由所述数据库服务器周期性地或基于以下中的一个或多个来执行对与第一数据部分和第二数据部分相关的所述一个或多个因素的评估:a)达到用户指定的时间,b)达到由所述数据库服务器基于系统统计值确定的时间,或c)一个或多个用户指定的触发器,其中所述一个或多个用户指定的触发器包括以下中的一个或多个:易失性存储器中的空间的可用性或者数据库服务器的统计值跨越一个或多个阈值;基于所述一个或多个评估,生成分别与第一数据部分和第二数据部分对应的新的第一资格数据和新的第二资格数据;基于所述新的第一资格数据和新的第二资格数据,自动地改变第一数据部分的第一镜像状态或第二数据部分的第二镜像状态;其中自动地改变第一数据部分的第一镜像状态或第二数据部分的第二镜像状态包括以下中的一个:当第一数据部分或第二数据部分当前未在所述易失性存储器中被镜像时,使得第一数据部分或第二数据部分在所述易失性存储器内被镜像,或者当第一数据部分或第二数据部分当前在所述易失性存储器中被镜像时,使得所述数据部分从所述易失性存储器中被移除。5.如权利要求1所述的方法,其中所述一个或多个因素包括以下中的至少一个:与所述数据部分相关联的访问统计值,所述数据部分的数据类型,与所述数据部分相关联的操作统计值,或者与所述数据部分相关联的数据统计值。6.如权利要求1所述的方法,其中所述一个或多个因素包括与所述数据部分相关联的访问统计值;其中与所述数据部分相关联的所述访问统计值包括所述数据部分的热图统计值;其中所述评估包括评估所述数据部分的热图统计值;以及所述方法还包括:如果所述热图统计值指示对所述数据部分的频繁读取访问,则修改所述资格数据以增加所述数据部分将被加载到所述易失性存储器中的可能性;如果...

【专利技术属性】
技术研发人员:C
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1