存储数据的方法和装置制造方法及图纸

技术编号:15704688 阅读:202 留言:0更新日期:2017-06-26 09:04
本申请公开了存储数据的方法和装置。该方法的一具体实施方式包括:获取待存储的键值对数据;将上述键值对数据存储在磁盘的预写日志文件中;根据上述键值对数据在磁盘中的存储位置以及该键值对数据中的键在内存中为该键值对数据生成索引项,以通过该索引项对该键值对数据执行预定操作,在检测到满足合并整理条件的预写日志文件时,根据索引将该满足预定条件的预写日志文件中保留的键值对数据追加写入磁盘中,其中,存储位置包括以下至少一项:预写日志文件的文件名、键值对数据在预写日志文件中与文件起始位置的偏移量。该实施方式可以减小写入放大问题,提高存储数据的有效性。

【技术实现步骤摘要】
存储数据的方法和装置
本申请涉及计算机
,具体涉及数据处理领域,尤其涉及存储数据的方法和装置。
技术介绍
写入放大(Writeamplification,简称WA)是闪存和固态硬盘(SSD)中实际写入的物理信息量是将要写入的逻辑数量的多倍的现象。这是因为闪存在可重新写入数据前必须先擦除,执行这些操作的过程就产生了一次以上的用户数据和元数据的移动(或重新写入),导致物理信息量倍增,并增加请求写入的次数。作为电子平台上开发程序或系统的核心组件,引擎可供开发者迅速生成、铺设程序所需的功能,或利用其辅助程序的运转。现有的引擎架构一般包括三个部分:日志模块、索引模块和存储模块,日志模块保存与内存一致的数据,从日志模块中保存入存储模块的数据在日志模块中被清除。在数据被从日志模块中保存入存储模块时,需要对数据进行过滤冗余处理,通过索引模块从日志模块中读出键值对,清除重复的键或者被删除的键值,之后,将保留的键值写入存储模块。这种读、写过程存在写入放大问题,从而导致盘片需求量增大,存储数据的有效性不高。
技术实现思路
本申请的目的在于提出一种改进的存储数据的方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请实施例提供了一种存储数据的方法,该方法包括:获取待存储的键值对数据;将上述键值对数据存储在磁盘的预写日志文件中;根据上述键值对数据在磁盘中的存储位置以及该键值对数据中的键在内存中为该键值对数据生成索引项,以通过该索引项对该键值对数据执行预定操作,在检测到满足合并整理条件的预写日志文件时,根据索引将该满足预定条件的预写日志文件中保留的键值对数据追加写入磁盘中,其中,存储位置包括以下至少一项:预写日志文件的文件名、键值对数据在预写日志文件中与文件起始位置的偏移量。在一些实施例中,当预定操作包括读操作时,通过索引项对预写日志文件中所存储的键值对数据执行预定操作包括:在索引中查找待读取键值对数据所对应的索引项,以获取待读取键值对数据的存储位置;根据上述存储位置从预写日志文件中读取待读取键值对数据。在一些实施例中,当预定操作包括删除操作时,通过所述索引项对预写日志文件中所存储的键值对数据执行预定操作包括:根据键值对数据中的键在索引中删除待删除键值对数据的索引项。在一些实施例中,上述方法还包括:删除被追加写入磁盘的预写日志文件;更新内存中的索引。在一些实施例中,合并整理条件包括以下至少一项:预写日志文件的占用空间超过预设文件空间阈值;预写日志文件的占用空间与总空间的比值超过预设文件空间比例阈值;预写日志文件中被删除的键值对数据超过预设阈值;预写日志文件中被删除键值对数据的占用空间与总空间的比值超过预设删除比例阈值;磁盘的已占用空间超过预设磁盘空间阈值;磁盘的已占用空间与磁盘总容量的比值超过预设磁盘空间比例阈值。在一些实施例中,内存中的索引包括根据磁盘中的预写日志文件中的键值对数据的键生成的字典树,其中,在该字典树中,从根节点出发的每条路径对应一个键值对数据的键,每条路径的最后一个节点存储该路径所对应的键值对数据的存储位置。第二方面,本申请实施例还提供了一种存储数据的装置,该装置包括:获取模块,配置用于获取待存储的键值对数据;存储模块,配置用于将上述键值对数据存储在磁盘的预写日志文件中;索引项生成模块,配置用于根据上述键值对数据在磁盘中的存储位置以及键值对数据中的键在内存中为该键值对数据生成索引项,以供数据操作模块通过该索引项对该键值对数据执行预定操作,在检测到满足合并整理条件的预写日志文件时,根据索引将该满足预定条件的预写日志文件中保留的键值对数据追加写入磁盘中,其中,存储位置包括以下至少一项:预写日志文件的文件名、键值对数据在预写日志文件中与文件起始位置的偏移量。在一些实施例中,当预定操作包括读操作时,数据操作模块配置用于:在索引中查找待读取键值对数据所对应的索引项,以获取待读取键值对数据的存储位置;根据存储位置从预写日志文件中读取待读取键值对数据。在一些实施例中,当预定操作包括删除操作时,数据操作模块配置用于:根据键值对数据中的键在索引中删除待删除键值对数据的索引项。在一些实施例中,上述装置还包括:删除模块,配置用于删除被追加写入磁盘的预写日志文件;索引生成模块还配置用于更新内存中的索引。在一些实施例中,合并整理条件包括以下至少一项:预写日志文件的占用空间超过预设文件空间阈值;预写日志文件的占用空间与总空间的比值超过预设文件空间比例阈值;预写日志文件中被删除的键值对数据超过预设阈值;预写日志文件中被删除键值对数据的占用空间与总空间的比值超过预设删除比例阈值;磁盘的已占用空间超过预设磁盘空间阈值;磁盘的已占用空间与磁盘总容量的比值超过预设磁盘空间比例阈值。在一些实施例中,内存中的索引包括根据磁盘中的预写日志文件中的键值对数据的键生成的字典树,其中,在该字典树中,从根节点出发的每条路径对应一个键值对数据的键,每条路径的最后一个节点存储该路径所对应的键值对数据的存储位置。第三方面,本申请实施例提供了一种存储设备,包括:一个或多个处理器;程序存储装置,用于存储一个或多个程序;磁盘,用于存储一个或多个预写日志文件;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一上述的方法。本申请实施例提供的存储数据的方法和装置,通过获取待存储的键值对数据,接着将该键值对数据存储在磁盘的预写日志文件中,然后根据该键值对数据在磁盘中的存储位置以及该键值对数据中的键在内存中为该键值对生成索引项,以通过索引项对预写日志文件中所存储的键值对数据执行预定操作,在检测到满足合并整理条件的预写日志文件时,根据索引将该满足预定条件的预写日志文件中保留的键值对数据追加写入磁盘中。由于键值对数据存储在预写日志文件中,可以通过对内存中的索引项对预写日志文件中所存储的键值对数据执行预定操作,在合并整理操作时,以追加写方式只写保留的键值对数据,从而可以减小写入放大问题,提高存储数据的有效性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构图;图2是根据本申请的存储数据的方法的一个实施例的流程图;图3是根据本申请的存储数据的方法的一个可选实现方式中的字典树形式索引示意图;图4是根据本申请的存储数据的方法的一个应用场景的示意图;图5是根据图4示出的应用场景中删除键值对数据的过程示意图;图6是根据本申请的存储数据装置的一个实施例的结构示意图;图7是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的存储数据的方法或存储数据装置的实施例的示例性系统架构100。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络1本文档来自技高网...
存储数据的方法和装置

