数据存储方法和装置.pdf

上传人:b*** 文档编号:6278200 上传时间:2019-05-28 格式:PDF 页数:14 大小:848.73KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610006693.4

申请日:

2016.01.04

公开号:

CN105631035A

公开日:

2016.06.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20160104|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京百度网讯科技有限公司

发明人:

孔智; 尹博学

地址:

100085 北京市海淀区上地十街10号百度大厦2层

优先权:

专利代理机构:

北京英赛嘉华知识产权代理有限责任公司 11204

代理人:

王达佐;马晓亚

PDF下载: PDF下载
内容摘要

本申请公开了数据存储方法和装置。该方法的一具体实施方式包括:响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值;若否,确定非压缩数据页中用于生成压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,生成压缩数据页。实现了预先生成压缩数据页,从而使得每一次将数据写入压缩数据页时,均可确保压缩数据页中具有足够的存储空间存储写入的数据,从而减轻将数据写入压缩数据页时的系统开销,进而提升系统的写入效率。

权利要求书

1.一种数据存储方法,其特征在于,所述方法包括:
响应于将待存储数据写入数据库的缓存存储区域中的压缩数据
页,判断所述压缩数据页中剩余的存储空间是否大于存储空间阈值,
其中,所述缓存存储区域包括:用于存储待存储数据的非压缩数据页
以及用于存储待存储数据对应的压缩数据的压缩数据页;
若否,确定所述非压缩数据页中用于生成压缩数据页的非压缩数
据页;
对所确定的非压缩数据页进行压缩,生成压缩数据页,以使得在
下一次将待存储数据写入压缩数据页时,利用生成的压缩数据页存储
待存储数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述压缩数据页中剩余的存储空间小于存储空间阈值时,从预
先创建的压缩线程中选取出用于对非压缩数据页进行压缩、生成压缩
数据页的压缩线程。
3.根据权利要求2所述的方法,其特征在于,所述确定所述非压
缩数据页中用于生成压缩数据页的非压缩数据页包括:
利用所述压缩线程接收压缩请求,所述压缩请求包括数据页标识;
当所述数据页标识存在于非压缩数据页链表中且所述数据页标识
对应的非压缩数据页未被压缩过时,将所述非压缩数据页确定为用于
生成压缩数据页的非压缩数据页,其中,所述非压缩数据页链表包括
多个节点,每一个节点对应一个所述非压缩数据页的数据页标识。
4.根据权利要求3所述的方法,其特征在于,在响应于将待存储
数据写入数据库的缓存存储区域中的压缩数据页之后,所述方法还包
括:
将所述待存储数据写入所述非压缩数据页中的预设非压缩数据
页。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收输入的存储空间设置指令;
设置非压缩数据页与压缩数据页的存储空间的大小。
6.一种数据存储装置,其特征在于,所述装置包括:
响应单元,配置用于响应于将待存储数据写入数据库的缓存存储
区域中的压缩数据页,判断所述压缩数据页中剩余的存储空间是否大
于存储空间阈值,其中,所述缓存存储区域包括:用于存储待存储数
据的非压缩数据页以及用于存储待存储数据对应的压缩数据的压缩数
据页;
确定单元,配置用于当压缩数据页中剩余的存储空间小于存储空
间阈值,确定所述非压缩数据页中用于生成压缩数据页的非压缩数据
页;
压缩单元,配置用于对所确定的非压缩数据页进行压缩,生成压
缩数据页,以使得在下一次将待存储数据写入压缩数据页时,利用生
成的压缩数据页存储待存储数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
选取单元,配置用于当所述压缩数据页中剩余的存储空间小于存
储空间阈值时,从预先创建的压缩线程中选取出用于对非压缩数据页
进行压缩、生成压缩数据页的压缩线程。
8.根据权利要求7所述的装置,其特征在于,所述确定单元包括:
压缩请求接收子单元,配置用于利用所述压缩线程接收压缩请求,
所述压缩请求包括数据页标识;
非压缩数据页确定子单元,配置用于当所述数据页标识存在于非
压缩数据页链表中且所述数据页标识对应的非压缩数据页未被压缩过
时,将所述非压缩数据页确定为用于生成压缩数据页的非压缩数据页,
其中,所述非压缩数据页链表包括多个节点,每一个节点对应一个所
述非压缩数据页的数据页标识。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
写入单元,配置用于在响应于将待存储数据写入数据库的缓存存
储区域中的压缩数据页之后,将所述待存储数据写入所述非压缩数据
页中的预设非压缩数据页。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
指令接收单元,配置用于接收输入的存储空间设置指令;
设置单元,配置用于设置非压缩数据页与压缩数据页的存储空间的
大小。

