一种索引数据写入磁盘的方法、装置及终端设备制造方法及图纸

技术编号:32026951 阅读:13 留言:0更新日期:2022-01-22 18:57
本申请实施例适用于数据库技术领域,提供了一种索引数据写入磁盘的方法、装置及终端设备,所述方法包括:对数据写入磁盘的过程进行监听,所述数据包括索引数据;若监听到针对所述索引数据的写请求,则将所述索引数据存储至预设的内存空间中;在所述内存空间中构造消息队列;当所述内存空间中存储的所述索引数据的数据量达到预设值时,将所述索引数据存入所述消息队列;将所述消息队列中的所述索引数据写入所述磁盘中。通过上述方法,能够减少索引数据写入磁盘所花费的时间。据写入磁盘所花费的时间。据写入磁盘所花费的时间。

【技术实现步骤摘要】
一种索引数据写入磁盘的方法、装置及终端设备


[0001]本申请属于数据库
,特别是涉及一种索引数据写入磁盘的方法、装置及终端设备。

技术介绍

[0002]数据库是目前人们常在使用的能够有效管理数据,提高存储效率的管理工具。数据库包括多种不同的类型,例如连续型数据库、非连续型数据库等等。连续型数据库是一种Key/Value型数据库,可以以键值对的形式存储数据。
[0003]在连续型数据库的应用场景中,在将数据写入磁盘的过程中,需要将数据对应的索引数据也写入磁盘。但是,现有的连续型数据在向磁盘中写入数据时,对于一个键值对的数据,需要进行一次数据的写入和一次索引数据的写入,导致目前连续型数据库的数据写入效率不高。

技术实现思路

[0004]有鉴于此,本申请实施例提供了一种索引数据写入磁盘的方法、装置及终端设备,用以减少索引数据写入磁盘所花费的时间。
[0005]本申请实施例的第一方面提供了一种索引数据写入磁盘的方法,包括:对数据写入磁盘的过程进行监听,所述数据包括索引数据;若监听到针对所述索引数据的写请求,则将所述索引数据存储至预设的内存空间中;在所述内存空间中构造消息队列;当所述内存空间中存储的所述索引数据的数据量达到预设值时,将所述索引数据存入所述消息队列;将所述消息队列中的所述索引数据写入所述磁盘中。
[0006]本申请实施例的第二方面提供了一种索引数据写入磁盘的装置,包括:监听模块,用于对数据写入磁盘的过程进行监听,所述数据包括索引数据;存储模块,用于若监听到针对所述索引数据的写请求,则将所述索引数据存储至预设的内存空间中;构造模块,用于在所述内存空间中构造消息队列;入列模块,用于当所述内存空间中存储的所述索引数据的数据量达到预设值时,将所述索引数据存入所述消息队列;写入模块,用于将所述消息队列中的所述索引数据写入所述磁盘中。
[0007]本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
[0008]本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储
介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法。
[0009]本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述第一方面所述的方法。
[0010]与现有技术相比,本申请实施例包括以下优点:本申请实施例中,终端设备可以对索引数据的写入过程进行监听;当终端设备接收到针对索引数据的写请求时,可以将该写请求对应的索引数据存储至预设的内存空间中;该内存空间中还可以包括构造的消息队列;当该内存空间中缓存的索引数据的数据量达到预设值时,可以将该内存空间中存储的索引数据存入消息队列中;然后从消息队列中取出索引数据,将索引数据写入磁盘中。在本申请实施例中,在向磁盘中写入索引数据时,并不是一条一条地写入,而是当索引数据积累到一定数量之后,再将这些索引数据统一写入磁盘,这样,可以减少磁盘的刷新时间,从而减少了索引数据写入磁盘所需的时间。
附图说明
[0011]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1是本申请一个实施例的提供的连续型数据库的结构示意图;图2是本申请一个实施例的一种索引数据写入磁盘的方法的步骤流程示意图;图3是本申请一个实施例的另一种索引数据写入磁盘的方法的步骤流程示意图;图4是本申请一个实施例的一种索引数据写入磁盘的装置的示意图;图5是本申请一个实施例的另一种索引数据写入磁盘的装置的示意图;图6是本申请一个实施例的一种终端设备的示意图。
具体实施方式
[0013]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0014]应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0015]还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0016]如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0017]另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0018]在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0019]下面通过具体实施例来说明本申请的技术方案。
[0020]本申请实施例提供的索引数据写入磁盘的方法可以应用于连续型数据库。连续型数据库是一种Key/Value型数据库,其数据存储方式是连续递增的,且以向后追加的方式写入新的存储数据。该连续型数据库用后缀为.log的数据库文件(以下简称“log文件”)和后缀为.idx的数据库文件(以下简称“idx文件”)分别来记录数据和索引文件。
[0021]每一个log文件的文件名均为文件中存储的第一条数据。该连续型数据库的每个数据的数据名是连续递增的,所有数据都存储在log文件中,每个log文件中可以存储多条数据。每个log文件都有预设的存储大小,当存入的数据大小超过该预设存储大小后,该连续型数据库可以创建一个新log文件,并继续存入数据。每一条log数据的存储格式都是固定的,大小并不固定。前17个字节分别记录了版本号(version),数据 key 值(of本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种索引数据写入磁盘的方法,其特征在于,包括:对数据写入磁盘的过程进行监听,所述数据包括索引数据;若监听到针对所述索引数据的写请求,则将所述索引数据存储至预设的内存空间中;在所述内存空间中构造消息队列;当所述内存空间中存储的所述索引数据的数据量达到预设值时,将所述索引数据存入所述消息队列;将所述消息队列中的所述索引数据写入所述磁盘中。2.如权利要求1所述的方法,其特征在于,所述内存空间中存在内存数据表,所述内存数据表具有对应的数据容量,所述将所述索引数据存储至预设的内存空间中,包括:将所述索引数据存储至所述内存数据表中;当所述内存数据表中存储的所述索引数据已经达到对应的数据容量时,封锁所述内存数据表;并创建新的内存数据表;将新写入的所述索引数据存储至新的所述内存数据表中。3.如权利要求2所述的方法,其特征在于,所述将所述索引数据存入所述消息队列,包括:将已封锁的所述内存数据表中的所述索引数据写入所述消息队列。4.如权利要求3所述的方法,其特征在于,所述消息队列包括尾指针,所述将已封锁的所述内存数据表中的所述索引数据写入所述消息队列,包括:确定所述消息队列的尾指针当前所指向的目标队列节点;将已封锁的所述内存数据表中的所述索引数据存储至所述目标队列节点中;将所述尾指针指向所述目标队列节点的下一个队列节点。5.如权利要求1

4任一项所述的方法,其特征在于,所述消息队列包括多个队列节点,所述将所述消息队列中的所述索引数据写入所述磁盘中,包括:提取所述...

【专利技术属性】
技术研发人员:张延楠张珂杰王晨璐尚璇金鹏
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:

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

1