【技术保护点】
一种存储数据的方法,其特征在于,所述方法包括:获取待存储的键值对数据;将所述键值对数据存储在磁盘的预写日志文件中;根据所述键值对数据在磁盘中的存储位置以及所述键值对数据中的键在内存中为所述键值对数据生成索引项,以通过所述索引项对所述键值对数据执行预定操作,在检测到满足合并整理条件的预写日志文件时,根据索引将该满足预定条件的预写日志文件中保留的键值对数据追加写入磁盘中,其中,所述存储位置包括以下至少一项:预写日志文件的文件名、所述键值对数据在预写日志文件中与文件起始位置的偏移量。

【技术特征摘要】
1.一种存储数据的方法,其特征在于,所述方法包括:获取待存储的键值对数据;将所述键值对数据存储在磁盘的预写日志文件中;根据所述键值对数据在磁盘中的存储位置以及所述键值对数据中的键在内存中为所述键值对数据生成索引项,以通过所述索引项对所述键值对数据执行预定操作,在检测到满足合并整理条件的预写日志文件时,根据索引将该满足预定条件的预写日志文件中保留的键值对数据追加写入磁盘中,其中,所述存储位置包括以下至少一项:预写日志文件的文件名、所述键值对数据在预写日志文件中与文件起始位置的偏移量。2.根据权利要求1所述的方法,其特征在于,当所述预定操作包括读操作时,所述通过所述索引项对预写日志文件中所存储的键值对数据执行预定操作包括:在索引中查找待读取键值对数据所对应的索引项,以获取待读取键值对数据的存储位置;根据所述存储位置从预写日志文件中读取待读取键值对数据。3.根据权利要求1所述的方法,其特征在于,当所述预定操作包括删除操作时,所述通过所述索引项对预写日志文件中所存储的键值对数据执行预定操作包括:根据键值对数据中的键在索引中删除待删除键值对数据的索引项。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:删除被追加写入磁盘的预写日志文件;更新内存中的索引。5.根据权利要求1所述的方法,其特征在于,所述合并整理条件包括以下至少一项:预写日志文件的占用空间超过预设文件空间阈值;预写日志文件的占用空间与总空间的比值超过预设文件空间比例阈值;预写日志文件中被删除的键值对数据超过预设阈值;预写日志文件中被删除键值对数据的占用空间与总空间的比值超过预设删除比例阈值;磁盘的已占用空间超过预设磁盘空间阈值;磁盘的已占用空间与磁盘总容量的比值超过预设磁盘空间比例阈值。6.根据权利要求1-5中任一所述的方法,其特征在于,内存中的索引包括根据磁盘中的预写日志文件中的键值对数据的键生成的字典树,其中,在所述字典树中,从根节点出发的每条路径对应一个键值对数据的键,每条路径的最后一个节点存储该路径所对应的键值对数据的存储位置。7.一种存储数据的装置,其特征在于,所述装置包括:获取模块,配置用于获取待存储的键值对数据;存储模块,配置用于将所述键值对数据存储在磁盘的预写日志文件中;索引项生成模块,配置用于根据所述键值对数据在...

【专利技术属性】
技术研发人员:覃安陈佳捷
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1