说明书

数据存储方法和装置

技术领域

本申请涉及计算机领域,具体涉及数据库领域,尤其涉及数据存
储方法和装置。

背景技术

在对数据库的访问中,通常将访问频次较高的热数据存储在数据
库的缓存存储区域中。同时,可以将热数据进行压缩后存储在缓存存
储区域的压缩数据页中,使得缓存存储区域中存储更多的热数据,进
一步提升对热数据的命中率。目前,通常采用的方式为:直接向压缩
数据页中写入数据,在压缩数据页上剩余的存储空间不足时,才对非
压缩数据页进行压缩生成新的压缩数据页。

然而,当采用上述方式将数据写入压缩数据页时,一方面,因对
非压缩数据页进行压缩生成新的压缩数据页,造成将热数据写入压缩
数据页的线程被挂起,增加系统开销。另一方面,当生成新的压缩数
据页失败时,会引起页面分裂,因页面分裂需要对描述数据页之间的
关系的数据结构进行加锁操作,造成并发等待的问题,进一步增加系
统开销。

发明内容

本申请提供了数据存储方法和装置,用于解决上述背景技术部分
存在的技术问题。

第一方面,本申请提供了数据存储方法,该方法包括:响应于将
待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数
据页中剩余的存储空间是否大于存储空间阈值,其中,缓存存储区域
包括:用于存储待存储数据的非压缩数据页以及用于存储待存储数据
对应的压缩数据的压缩数据页;若否,确定非压缩数据页中用于生成
压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,生
成压缩数据页,以使得在下一次将待存储数据写入压缩数据页时,利
用生成的压缩数据页存储待存储数据。

第二方面,本申请提供了数据存储装置,该装置包括:响应单元,
配置用于响应于将待存储数据写入数据库的缓存存储区域中的压缩数
据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值,其
中,缓存存储区域包括:用于存储待存储数据的非压缩数据页以及用
于存储待存储数据对应的压缩数据的压缩数据页;确定单元,配置用
于当压缩数据页中剩余的存储空间小于存储空间阈值,确定非压缩数
据页中用于生成压缩数据页的非压缩数据页;压缩单元,配置用于对
所确定的非压缩数据页进行压缩,生成压缩数据页,以使得在下一次
将待存储数据写入压缩数据页时,利用生成的压缩数据页存储待存储
数据。

本申请提供的数据存储方法和装置,通过响应于将待存储数据写
入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的
存储空间是否大于存储空间阈值;若否,确定非压缩数据页中用于生
成压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,
生成压缩数据页,以使得在下一次将待存储数据写入压缩数据页时,
利用生成的压缩数据页存储待存储数据。实现了预先生成压缩数据页,
从而使得每一次将数据写入压缩数据页时,均可确保压缩数据页中具
有足够的存储空间存储写入的数据,从而减轻将数据写入压缩数据页
时的系统开销,进而提升系统的写入效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描
述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2示出了根据本申请的数据存储方法的一个实施例的流程图;

图3示出了利用空闲压缩线程进行压缩的原理图;

图4示出了对非压缩数据页进行压缩的流程图;

图5示出了根据本申请的数据存储装置的一个实施例的结构示意
图;

