CN110688357A - 一种日志型数据的读取方法和装置 - Google Patents
一种日志型数据的读取方法和装置 Download PDFInfo
- Publication number
- CN110688357A CN110688357A CN201810633740.7A CN201810633740A CN110688357A CN 110688357 A CN110688357 A CN 110688357A CN 201810633740 A CN201810633740 A CN 201810633740A CN 110688357 A CN110688357 A CN 110688357A
- Authority
- CN
- China
- Prior art keywords
- data
- log
- data page
- page
- time
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施例提供了一种读取日志型数据的方法以及相应的装置。在一种日志型数据的读取方法中,读取日志型数据必须从最新的时间点中最晚写入的数据页开始,依次访问该数据页与待读取的日志型数据所在的数据页之间的每一个数据页。针对上述做法所导致的效率低下的问题,本发明的实施例提供了新的日志型数据的索引结构以及数据页结构,使得索引和数据页可以和多个数据页之间建立指向关系,从而在读取日志型数据时,既不需要从最新的时间点中最晚写入的数据页开始查找,也不需要依次访问当前数据页与待读取的日志型数据所在的数据页之间的每一个数据页,从而提高了读取日志型数据的效率。
Description
技术领域
本发明涉及数据传输领域,特别涉及一种日志型数据的读取方法和装置。
背景技术
日志型数据,是一种特殊的数据形式,在执行日志型数据的写操作时,只追加新的数据而不修改旧的数据。由于采用这种写操作的方式,日志型数据可以划分为不同的时间点(英文全称:Time Point,简称:TP)和数据页(英文全称:Data Page,简称:DP)。其中,由于日志型数据采用只追加新的数据而不修改旧的数据的方式,当对旧的数据进行更新时,就会在新的时间点上产生数据页或者在同一时间点产生新的数据页。时间点之间的间隔由日志型数据所在的计算机装置进行设定,在下一个时间点到来之前,如果对日志型数据进行写操作,则会在相同的时间点上产生新的数据页;而如果经过了下一个时间点后,对日志型数据进行写操作,则会在新的时间点上产生数据页。因此,一个时间点往往包括多个数据页,这些数据页的写入时间都均为该时间点。由于日志型数据的主要作用是根据系统设定的时间点产生备份数据,因此,每个时间点中,最新的数据页往往是较为重要的。
为了增加对日志型数据进行读操作的效率,通常对日志型数据设置索引。日志型数据的索引的大小为32字节,用来对应最大为32KB的数据页。索引共有4个指向信息(英文全称:Pointer,简称:Ptr),均指向最新时间点的最新数据页。在日志型数据中,每个数据页的大小通常不超过32KB,且其粒度为8KB,即每个数据页的大小为8KB、16KB、24KB和32KB中的某一项。索引的4个指向信息分别对应数据页可能存在的8KB数据。
不同的时间点采用TP N进行标记,不同的时间点从旧到新标号依次增加,数据页采用DP M的方式对数据页进行标记,在同一个时间点中,数据页从旧到新标号依次增加,其中,N和M为非负整数。当将时间点的标号和数据页的标号结合起来,例如TP N DP M,则可以唯一地指代日志型数据中的每一个数据页。为了指代方便,也可以将相对于当前时间点晚的相邻时间点称为前一个时间点,将相对于当前数据页晚写入的相邻数据页称为前一个数据页。
日志型数据的优点在于,日志型数据能够快速的实现新数据的写入,对于上层应用来说能够实现快速响应。并且,日志型数据的组织逻辑简单,只需要一段逻辑上连续的空间,就可以不断地进行追加写操作。在故障发生时,可以通过访问过去的时间点上的数据进行数据的恢复。由于数据页之间是通过串联的形式连接在一起的,当需要访问之前的时间点的某个数据页或者本时间点的较早写入的数据页时,只能通过访问之前的每一个数据页的方式进行查找,使得日志型数据的读操作的效率降低。
发明内容
本申请提出一种日志型数据的读写方法及实现该方法的装置,以解决现有技术中所存在的日志型数据读操作效率较低的问题。
第一方面,本申请提供一种日志型数据的读取方法,该方法由计算机装置执行,包括:接收读操作请求,该读操作请求用于读取目标日志型数据,该读操作请求包括该目标日志型数据的写入时间和逻辑地址,该计算机装置还包括缓存,该缓存包括多个数据页,每个数据页具有时间标签,该时间标签用于指示数据页中保存的日志型数据的写入时间;根据逻辑地址确定目标日志型数据的索引,该目标日志型数据的索引和第一数据页之间具有指向关系;访问第一数据页,该第一数据页的时间标签所指示的日志型数据的写入时间晚于或者等于目标日志型数据的写入时间,并且第一数据页和第二数据页之间具有指向关系,第一数据页与第三数据页之间具有指向关系;当第二数据页的时间标签所指示的日志型数据的写入时间比第三数据页的时间标签所指示的写入时间更接近于目标日志型数据的写入时间时,选择第二数据页,并且第二数据页的时间标签所指示的日志型数据的写入时间晚于或者等于目标日志型数据的写入时间;从第二数据页或者与该第二数据页具有指向关系的数据页中读取目标日志型数据。
通过采取数据页和多个其他的数据页建立指向关系的做法,使得在读取日志型数据时,可以选择访问写入时间更接近于目标日志型数据的写入时间的数据页,从而减少了读取目标日志型数据所需访问的数据页数量,提高了读取日志型数据的效率。
对于上述第一方面,一种可能的实现方式是,读取日志型数据的方法还包括,根据目标日志型数据的索引确定第一数据页,该日志型数据的索引与多个数据页之间具有指向关系,该第一数据页的时间标签所指示的日志型数据的写入时间相对于多个数据页中的每个数据页的时间标签所指示的日志型数据的写入时间更接近于目标日志型数据的写入时间。
通过采取日志型数据的索引与多个数据页之间建立指向关系的做法,使得在读取日志型数据时,可以根据目标日志型数据的索引访问写入时间更接近于目标日志型数据的写入时间的数据页,从而减少读取目标日志型数据所需访问的数据页的数量,提高了读取日志型数据的效率。
对于上述第一方面,另一种可能的实现方式是,目标日志型数据的索引具有指向关系的多个数据页中的每个数据页的时间标签不同。采用这种做法,使索引与不同时间点的数据页分别建立指向关系,有利于进一步提高读取日志型数据的效率。
第二方面,本申请提供一种计算机装置,该计算机装置用于读取日志型数据,包括:接收模块,用于接收读操作请求,该读操作请求用于读取目标日志型数据,该读操作请求包括目标日志型数据的写入时间和逻辑地址,计算机装置的缓存包括多个数据页,每个数据页具有时间标签,该时间标签用于指示数据页中保存的日志型数据的写入时间;确定模块,用于根据逻辑地址确定目标日志型数据的索引,该目标日志型数据的索引和第一数据页之间具有指向关系;读取模块,用于访问第一数据页,该第一数据页的时间标签所指示的日志型数据的写入时间晚于或者等于目标日志型数据的写入时间,并且第一数据页和第二数据页之间具有指向关系,第一数据页和第三数据页之间具有指向关系;当第二数据页的时间标签所指示的日志型数据的写入时间比第三数据页的时间标签所指示的写入时间更接近于所述目标型数据页的写入时间时,选择第二数据页,并且第二数据页的时间标签所指示的日志型数据的写入时间晚于或者等于目标日志型数据的写入时间;从第二数据页或者与该第二数据页具有指向关系的数据页中读取目标日志型数据。
对于上述第二方面,一种可能的实现方式是,确定模块还用于,根据目标日志型数据的索引确定第一数据页,该日志型数据的索引与多个数据页之间具有指向关系,该第一数据页的时间标签所指示的日志型数据的写入时间相对于多个日志型数据页中的每个数据页的时间标签所指示的日志型数据的写入时间更接近于目标日志型数据的写入时间。
对于上述第二方面,另一种可能的实现方式是,目标日志型数据的索引具有指向关系的多个数据页中的每个数据页的时间标签不同。
第三方面,本申请提供一种计算机装置,该计算机装置包括处理器和存储器,其中,存储器存储程序代码,处理器用于调用处理器中的程序代码执行如第一方面所述的日志型数据的读取方法。
附图说明
图1为本发明的实施例中的一种日志型数据的索引结构的示意图。
图2为本发明的实施例中的一种日志型数据的各个时间点的数据页进行连接的方式的示意图。
图3为本发明的实施例中的另一种日志型数据的索引结构的示意图。
图4为本发明的实施例中的日志型数据的数据页结构的示意图。
图5为本发明的实施例中的位图结构的示意图。
图6为本发明的实施例中的日志型数据读取的流程示意图。
图7为本发明的第一个实施例中的日志型数据读取过程的示意图。
图8为本发明的第二个实施例中的日志型数据读取过程的示意图。
图9为本发明的第三个实施例中的日志型数据读取过程的示意图。
图10为本发明的第四个实施例中的日志型数据读取过程的示意图。
图11为本发明的实施例中的计算机装置的功能结构的示意图。
图12为本发明的实施例中的计算机装置的结构示意图。
具体实施方式
图1为本发明的实施例中的一种日志型数据的索引结构的示意图。如图1所示,在本发明的实施例的一种实现方式中,该日志型数据的索引的大小为32字节,可以对应最新时间点中的最大为32KB的数据页。索引包括模式部分、状态部分、逻辑区块地址(英文全称:Logical Block Address,简称:LBA)部分以及4个指向信息。其中,LBA部分的大小为48比特,用来指代某个数据区块的地址或者某个地址指向的数据区块。由于写操作请求中也携带有LBA,因此可以通过匹配LBA部分的信息来确定所需的日志型数据的索引。索引的每个指向信息的大小为46比特,可以分为时间点信息和分布式内存地址(英文全称:Distributed Memory Address,简称:DM Address)两部分。其中,时间点信息的大小为11比特,用于指示该指向信息所指向的数据页的写入时间。需要指出的是,上述索引的各个部分的大小均为示例,不应理解为对本发明的实施例的限定,并且由于同一个时间点中的所有数据页的时间点信息是相同的,因此时间点信息所指示的数据页的写入时间即是该时间点。在同一个时间点中,各个数据页通过彼此之间的连接关系来判断实际写入的早晚。分布式内存地址部分所指示的是缓存空间的地址,在一种可能的实现方式中,其大小为35比特,用来表示该指向信息所指向的数据页所占用的缓存空间的地址。其中,每个指向信息可以对应8KB的缓存空间。由于数据页的大小最大为32KB,且其粒度为8KB,所以通过索引的4个指向信息,可以准确地指示出最新的时间点中的最晚写入的数据页所占用的缓存空间的地址。
图2为本发明的实施例中的一种日志型数据的各个时间点的数据页进行连接的方式的示意图。由于日志型数据在进行写操作时是进行追加写的方式,即采用只追加新的数据页而不修改旧的数据页的方式,因此各个时间点的数据页按照写入早晚的顺序采用挂链的形式进行组织形成了一个链表。每个数据页中包含一个指向信息,该指向信息指向前一个数据页。当需要读取位于较早的时间点的日志型数据时,首先利用索引访问最新的时间点中最晚写入的数据页,并通过数据页中的指向信息依次访问链表中的每一个数据页进行查找。采用这种方式进行日志型数据的读取时,必须从最新的时间点中的最晚写入的数据页开始,依次访问该数据页和待读取的日志型数据所在的数据页之间的每一个数据页,从而导致了读取日志型数据的效率较为低下。
基于提高日志型数据读取效率的目的,本发明的实施例对上述日志型数据的索引结构以及数据页结构进行了修改,并提出一种日志型数据的读取方法和装置。由于上述的日志型数据的索引的四个指向信息指向的是同一个数据页,导致其在读取日志型数据时只能根据索引访问最新的时间点中最晚写入的数据页。而数据页本身只包含一个指向信息,用来调整到该数据页的前一个数据页,导致在读取日志型数据时,需要依次访问该数据页和待读取的日志型数据所造的数据页之间的每一个数据页。本发明的实施例修改了日志型数据的索引中的四个指向信息所指向的数据页,其中的一个指向信息依然指向最新的时间点中最晚写入的数据页,另外的三个指向信息可以指向其他的数据页,例如,可以指向不同的时间点中的数据页。这样在读取日志型数据时,可以根据索引访问适当的时间点中的数据页,并从该数据页开始查找。同时,为数据页本身增加指向信息,使其具有多个指向信息。其中,数据页的第一个指向信息指向该数据页的前一个数据页,其余的三个指向信息可以指向不同的数据页,因此可以从该数据页访问不相邻的数据页。采用这种方法,在读取旧的数据页时,既不需要从最新的时间点中最晚写入的数据页开始查找,也不需要依次访问当前数据页与待读取的日志型数据所在的数据页之间的每一个数据页,从而提高了读取日志型数据的效率。
本发明的实施例提供一种日志型数据的索引结构。如图3所示,本发明的实施例所提供的日志型数据的索引包含四个指向信息,每个指向信息仍然包括时间点信息和分布式内存地址,在一种可能的实现方式中,时间点信息的大小为11比特,分布式内存地址的大小为35比特。与前一种索引结构不同的是,本发明的实施例所提供的日志型数据的索引的4个指向信息分别指向不同的数据页。其中,第一个指向信息必须指向最新的时间点中的最晚写入的数据页,剩下三个指向信息可以指向任意数据页。由于在日志型数据的每个时间点中,通常最晚写入的数据页是较为重要的。因此,其余的三个指向信息通常分别指向其它三个时间点中的最晚写入的数据页。通过这种方式,使得在执行读请求操作时,可以从索引直接访问时间点信息所指示的写入时间更为接近待读取数据的写入时间的数据页,进而减少找到待读取数据页所需的访问次数,从而提高了读请求操作的效率。
本发明的实施例提出一种日志型数据的数据页结构。如图4所示,由于每个数据页包括520B大小的用于描述信息的空余空间,因此可以利用该空余空间增加若干指向信息,使得数据页具有N个指向信息,其中,N为大于等于2的整数(图4中所示为4个指向信息)。指向信息包含时间点信息和分布式内存地址。其中,时间点信息的大小为11比特,分布式内存地址的大小为35比特,用于表示该指向信息所指向的数据页在缓存空间中的地址。如前文所述,每个数据页的大小最小为8KB大为32KB,以8KB为粒度。由于分布式内存地址所对应的缓存空间中的地址为32KB大小,为了确定指向信息所指向的数据页所占用的精确的地址,在一种可能的实现方式中,指向信息还包括4比特大小的位图(英文:Bitmap)。图5所示为本发明的实施例所提供的数据页的指向信息所包含的位图的示意图。如图5所示,每个位图包括4个位图位,每个位图位代表从该指向信息所包含的分布式内存地址开始从后向前的8KB大小的缓存空间。具体来说,第一个位图位代表分布式内存地址前0KB到8KB的缓存空间,第二个位图位代表分布式内存地址前8KB到16KB的缓存空间,第三个位图位代表分布式内存地址前16KB到24KB的缓存空间,第四个位图位代表分布式内存地址前24KB到32KB的缓存空间。当位图中的位图位被置为有效时,意味着该位图位所代表的8KB大小的缓存空间被指向信息所指向的数据页所占用。其中,有效既可以用值为1来表示,也可以用值为0来表示,在本发明的实施例中,有效用值为1来表示。如表1所示,当位图中的位图位的值不同时,所标记的该数据页所占用的缓存空间与位图位的值之间的对应关系。
位图 | 对应的缓存空间 |
1000 | 0KB-8KB |
0100 | 8KB-16KB |
0010 | 16KB-24KB |
0001 | 24KB-32KB |
1100 | 0KB-16KB |
0110 | 8KB-24KB |
1110 | 0KB-24KB |
1111 | 0KB-32KB |
表1:位图位的值和所占用的缓存空间的对应关系
由于本发明的实施例所提供的数据页具有N个指向信息,因此,该数据页的N个指向信息可以指向该数据页之前的N个不同的数据页,从而使得该数据页与早写入的N个不同的数据页之间建立指向关系。为了保证所有的数据页都可以通过之后的数据页被访问到,每个数据页的第一个指向信息指向该数据页的前一个数据页。并且,由于每个时间点的最新的数据页是较为重要的,因此数据页的其余指向信息通常指向其他时间点中的最晚写入的数据页。
图6所示是本发明的实施例中读取日志型数据的流程示意图。
S610:日志型数据的读取由计算机装置执行。计算机装置中的接入装置接收服务器发送的日志型数据的读操作请求,根据该读操作请求中包含的时间点信息确定待读取数据所在的数据页,并将与该待读取数据页相关的所有数据页从存储介质中读取到缓存中。
S620:计算机装置根据所接收到的读操作请求携带的LBA信息,找到待读取的数据页的索引,并根据该索引所包含的指向信息访问与该索引具有指向关系的数据页。本发明的实施例所提供的日志型数据的索引包括4个指向信息,分别指向4个不同的数据页,其中第一个指向信息指向最新时间点中的最晚写入的数据页,剩余的三个指向信息分别指向三个不同的时间点中的最晚写入的数据页。由于只能根据一个数据页访问比其更晚写入的数据页,为了保证可以读取到待读取数据页,根据索引所访问的数据页应该比待读取的数据页更晚写入或者被访问的数据页是待读取的数据所在的数据页。具体来说,由于根据索引所访问的数据页为某一时间点中最晚写入的数据页,因此,根据写操作请求获取待读取数据页的时间点信息,通过比较待读取的数据页的时间点信息所指示的写入时间与索引的指向信息所指向的数据页的时间点信息所指示的写入时间,选择访问写入时间晚于或者等于待读取的数据页的写入时间的数据页,可以使得访问的数据页比待读取的数据页更晚或者被访问的数据页是待读取的数据所在的数据页。计算机装置在与索引具有指向关系的且时间点信息所指示的写入时间晚于或者等于待读取数据的数据页中,选择访问时间点信息所指示的写入时间最接近待读取数据的数据页。
S630:判断所访问的当前数据页是否是待读取数据页。若当前数据页是待读取数据页,则跳转到步骤S660,即读取当前数据页;如果当前的数据页不是待读取数据页时,则跳转到步骤S640。
S640:本发明的实施例所提供的数据页包含N个指向信息,分别指向不同的数据页,使得该数据页可以和N个不同的数据页建立指向关系,其中,N为大于等于2的整数。第一个指向信息指向当前数据页的前一个数据页,剩下的(N-1)个指向信息则指向更早写入的数据页,通常是其它时间点中的最晚写入的数据页。根据当前数据页的指向信息访问下一个数据页,其中,被访问的数据页的时间点信息所指示的写入时间晚于或者等于待读取的数据的写入时间的数据页。
在本发明的实施例一种可能的实现方法中,在当前数据页的N个指向信息所分别指向的数据页中,选择访问时间点信息所指示的写入时间最接近待读取数据页的写入时间的数据页,且被访问的数据页的时间点信息所指示的写入时间晚于或者等于待读取数据的写入时间。
S650:判断当前数据页是否是待读取数据页。若当前数据页是待读取数据页,则跳转到步骤S660,即读取当前数据页。如果当前的数据页不是待读取数据页时,则重复执行步骤S640和S650,即根据当前数据页的指向信息访问更早写入,但时间点信息所指示的写入时间不早于待读取数据页的写入时间的数据页,并判断新访问的数据页是否是待读取的数据页,直至找到待读取数据页。
S660:当找到待读取数据页后,读取该数据页。
图7为本发明的实施例的第一个实施例中的日志型数据读取过程的示意图。如图7所示,共有TP0至TP9共10个时间点,每个时间点中存在两个数据页,按照新旧顺序分别命名为DP1和DP0。索引的4个指向信息分别指向4个最新的时间点中的最晚写入的数据页,分别为TP9DP1、TP8DP1、TP7DP1和TP6DP1。每个数据页包括至少两个指向信息,在本实施例中以4个为例子进行说明。每个数据页的第一个指向信息指向前一个数据页,确保每一个数据页都可以从后面的数据页跳转得到,其第二至第四的指向信息分别指向前一个时间点、前两个时间点和前三个时间点中最晚写入的数据页。
当需要读取TP7DP1这一数据页时,由于日志型数据索引的4个指向信息分别指向的是TP9DP1、TP8DP1、TP7DP1和TP6DP1等四个数据页,包含了TP7DP1这一数据页。因此,直接可以根据索引访问TP7DP1这一数据页,并读取该数据页。
图8为本发明的实施例的第二个实施例中的日志型数据读取过程的示意图。如图8所示,共有TP0至TP9共10个时间点,每个时间点中存在两个数据页,按照新旧顺序分别命名为DP1和DP0。索引的4个指向信息分别指向4个最新的时间点中的最晚写入的数据页,分别为TP9DP1、TP8DP1、TP7DP1和TP6DP1。每个数据页包括至少两个指向信息,在本实施例中以4个为例子进行说明。每个数据页的第一个指向信息指向前一个数据页,确保每一个数据页都可以从后面的数据页跳转得到,其第二至第四的指向信息分别指向前一个时间点、前两个时间点和前三个时间点中最晚写入的数据页。
当需要读取TP4DP1这一数据页时,由于索引的4个指向信息分别指向的是TP9DP1、TP8DP1、TP7DP1和TP6DP1,并没有包含TP4这一时间点。因此,计算机装置从与索引具有指向关系的4个数据页中,选择访问时间点信息所指示的写入时间与待读取数据页的写入时间最接近,且写入时间不早于待读取数据页的写入时间的TP6DP1数据页。而TP6DP1数据页所包含的4个指向信息,分别指向TP6DP0、TP5DP1、TP4DP1、TP3DP1等4个数据页,因此,可以直接通过TP6DP1数据页访问TP4DP1数据页,并读取该数据页。
图9为本发明的实施例的第三个实施例中的日志型数据读取过程的示意图。如图9所示,有TP0至TP9共10个时间点,每个时间点中存在两个数据页,按照新旧顺序分别命名为DP1和DP0。索引的4个指向信息分别指向4个最新的时间点中的最晚写入的数据页,分别为TP9DP1、TP8DP1、TP7DP1和TP6DP1等四个数据页。每个数据页具有至少两个指向信息,在本实施例中以4个为例子进行说明。其第一个指向信息指向前一个数据页,确保每一个数据页都可以根据后面的数据页被访问到,其余的三个指向信息可以自行设定所指向的数据页,例如,可以使数据页的指向信息指向较为常用的数据页,从而进一步提高日志型数据的读取效率。本实施例中的各个数据页所指向的数据页如图9中所示。
当需要读取TP2DP1这一数据页时,由于索引的4个指向信息分别指向的是TP9DP1、TP8DP1、TP7DP1和TP6DP1,并没有包含TP2这一时间点,因此,计算机装置首先从与索引具有指向关系的4个数据页中,选择访问时间点信息所指示的写入时间与待读取数据页的写入时间最接近,且写入时间不早于待读取数据页的写入时间的TP6DP1数据页。再考察TP6DP1数据页所包含的4个指向信息,分别指向TP6DP0、TP5DP1、TP3DP1和TP2DP1等四个数据页。因此计算机装置可以根据TP6DP1数据页直接访问TP2DP1数据页,并读取该数据页。在本实施例中,由于增大了与数据页具有指向关系的数据页之间的间隔,从而使得在某些情况下可以减少访问的次数,增加日志型数据读取的效率。
图10为本发明的实施例的第四个实施例中的日志型数据读取过程的示意图。如图10所示,有TP0至TP9共10个时间点,每个时间点中存在两个数据页,按照新旧顺序分别命名为DP1和DP0。索引的4个指向信息分别指向4个最新的时间点中的最晚写入的数据页,分别为TP9DP1、TP8DP1、TP7DP1和TP6DP1等四个数据页。每个数据页具有至少两个指向信息,在本实施例中以4个为例子进行说明。其第一个指向信息指向前一个数据页,确保每一个数据页都可以根据后面的数据页被访问到,其余的三个指向信息可以自行设定所指向的数据页,例如,可以使数据页的指向信息指向较为常用的数据页,从而进一步提高日志型数据的读取效率。本实施例中的各个数据页所指向的数据页如图10中所示。
当需要读取TP4DP1这一数据页时,由于索引的4个指向信息分别指向的是TP9DP1、TP8DP1、TP7DP1和TP6DP1,并没有包含TP2这一时间点,计算机装置首先从与索引具有指向关系的4个数据页中,选择访问时间点信息所指示的写入时间与待读取数据页的写入时间最接近,且写入时间不早于待读取数据页的写入时间的TP6DP1数据页。再考察TP6DP1数据页所包含的4个指向信息,分别指向TP6DP0、TP5DP1、TP3DP1和TP2DP1等四个数据页。由于在这四个数据页中,TP5DP1的时间点信息所指示的写入时间与待读取数据页的写入时间最接近,且写入时间不早于待读取数据页的写入时间,因此选择访问TP5DP1数据页。而由于TP5DP1数据页的4个指向信息分别指向TP5DP0、TP3DP1、TP2DP1和TP1DP1等4个数据页,由于增大了数据页所包含的4个指向信息所指向的数据页之间的间隔,导致除了TP5DP0数据页以外,其余数据页的时间点信息所指示的写入时间均早于待读取数据的写入时间,因此只能选择访问TP5DP0数据页。而由于TP5DP0数据页与待读取的TP4DP1数据页具有指向关系,因此可以根据TP5DP0数据页访问TP 4DP1数据页,并读取该数据页。在本实施例中,由于增大了数据页所包含的4个指向信息所指向的数据页之间的间隔,导致从TP6DP1数据页向前查找TP4DP1数据页时,比本发明的实施例的第二个实施例会增加查找的步骤,相对的降低读取日志型数据的效率,因此在设定数据页的指向信息所指向的数据页时,需要考虑到这种情况的存在。但相比于从最新的时间点中最晚写入的数据页开始依次访问该数据页与待读取数据页中的每一个数据页,采用图3所示的日志型数据的索引结构、图4所示的日志型数据的数据页结构以及图5所示的读取日志型数据的方法,能够提高计算机装置读取日志型数据的效率。
图11是本发明的实施例中的计算机装置的功能结构示意图。如图11所示,该计算机装置包括接收模块1110、确定模块1120和读取模块1130,其中:
接收模块1110,用于接收读操作请求,该读操作请求用于读取目标日志型数据,该读操作请求包括目标日志型数据的写入时间和逻辑地址,计算机装置的缓存包括多个数据页,每个数据页具有时间标签,该时间标签用于指示数据页中保存的日志型数据的写入时间;
确定模块1120,用于根据逻辑地址确定目标日志型数据的索引,该目标日志型数据的索引和第一数据页之间具有指向关系;
读取模块1130,用于访问第一数据页,该第一数据页的时间标签所指示的日志型数据的写入时间晚于或者等于目标日志型数据的写入时间,并且第一数据页和第二数据页之间具有指向关系,第一数据页和第三数据页之间具有指向关系;当第二数据页的时间标签所指示的日志型数据的写入时间比第三数据页的时间标签所指示的写入时间更接近于所述目标型数据页的写入时间时,选择第二数据页,并且第二数据页的时间标签所指示的日志型数据的写入时间晚于或者等于目标日志型数据的写入时间;从第二数据页或者与该第二数据页具有指向关系的数据页中读取目标日志型数据。
本发明的实施例所提供的计算机装置1100,其功能的实现可以参考如图6所示的日志型数据的读取方法。
图12为本发明的实施例中的计算机装置的结构示意图。
如图12所示,计算机装置1200包括处理器1201,处理器1201与系统内存1205连接。处理器1201可以为中央处理器(英文全称:Central Processing Unit,缩写:CPU),图像处理器(英文全称:Graphics Processing Unit,缩写:GPU),现场可编程门阵列(英文全称:Field Programmable Gate Array,缩写:FPGA),或数字信号处理器(英文全称:DigitalSignal Processor,缩写:DSP)等计算逻辑或以上任意计算逻辑的组合。处理器1201可以为单核处理器或多核处理器。
总线1209用于在计算机装置1200的各部件之间传递信息,总线1209可以使用有线的连接方式或采用无线的连接方式,本发明的实施例并不对此进行限定。总线1209还连接有辅助存储器(英文:secondary storage)1202,输入/输出接口1203和通信接口1204。
辅助存储器1202一般也称为外存,辅助存储器1202的存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘(英文全称:solid state disk,缩写:SSD))等。在一些实施例中,辅助存储器1202还可能进一步包括与处理器1301分离的远程存储器,例如通过通信接口1204和网络1211进行访问的网盘(包括网络文件系统(英文全称:Network File System,缩写:NFS)等网络或机群文件系统)。
缓存1212在本发明的实施例中用于存储日志型数据,缓存1212既可以在处理器1201外部,也可以在处理器1201内部,本发明的实施例不对此进行限定。
输入/输出接口1203连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出设备可以为鼠标、键盘、显示器、或者光驱等。
通信接口1204使用例如但不限于收发器一类的收发装置,来实现与其他设备或网络1211之间的通信,通信接口1204可以通过有线或者无线的形式与网络1211互连。
本发明的实施例中的图6所示的各个步骤可以由处理器1201执行系统内存1205中的软件代码来完成/支持。系统内存1205可以包括一些软件,例如,操作系统1208(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系统(例如Vxworks)),应用程序1207等。
此外,图12仅仅是一个计算机装置1200的例子,计算机装置1200可能包含相比于图12展示的更多或者更少的组件,或者有不同的组件配置方式。同时,图12中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
Claims (7)
1.一种日志型数据读取方法,其特征在于,所述方法由计算机装置执行,包括:
接收读操作请求,所述读操作请求用于读取目标日志型数据,所述读操作请求包括所述目标日志型数据的写入时间和逻辑地址,所述计算机装置包括缓存,所述缓存包括多个数据页,每个数据页具有时间标签,所述时间标签用于指示所述数据页中保存的日志型数据的写入时间;
根据所述逻辑地址确定所述目标日志型数据的索引,所述目标日志型数据的索引和第一数据页之间具有指向关系;
访问所述第一数据页,所述第一数据页的时间标签所指示的日志型数据的写入时间晚于或者等于所述目标日志型数据的写入时间,并且所述第一数据页和第二数据页之间具有指向关系,所述第一数据页和第三数据页之间具有指向关系;
当所述第二数据页的时间标签所指示的日志型数据的写入时间比所述第三数据页的时间标签所指示的写入时间更接近于所述目标日志型数据的写入时间时,选择所述第二数据页,并且所述第二数据页的时间标签所指示的日志型数据的写入时间晚于或者等于所述目标日志型数据的写入时间;
从所述第二数据页或者与所述第二数据页具有指向关系的数据页中读取所述目标日志型数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标日志型数据的索引确定所述第一数据页,所述日志型数据的索引与多个数据页之间具有指向关系,所述第一数据页的时间标签所指示的日志型数据的写入时间相对于所述多个数据页中的每个数据页的时间标签所指示的日志型数据的写入时间更接近于所述目标日志型数据的写入时间。
3.根据权利要求2所述的方法,其特征在于,所述目标日志型数据的索引具有指向关系的多个数据页中的每个数据页的时间标签不同。
4.一种计算机装置,其特征在于,所述计算机装置用于读取日志型数据,包括:接收模块,用于接收读操作请求,所述读操作请求用于读取目标日志型数据,所述读操作请求包括所述目标日志型数据的写入时间和逻辑地址,所述计算机装置的缓存包括多个数据页,每个数据页具有时间标签,所述时间标签用于指示所述数据页中保存的日志型数据的写入时间;
确定模块,用于根据所述逻辑地址确定所述目标日志型数据的索引,所述目标日志型数据的索引和第一数据页之间具有指向关系;
读取模块,用于访问所述第一数据页,所述第一数据页的时间标签所指示的日志型数据的写入时间晚于或者等于所述目标日志型数据的写入时间,并且所述第一数据页和第二数据页之间具有指向关系,所述第一数据页和第三数据页之间具有指向关系;
当所述第二数据页的时间标签所指示的日志型数据的写入时间比所述第三数据页的时间标签所指示的写入时间更接近于所述目标日志型数据的写入时间时,选择所述第二数据页,并且所述第二数据页的时间标签所指示的日志型数据的写入时间晚于或者等于所述目标日志型数据的写入时间;
从所述第二数据页或者与所述第二数据页具有指向关系的数据页中读取所述目标日志型数据。
5.根据权利要求4所述的计算机装置,其特征在于,
所述确定模块还用于,根据所述目标日志型数据的索引确定所述第一数据页,所述日志型数据的索引与多个数据页之间具有指向关系,所述第一数据页的时间标签所指示的日志型数据的写入时间相对于所述多个数据页中的每个数据页的时间标签所指示的日志型数据的写入时间更接近于所述目标日志型数据的写入时间。
6.根据权利要求5所述的计算机装置,其特征在于,所述目标日志型数据的索引具有指向关系的多个数据页中的每个数据页的时间标签不同。
7.一种计算机装置,其特征在于,所述计算机装置包括处理器和存储器,其中,所述存储器存储程序代码,所述处理器用于调用所述处理器中的程序代码执行如权利要求1-3任一项所述的日志型数据读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810633740.7A CN110688357B (zh) | 2018-06-20 | 2018-06-20 | 一种日志型数据的读取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810633740.7A CN110688357B (zh) | 2018-06-20 | 2018-06-20 | 一种日志型数据的读取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688357A true CN110688357A (zh) | 2020-01-14 |
CN110688357B CN110688357B (zh) | 2021-08-20 |
Family
ID=69106212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810633740.7A Active CN110688357B (zh) | 2018-06-20 | 2018-06-20 | 一种日志型数据的读取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688357B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342768A (zh) * | 2021-06-01 | 2021-09-03 | 北京奇艺世纪科技有限公司 | 一种日志读取方法、装置、电子设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197700A (zh) * | 2006-12-05 | 2008-06-11 | 阿里巴巴公司 | 提供日志服务的方法及系统 |
US20140324785A1 (en) * | 2013-04-30 | 2014-10-30 | Amazon Technologies, Inc. | Efficient read replicas |
CN105354046A (zh) * | 2015-09-15 | 2016-02-24 | 深圳市深信服电子科技有限公司 | 基于共享磁盘的数据库更新处理方法及系统 |
CN105488201A (zh) * | 2015-12-08 | 2016-04-13 | 北京皮尔布莱尼软件有限公司 | 一种日志查询方法和系统 |
CN106598504A (zh) * | 2016-12-26 | 2017-04-26 | 华为机器有限公司 | 数据存储方法及装置 |
CN107748766A (zh) * | 2017-09-28 | 2018-03-02 | 南威软件股份有限公司 | 一种基于Presto和Elasticsearch的大数据快速查询方法 |
CN107784121A (zh) * | 2017-11-18 | 2018-03-09 | 中国人民解放军国防科技大学 | 一种基于非易失内存的日志文件系统的小写优化方法 |
-
2018
- 2018-06-20 CN CN201810633740.7A patent/CN110688357B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197700A (zh) * | 2006-12-05 | 2008-06-11 | 阿里巴巴公司 | 提供日志服务的方法及系统 |
US20140324785A1 (en) * | 2013-04-30 | 2014-10-30 | Amazon Technologies, Inc. | Efficient read replicas |
CN105354046A (zh) * | 2015-09-15 | 2016-02-24 | 深圳市深信服电子科技有限公司 | 基于共享磁盘的数据库更新处理方法及系统 |
CN105488201A (zh) * | 2015-12-08 | 2016-04-13 | 北京皮尔布莱尼软件有限公司 | 一种日志查询方法和系统 |
CN106598504A (zh) * | 2016-12-26 | 2017-04-26 | 华为机器有限公司 | 数据存储方法及装置 |
CN107748766A (zh) * | 2017-09-28 | 2018-03-02 | 南威软件股份有限公司 | 一种基于Presto和Elasticsearch的大数据快速查询方法 |
CN107784121A (zh) * | 2017-11-18 | 2018-03-09 | 中国人民解放军国防科技大学 | 一种基于非易失内存的日志文件系统的小写优化方法 |
Non-Patent Citations (2)
Title |
---|
李文华等: "大数据文件编辑器的设计与实现 ", 《电脑开发与应用》 * |
李红燕等: "日志结构文件系统技术的研究 ", 《计算机应用研究》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342768A (zh) * | 2021-06-01 | 2021-09-03 | 北京奇艺世纪科技有限公司 | 一种日志读取方法、装置、电子设备及可读存储介质 |
CN113342768B (zh) * | 2021-06-01 | 2023-10-10 | 北京奇艺世纪科技有限公司 | 一种日志读取方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110688357B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062512B (zh) | 一种分布式存储集群、数据读写方法、系统及相关装置 | |
CN110109868B (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
US10649905B2 (en) | Method and apparatus for storing data | |
CN111124270B (zh) | 缓存管理的方法、设备和计算机程序产品 | |
US9514170B1 (en) | Priority queue using two differently-indexed single-index tables | |
CN111859033B (zh) | Ip库查询方法、装置及ip库压缩方法、装置 | |
CN113364877B (zh) | 数据处理方法、装置、电子设备和介质 | |
CN111966287A (zh) | 数据存储方法、电子设备及存储介质 | |
US9311348B2 (en) | Method and system for implementing an array using different data structures | |
CN115599807A (zh) | 一种数据存取方法、装置、应用服务器及存储介质 | |
CN110688357B (zh) | 一种日志型数据的读取方法和装置 | |
CN117573574B (zh) | 一种预取方法、装置、电子设备及可读存储介质 | |
CN112115521B (zh) | 数据访问方法及装置 | |
CN111857556A (zh) | 管理存储对象的元数据的方法、装置和计算机程序产品 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN114490540A (zh) | 数据存储方法、介质、装置和计算设备 | |
CN111209304B (zh) | 数据处理方法、装置及系统 | |
CN113259410A (zh) | 一种基于分布式存储的数据传输校验方法及系统 | |
CN112395245B (zh) | 处理器的访问装置、方法及计算机设备 | |
CN111435332B (zh) | 数据处理方法及设备 | |
CN108874560B (zh) | 进行通信的方法和通信设备 | |
CN110968267A (zh) | 数据管理方法、装置、服务器及系统 | |
CN115794842B (zh) | 数据处理方法、装置、电子设备及介质 | |
CN113986134B (zh) | 存储数据的方法、读取数据的方法和装置 | |
CN112527896B (zh) | 区块链账本数据的处理方法、装置、存储介质及电子设备 |
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 |