图6是适于用来实现本申请实施例的终端设备或服务器的计算机
系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解
的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发
明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与
有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例
中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本
申请。

图1示出了可以应用本申请的数据存储方法或数据存储装置的实
施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102、103,
网络104和服务器105。网络104用以在终端设备101、102、103和
服务器105之间提供传输链路的介质。网络104可以包括各种连接类
型,例如有线、无线传输链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105
交互,以接收或发送消息等。终端设备101、102、103上可以安装有
各种通讯应用,例如网络安全类应用、即时通信工具等。

终端设备101、102、103可以是具有显示屏并且支持网络通信的
各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、
MP3播放器(MovingPictureExpertsGroupAudioLayerIII,动态影像专
家压缩标准音频层面3)、MP4(MovingPictureExpertsGroupAudio
LayerIV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计
算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对终端设备101、
102、103上的应用提供数据访问支持的服务器。服务器可以对接收到
的数据访问请求进行处理,并将处理结果(例如数据库中的数据)反
馈给终端设备。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意
性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

请参考图2,其示出了根据本申请的数据存储方法的一个实施例
的流程200。需要说明的是,本申请实施例所提供的数据存储方法一
般由图1中的服务器105执行,相应地,数据存储装置一般设置于服
务器105中。该方法包括以下步骤:

步骤201,响应于将待存储数据写入数据库的缓存存储区域中的
压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈
值。

在本实施例中,缓存存储区域包括:用于存储待存储数据的非压
缩数据页以及用于存储待存储数据对应的压缩数据的压缩数据页。该
缓存存储区域可以为在对数据库的访问过程中,用于存储用户频繁访
问的数据(也可称之为热数据)的存储区域,也可将该缓存存储区域
称之为bufferpool。在本实施例中,由于在每一次存储数据,即将数
据写入数据表中时,是以记录为单位进行写入的。因此,存储空间阈
值的大小可以为当前写入到数据表中占用的存储空间最大的记录所占
用的存储空间。

在本实施例中,压缩数据页中的数据可以包括:压缩数据以及以
追加写方式写入的非压缩的mlog。下面首先说明在bufferpool中设置
压缩数据页的原理:为了提升对在bufferpool中的热数据的命中概率,
即通过一次读取操作读取出bufferpool中的热数据的概率,可以将
bufferpool划分为用于存储对待存储数据进行压缩之后生成的压缩数
据的压缩数据页以及非压缩数据页。从而,可以将热数据进行压缩后
存储在压缩数据页中,使得bufferpool中可以缓存更多的热数据,提
升热数据的命中概率。在对经压缩后的热数据进行读取时,可以进行
解压缩操作,得到解压缩后的热数据。在本实施例中,可以将最近访
问的数据存储在非压缩数据页中,同时,可以将除最近访问的数据以
外的数据存储于压缩数据页中,从而在bufferpool中存储更多的热数
据,提升对热数据的命中概率。

在本实施例中,可以预先分别创建压缩数据页链表和非压缩数据
页链表,利用压缩数据页链表和非压缩数据页链表分别管理压缩数据
页与非压缩数据页。压缩数据页链表和非压缩数据页链表均可以采用
LRU(LeastRecentlyUsed)链表实现。以压缩数据页链表为例,链表
中的每一个节点对应一个压缩数据页,节点中可以记录指示该压缩数
据页之前的压缩数据页的存储地址的指针、该压缩数据页之后的压缩
数据页的存储地址的指针、压缩数据页的实际物理地址。

在本实施例的一些可选的实现方式中,还包括:接收输入的存储
空间设置指令;设置非压缩数据页与压缩数据页的存储空间的大小。
在本实施例中,可以对压缩数据页与非压缩数据页占据的存储空间大
小进行设置。例如,将非压缩数据页的大小设置为16KB,也可将该
压缩数据页称之为普通非压缩数据页。假设普通非压缩数据页的大小
为16KB,bufferpool中存储20个非压缩数据页,在压缩的情况下,
当压缩数据页的大小为8KB时,则bufferpool中可以存储38个数据
页,其中,包含1个非压缩数据页和37个压缩数据页,该非压缩数据
页为非压缩数据页链表中的非压缩数据页,其占用的存储空间可以相
当于1.5个普通非压缩数据页。因此,在缓存存储区域的大小相同的
情况下,通过压缩增加了数据页的数量,提升对热数据的命中概率。

步骤202,若否,确定非压缩数据页中用于生成压缩数据页的非
压缩数据页。

在本实施例中,当判断出压缩数据页中剩余的存储空间小于存储
空间阈值时,可以进一步确定出非压缩数据页中用于生成压缩数据页
的非压缩数据页。

在本实施例的一些可选的实现方式中,当压缩数据页中剩余的存
储空间小于存储空间阈值时,从预先创建的压缩线程中选取出用于对
非压缩数据页进行压缩、生成压缩数据页的压缩线程。

在本实施例中,可以预先创建多个压缩线程,当压缩数据页中剩
余的存储空间小于存储空间阈值时,从预先创建的压缩线程中选取出
空闲的压缩线程。然后,利用空闲的压缩线程对非压缩数据页进行压
缩,生成压缩数据页。

请参考图3,其示出了利用空闲压缩线程进行压缩的原理图。

在图3中,示出了用于将数据写入压缩数据页的线程用户线程和
用于对非压缩数据页进行压缩的异步压缩线程。用户线程在将数据写
入压缩数据页之后,即insert操作完成之后,可以判断压缩数据页的
剩余存储空间即mlog空间是否大于存储空间阈值即max_rec_size。
max_rec_size可以为当前写入到数据表中占用的存储空间最大的记录
所占用的存储空间。当判断出压缩数据页的剩余存储空间小于存储空
间阈值,例如,小于当前写入到数据表中占用的存储空间最大的记录
所占用的存储空间时,则可以查找是否存在空闲的压缩线程。当确定
存在空闲的压缩线程时,可以发出信号唤醒空闲的压缩线程。同时,
可以向压缩线程提交spaceid参数与pageid参数。spaceid参数可以为
一个数据库文件的标识,pageid参数可以用于表示在数据库文件中以
数据页为单位的偏移。从而,使得空闲的压缩线程可以基于spaceid
参数与pageid参数,查找用于生成压缩数据页的非压缩数据页。

在本实施例的一些可选的实现方式中,确定非压缩数据页中用于
生成压缩数据页的非压缩数据页包括:利用压缩线程接收压缩请求,
压缩请求包括数据页标识;当数据页标识存在于非压缩数据页链表中
且数据页标识对应的非压缩数据页未被压缩过时,将非压缩数据页确
定为用于生成压缩数据页的非压缩数据页,其中,非压缩数据页链表
包括多个节点,每一个节点对应一个非压缩数据页的数据页标识。

请参考图4,其示出了对非压缩数据页进行压缩的流程图。

步骤401:利用空闲的压缩线程接收用户线程提交的spaceid参数
与pageid参数。spaceid参数可以为一个数据库文件的标识,pageid参
数可以用于表示在数据库文件中以数据页为单位的偏移。可以基于
spaceid参数和pageid参数,生成bufferpool中的哈希表bufferpoolhash
的键值即key,在bufferpoolhash中,与该键值对应的value可以为指
示非压缩数据页的存储位置的指针。从而,可以进一步查找出buffer
poolhash中是否存在key对应的非压缩数据页。

步骤402:判断是否未查找到或是哨兵页。

步骤403:当查找到上述非压缩数据页以及该非压缩数据页不是
哨兵页时,判断该非压缩数据页是否在bufferpool中的非压缩数据页
链表即unzip_lru链表中,并且未被压缩过。

步骤404:当确定非压缩数据页在bufferpool中的非压缩数据页
链表中并且未被压缩过时,可以从该非压缩数据页的页头中获取Index
id参数和height参数,获取Index的定义和height参数,可以利用Index
id参数获取Index的定义,利用height参数判断是否为叶子节点。

步骤405:判断Index是否存在,即Index的定义是否在cache中。

步骤406:当Index存在时,进行加锁操作,并且由于在数据库中,
所有数据页之间的关系可以采用btree数据结构进行表示,因此,在处
理btree的中间节点时需要对整个btree进行加锁操作。

步骤407:再次判断是否需要压缩,即判断从查找到该非压缩数
据页至当前时间的时间段内,是否被别的压缩线程处理过。

步骤408:当判断出需要进行压缩时,对该非压缩数据页进行压
缩生成压缩数据页。

步骤203,对所确定的非压缩数据页进行压缩,生成压缩数据页。

在本实施例中,当确定出用于生成压缩数据页的非压缩数据页之
后,可以对该非压缩数据页进行压缩,生成压缩数据页。

在本实施例的一些可选的实现方式中,在响应于将待存储数据写
入数据库的缓存存储区域中的压缩数据页之后,还包括:将待存储数
据写入非压缩数据页中的预设非压缩数据页。

在本实施例中,在将数据写入压缩数据页成功后,可以将数据写
入到对应的非压缩数据页中,该非压缩数据页可以为非压缩数据页链
表中的预先选取的一个非压缩数据页。从而在对该数据进行读取时,
无需进行解压缩操作。

下面说明本实施例中的将数据写入压缩数据页的方式与现有技术
的区别:在现有技术中,只有在压缩数据页中剩余的存储空间不够写
入一条记录时,才对非压缩数据页进行压缩生成新的压缩数据页。一
方面,因需要对非压缩数据页进行压缩生成新的压缩数据页,造成将
数据写入压缩数据页的线程被挂起,从而增加系统开销。另一方面,
当生成新的压缩数据页失败时,会引起页面分裂,因页面分裂需要对
描述数据页之间的关系的数据结构进行加锁操作,造成并发等待的问
题,进一步增加系统开销,降低整个系统的写入效率。而在本实施例
中,为了防止无法直接在压缩数据页中写入数据,即压缩数据页中无
法提供足够的空间存储写入的数据,可以预先对非压缩数据页进行压
缩。这样,在每一次将数据写入压缩数据页时,均可以确保压缩数据
页中有足够的空间来存储写入的数据。从而减轻了将数据写入压缩数
据页时的系统开销,进而提升系统的写入效率。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供
了一种数据存储装置的一个实施例,该装置实施例与图2所示的方法
实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的数据存储装置500包括:响应单元501,
确定单元502,压缩单元503。其中,响应单元501配置用于响应于将
待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数
据页中剩余的存储空间是否大于存储空间阈值,其中,缓存存储区域
包括:用于存储待存储数据的非压缩数据页以及用于存储待存储数据
对应的压缩数据的压缩数据页;确定单元502配置用于当压缩数据页
中剩余的存储空间小于存储空间阈值,确定非压缩数据页中用于生成
压缩数据页的非压缩数据页;压缩单元503配置用于对所确定的非压
缩数据页进行压缩,生成压缩数据页,以使得在下一次将待存储数据
写入压缩数据页时,利用生成的压缩数据页存储待存储数据。

在本实施例中,响应单元501可以响应于将待存储数据写入数据
库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空
间是否大于存储空间阈值。缓存存储区域可以为在对数据库的访问过
程中,用于存储热数据的存储空间。存储空间阈值的大小可以为一张
数据表中写入的最长的记录的长度。

在本实施例中,当压缩数据页中剩余的存储空间小于存储空间阈
值时,确定单元502可以确定非压缩数据页中用于生成压缩数据页的
非压缩数据页。

在本实施例中,在通过确定单元502确定了用于生成压缩数据页
的非压缩数据页之后,压缩单元503可以对所确定的非压缩数据页进
行压缩,生成压缩数据页。

在本实施例的一些可选的实现方式中,装置500还包括:选取单
元(未示出),配置用于当压缩数据页中剩余的存储空间小于存储空
间阈值时,从预先创建的压缩线程中选取出用于对非压缩数据页进行
压缩、生成压缩数据页的压缩线程。

在本实施例的一些可选的实现方式中,确定单元502包括:压缩
请求接收子单元(未示出),配置用于利用压缩线程接收压缩请求,
压缩请求包括数据页标识;非压缩数据页确定子单元(未示出),配
置用于当数据页标识存在于非压缩数据页链表中且数据页标识对应的
非压缩数据页未被压缩过时,将非压缩数据页确定为用于生成压缩数
据页的非压缩数据页,其中,非压缩数据页链表包括多个节点,每一
个节点可以对应一个非压缩数据页的数据页标识。

在本实施例的一些可选的实现方式中,装置500还包括:写入子
单元(未示出),配置用于在响应于将待存储数据写入数据库的缓存
存储区域中的压缩数据页之后,将待存储数据写入非压缩数据页中的
预设非压缩数据页。

在本实施例的一些可选的实现方式中,装置500还包括:指令接收
单元(未示出),配置用于接收输入的存储空间设置指令;设置单元
(未示出),配置用于设置非压缩数据页与压缩数据页的存储空间的
大小。

本领域技术人员可以理解,上述数据存储装置500还包括一些其
他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实
施例,这些公知的结构在图5中未示出。

图6示出了适于用来实现本申请实施例的终端设备或服务器的计
算机系统的结构示意图。

如图6所示,计算机系统600包括中央处理单元(CPU)601,其
可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608
加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作
和处理。在RAM603中,还存储有系统600操作所需的各种程序和数
据。CPU601、ROM602以及RAM603通过总线604彼此相连。输入
/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;
包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等
的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、
调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如
因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口
605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,
根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据
需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以
被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程
序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计
算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施
例中,该计算机程序可以通过通信部分609从网络上被下载和安装,
和/或从可拆卸介质611被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、
方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点
上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码
的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于
实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的
实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发
生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们
有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的
是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的
组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,
或者可以用专用硬件与计算机指令的组合来实现。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,
该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的
非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非
易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或
者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述
设备:响应于将待存储数据写入数据库的缓存存储区域中的压缩数据
页,判断所述压缩数据页中剩余的存储空间是否大于存储空间阈值,
其中,所述缓存存储区域包括:用于存储待存储数据的非压缩数据页
以及用于存储待存储数据对应的压缩数据的压缩数据页;若否,确定
所述非压缩数据页中用于生成压缩数据页的非压缩数据页;对所确定
的非压缩数据页进行压缩,生成压缩数据页,以使得在下一次将待存
储数据写入压缩数据页时,利用生成的压缩数据页存储待存储数据。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说
明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限
于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离
所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合
而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)
具有类似功能的技术特征进行互相替换而形成的技术方案。

数据存储方法和装置.pdf_第1页
第1页 / 共14页
数据存储方法和装置.pdf_第2页
第2页 / 共14页
数据存储方法和装置.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《数据存储方法和装置.pdf》由会员分享,可在线阅读,更多相关《数据存储方法和装置.pdf(14页珍藏版)》请在专利查询网上搜索。

本申请公开了数据存储方法和装置。该方法的一具体实施方式包括:响应于将待存储数据写入数据库的缓存存储区域中的压缩数据页,判断压缩数据页中剩余的存储空间是否大于存储空间阈值;若否,确定非压缩数据页中用于生成压缩数据页的非压缩数据页;对所确定的非压缩数据页进行压缩,生成压缩数据页。实现了预先生成压缩数据页,从而使得每一次将数据写入压缩数据页时,均可确保压缩数据页中具有足够的存储空间存储写入的数据,从而减。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1