CN114691612A - 数据写入方法及装置、数据读取方法及装置 - Google Patents

数据写入方法及装置、数据读取方法及装置 Download PDF

Info

Publication number
CN114691612A
CN114691612A CN202210306946.5A CN202210306946A CN114691612A CN 114691612 A CN114691612 A CN 114691612A CN 202210306946 A CN202210306946 A CN 202210306946A CN 114691612 A CN114691612 A CN 114691612A
Authority
CN
China
Prior art keywords
data
file
statistical information
written
temporary storage
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.)
Pending
Application number
CN202210306946.5A
Other languages
English (en)
Inventor
丁禹衡
蔡杰明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210306946.5A priority Critical patent/CN114691612A/zh
Publication of CN114691612A publication Critical patent/CN114691612A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例提供一种数据写入方法及装置,以及一种数据读取方法及装置,应用于存储系统。方法包括:响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;如果是,针对临时存储文件中存储的待写入数据进行统计,得到临时存储文件对应的统计信息;其中,统计信息包括待写入数据的值域;将统计信息和临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在持久化存储中生成与临时存储文件对应的持久化存储文件;其中,统计信息用于作为针对存储系统中存储的数据进行范围查询时的查询索引。

Description

数据写入方法及装置、数据读取方法及装置
技术领域
本说明书涉及计算机软件技术领域,尤其涉及数据写入方法及装置、数据读取方法及装置。
背景技术
某些存储系统存在读放大的问题。例如,LSM存储系统是一类基于日志结构合并树(Log structured merge tree,LSM tree)数据结构存储数据的存储系统,能够实现极为高效的数据写入操作,但是LSM存储系统在读数据时需要读取内存以及持久化存储中多个文件的数据才能返回最终结果,从而导致一次查询操作产生多次文件读写,造成读放大的问题。因此,如何解决存储系统的读放大问题,是本领域亟待解决的技术问题。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据写入方法及装置,以及一种数据读取方法及装置,以解决相关技术中存在的问题。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书实施例的第一方面,提供一种数据写入方法,应用于存储系统,所述方法包括:
响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;
确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
如果是,针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
根据本说明书实施例的第二方面,提供一种数据读取方法,应用于存储系统,所述方法包括:
获取针对待读取的目标数据的读指令;其中,所述读指令包含数据查询范围;
响应于所述读指令,遍历所述存储系统的内存中存储的查询索引,从所述存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与所述数据查询范围存在交集的目标文件,并从筛选出的所述目标文件中读取所述目标数据。
根据本说明书实施例的第三方面,提供一种数据写入装置,应用于存储系统,所述装置包括:
第一写入模块,用于响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;
统计信息模块,用于确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
如果是,针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
第二写入模块,将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
根据本说明书实施例的第四方面,提供一种数据读取装置,应用于存储系统,所述装置包括:
指令获取模块,用于获取针对待读取的目标数据的读指令;其中,所述读指令包含数据查询范围;
目标文件筛选模块,用于响应于所述读指令,遍历所述存储系统的内存中存储的查询索引,从所述存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与所述数据查询范围存在交集的目标文件,并从筛选出的所述目标文件中读取所述目标数据。
根据本说明书实施例的第五方面,提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
根据本说明书实施例的第六方面,提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
通过针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息,并将所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引,在读取数据时通过内存中的查询索引定位目标文件,可以减少文件读写次数,且可以实现查询一定范围内的数据。
附图说明
图1是一示例性实施例提供的一种数据写入以及数据读取系统的架构示意图。
图2是一示例性实施例提供的一种数据写入方法的流程图。
图3是一示例性实施例提供的一组统计信息严格递增的持久化存储文件的示意图。
图4是一示例性实施例提供的一种存储系统的系统架构图。
图5是一示例性实施例提供的一种电子设备的结构示意图。
图6是一示例性实施例提供的一种数据写入装置的框图。
图7是一示例性实施例提供的一种数据读取装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是一示例性实施例提供的数据写入方法和数据读取方法的架构示意图。如图1所示,该系统可以包括网络10、服务器11、若干电子设备,如手机12、手机13和手机14等。
服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器、云服务器等。手机12-14只是用户可以使用的一种类型的电子设备。实际上,用户显然还可以使用诸如下述类型的电子设备:平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)、可穿戴设备(如智能眼镜、智能手表等)等,本说明书一个或多个实施例并不对此进行限制。网络10可以包括多种类型的有线或无线网络。
在一实施例中,服务器11可以与手机12-14进行配合;其中,可由手机12-14接收指令,并将接收到的指令通过网络10上传至服务器11,然后由服务器11基于本说明书的数据写入方法和数据读取方法对接收到的指令进行处理,以实现对数据的读写。在另一实施例中,手机12-14可以独立实现本说明书的数据写入方法和数据读取方法;其中,由手机12-14接收指令,并基于本说明书的数据写入方法和数据读取方法对接收到的调用流量进行处理,以实现对数据的读写。
LSM存储系统是一类基于日志结构合并树(Log structured merge tree,LSMtree)数据结构存储数据的存储系统,能够实现极为高效的数据写入操作,但是LSM存储系统在读数据时需要读取内存以及持久化存储中多个文件的数据才能返回最终结果,从而导致一次查询操作产生多次文件读写,造成读放大的问题。
LSM存储系统先将数据写入内存中的临时存储文件中,在该临时存储文件中对数据进行排序,当临时存储文件中的数据量达到一定阈值,将内存中的数据顺序写入磁盘,每次写入生成一个文件,从而获得一组有序的文件。
MYSQL存储系统将数据随机写入磁盘,相较于LSM存储系统顺序写入的方式,MYSQL存储系统需要花费更多的性能用于确定数据在磁盘中的写入顺序,因此,LSM存储系统的顺序写入方式的数据写入性能更高。
但是,由于LSM存储系统要将数据存入多个文件中,在读数据时需要读取内存以及持久化存储中多个文件的数据才能返回最终结果,从而导致一次查询操作需要读取多个文件,造成读放大的问题。
在这种需求的影响下,业界普遍利用布隆过滤器(Bloom Filter)对文件进行过滤,通过过滤,减少不包含查询键的文件。布隆过滤器由一个很长的位向量和多个哈希函数组成,初始时所有位都置为0。使用多个哈希函数,计算集合中的每个元素对应的多个哈希值,并将多个哈希值对应到位向量的多个位置,将其标记为1。查询时用同样的方法,令查询元素经过每个哈希函数映射到位向量上。若其中有任何一个位置不为1,则可以判断该元素一定不存在集合中;反之,如果所有位置均为1,则该元素可能在集合中,但会有一定的误判率。
虽然使用布隆过滤器可以减少不包含查询键的文件,但是具有误判的可能,仍然可以对不必要的文件进行查询,浪费系统性能;且布隆过滤器只能用于点查询的优化,不支持范围查询。
有鉴于此,本说明书提出数据写入时统计待写入数据的统计信息,以便于在数据读取时可以基于统计信息进行范围查找的方案。
本说明书的方案构思在于:
在收到针对待写入的数据对应的写指令时,可以响应该写指令,将待写入的数据写入内存中的临时存储文件中;
然后,可以确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
如果待写入数据的数量达到预设的数量阈值,可以针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
进一步,可以将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
通过以上技术方案,可以在读取数据时通过内存中的查询索引定位目标文件,可以减少文件读写次数,且可以实现查询一定范围内的数据。
下面结合附图对本说明书的调用链路的检测方案进行详细说明。
请参见图2,图2为本说明书提出的一种数据写入方法的流程图,所述方法应用于存储系统。其中,在该存储系统上可以包括内存中的临时存储文件和持久化存储中的持久化存储文件。该方案可以用于实时通信(Instant Messaging,简称IM),安防系统,物联网等场景。
如图2所示,所述方法包括如下的执行步骤:
步骤202,响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;
在示出的一种实施方式中,上述存储系统可以是LSM存储系统,LSM存储系统是一类基于日志结构合并树(Log structured merge tree,LSM tree)数据结构存储数据的存储系统。
上述写指令,可以是用户发起的用于将待写入数据写入存储系统的指令。该写指令可以先将待写入数据顺序写入存储系统内存的临时存储文件中,并可以由存储系统对临时存储文件中的待写入数据进行排序,并可以将完成排序的数据打包成一个文件,以实现将数据顺序写入持久化存储文件中。
例如,在示出的一种应用场景中,以LSM存储系统为例,上述写指令可以是用于实时通信的写指令,响应于用户发起的写指令,该写指令可以将实时通信时发送的图像、文字、文件等数据顺序写入LSM存储系统内存的临时存储文件中,并可以由LSM存储系统对临时存储文件中的数据进行排序,并可以将完成排序的数据打包成一个文件,以实现将数据顺序写入持久化存储文件中。
在示出的另一种应用场景中,以LSM存储系统为例,写指令可以是用于将安防系统的摄像头录制的图像写入内存的指令。在这种情况下,响应于写指令,该写指令可以将安防系统的摄像头录制的图像数据顺序写入LSM存储系统内存的临时存储文件中,并可以由LSM存储系统对临时存储文件中的数据进行排序,并可以将完成排序的数据打包成一个文件,以实现将数据顺序写入持久化存储文件中。
上述待写入数据可以是具有顺序性的数据,例如,待写入数据可以具有时间顺序或序号顺序,从而使得待写入数据可以在写入临时存储文件时按照一定的顺序进行排序。
步骤204,确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
待写入数据写入内存中的临时存储文件中后,存储系统可以自动计算当前已写入内存中临时存储文件的待写入数据的数量,并可以将该数量与预设的数量阈值进行比较,以确定当前临时存储文件中存储的数据数量是否超过预设的数量阈值。
步骤206,如果是,针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
如果当前临时存储文件中存储的数据数量超过预设的数量阈值,存储系统可以对临时存储文件中的存储的待写入数据进行统计,得到待写入数据的统计信息;其中,所述统计信息包括所述待写入数据的值域。
上述统计信息可以在数据读取时对文件进行范围查询,并可以根据统计信息精准命中目标文件,从而达到减少文件读写次数的效果。
在示出的一种实施方式中,存储系统可以对临时存储文件中的存储的待写入数据的最大值、最小值、文件序号进行统计,统计信息可以包括独立的最大值、最小值、文件序号,也可以时是最大值、最小值、文件序号的组合。
在一个例子中,统计信息可以仅由最大值进行标识,即统计信息的值域是小于或等于待最大值的开区间,读取数据时,可以通过该最大值对文件进行过滤;同理,统计信息可以仅由最小值进行标识,即统计信息的值域是大于或等于最小值的开区间,读取数据时,可以通过该最大值对文件进行过滤;统计信息还可以由最小值和最大值同时进行标识,即统计信息的可以为由最大值和最小值限定的值域,读取数据时,可以通过该值域对文件进行过滤。
在另一个例子中,统计信息可以由文件序号进行标识,读取数据时,可以通过文件序号对文件进行过滤。还可以建立文件序号与文件的其他统计信息的映射关系,从而直接通过文件序号进行范围查询。
在实际应用中,上述两种方法可以同时使用。且由于待写入的数据通常有多个分组,在针对所述临时存储文件中存储的待写入数据进行统计时,可以先按照待写入数据对应的键值对临时存储文件中存储的待写入数据进行分组。
在示出的一种实施方式中,可以按照待写入数据对应的键值对临时存储文件中存储的待写入数据进行分组;可以针对分组得到的各个分组中的至少部分分组中的数据进行统计,得到与临时存储文件对应的统计信息。例如,可以只对一个分组中的数据进行统计,获得对应的统计信息,也可以对多个分组中的数据进行统计,获得对应的统计信息,以在读取数据时实现范围查询。
在示出的另一种实施方式中,在可以只统计键值为主键的分组中的数据,得到临时存储文件对应的统计信息,以在读取数据时实现范围查询。
在示出的另一种实施方式中,由于部分分组的数据之间可以没有顺序,因此,可以统计数据具有顺序性的分组中的数据,获得临时存储文件对应的统计信息,以在读取数据时实现范围查询。
步骤208,将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
统计得到临时存储文件中的统计信息后,可以将以完成排序的待写入数据和统计信息一起写入存储系统搭载的持久化存储,在持久化存储中生成与临时存储文件对应的持久化存储文件,并可以为生成的持久化存储文件添加一个文件序号。
在示出的一种实施方式中,在对临时存储文件中的待写入数据进行统计后,可以将临时存储文件对应的统计信息作为与该临时存储文件对应的查询索引,并可以在内存中进行保存,该统计信息可以保存至临时存储文件中,也可以保存至内存中的其他存储文件中,本说明书对此不进行限定;在将统计信息和临时存储文件中的待写入数据写入持久化存储时,可以将持久化存储中存储的多个持久化存储文件中的统计信息作为与该持久化存储文件对应的查询索引,构建成与多个持久化存储文件对应的索引树,并可以在内存中进行保存。通过这种方式,可以将用于范围查询的查询索引保存在内存中,提高读取查询索引的速度。
在示出的另一种实施方式中,在将与所述临时存储文件对应的统计信息,和所述临时存储文件中的待写入数据,写入搭载的持久化存储之后,可以将所述内存中存储的与所述临时存储文件对应的统计信息和待写入数据删除;将临时存储文件清空后,该临时存储文件可以继续响应写指令,将待写入数据写入临时存储文件中,并可以统计新写入的数据的统计信息,当临时存储文件中的待写入数据的数量再次超过预设的数量阈值时,可以将新写入的统计信息和数据写入LSM搭载的持久化存储。
其中,需要说明的是,在实际应用中,以LSM存储系统为例,由于写指令可以是其他终端通过网络向搭载LSM存储系统的设备发送的在线写指令,对响应时间的要求较高;而上述数据写入方案是在待写入数据写入内存中临时存储文件后,再对临时存储文件中的待写入数据进行统计,因此,即使统计信息增加了数据量,也不会对在线写入的性能产生影响,且该统计信息占用的存储空间小,也不会影响将数据写入持久化存储的过程。
获得临时存储文件和持久化存储文件对应的统计信息,建立查询索引后,可以通过查询索引对文件进行范围查询或者点查询。
例如,在示出的一种实施方式中,以LSM存储系统为例,可以获取针对待读取的目标数据的读指令;其中,读指令包含数据查询范围;获取到读指令之后,可以响应于该读指令,可以先遍历内存中存储的查询索引,从LSM存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与数据查询范围存在交集的目标文件,并可以从筛选出的目标文件中读取目标数据。
在一个例子中,获取到针对待读取的目标数据的包含数据查询范围的读指令之后,可以先遍历内存中存储的查询索引,可以从LSM存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息对应的值域与数据查询范围存在交集的目标文件,并可以从筛选出的目标文件中读取目标数据。
在示出的一种实施方式中,在统计信息的数值严格递增的场景下,即多个文件之间的数据顺序与文件的顺序保持一致,可以将读指令中的查询范围与最晚存入持久化存储的持久化存储文件对应的统计信息进行匹配,确定在其之前存入的文件是否在查询范围内;如果查询范围在最晚存入持久化存储的持久化存储文件对应的统计信息的值域内,则可以确定所述最晚存入所述持久化存储的持久化存储文件为目标数据文件,且之前存入的持久化存储文件均不包含目标数据;若查询范围的最小值不在最晚存入持久化存储的持久化存储文件对应的统计信息的值域内,则可以定该最小值是否在之前存储的持久化存储文件中。可以按照与持久化存储文件生成顺序相反的顺序,向前查找,直到可以确定该最小值所命中的统计信息对应的持久化存储文件;同理,可以确定最大值所命中的统计信息对应的持久化存储文件;将二者之间连续存储的多个持久化存储文件作为目标数据文件。
如图3所示,以键值为主键的分组的统计信息为例,假设主键是(UserID,SeqNum),UserID可以表示用户的编号,SeqNum可以表示序列号,该主键(UserID,SeqNum)可以表示每个用户都各自维护一个序列号。可以将所有待写入数据存入持久化存储中的若干个持久化存储文件,例如10个,可以将序列号的值域作为持久化存储文件的统计信息。在序列号严格递增的场景下,用户User0的序列号SeqNum的值域随着持久化存储文件的生成不断递增,即统计信息从File0到File9不断递增,其中File9是最新生成的持久化存储文件。现要查询User0的SeqNum大于97的数据,根据统计信息判断,只需查询文件File9的统计信息,根据File9的统计信息就可以得知所有在File9之前生成的文件其User0的SeqNum均小于90,因而在File9处即可直接将File0~File8舍弃。此时,虽然一共有10个文件,但仅需查询最新1个文件的统计信息就可以查找到目标数据文件。
其中,需要说明的是,响应写指令将数据写入存储系统和从存储系统中读取数据的具体方式,在本说明书中不进行特别限定;
在示出的一种实施方式中,上述写指令具体可以是通过一个实时通信客户端(比如,dingtalk)发送的;上述存储系统可以由服务器搭载。
在这种场景下,该实时通信客户端具体可以响应于写指令,可以将待写入数据通过网络发送至服务器搭载的存储系统中;或者,可以响应于读指令,可以从服务器中搭载的存储系统中获取目标数据,并可以将目标数据发送至实时通信客户端。
当然,在实际应用中,除了上述场景以外,也可以采用其它场景;比如,安防系统、物联网等,在本说明书中不再进行一一列举。
请参见图4,图4为本说明书示出的存储系统的系统架构图。
如图4所示,所述存储系统的系统架构中包括:
内存410,可以用于存储临时存储文件420和索引树430;其中,可以将索引树保存在内存中,加快读取索引树的速度,进而实现加快对目标文件的读取速度。
持久化存储440,可以用于存储持久化存储文件450,可以对存储的多个持久化存储文件350进行合并操作,减少内部持久化存储文件的数量,从而减少文件的读写次数。
用于写入数据时,LSM存储系统可以响应于写指令,将待写入数据顺序写入LSM存储系统的内存410的临时存储文件420中,并可以由LSM存储系统对临时存储文件420中的待写入数据进行排序,并可以将完成排序的数据打包成一个文件,以实现将数据顺序写入持久化存储文件,如果当前临时存储文件420中存储的数据数量超过预设的数量阈值,LSM存储系统可以对临时存储文件420中的存储的待写入数据进行统计,得到待写入数据的统计信息,统计得到临时存储文件420中的统计信息后,可以将以完成排序的待写入数据和统计信息一起写入LSM存储系统搭载的持久化存储440,在持久化存储440中生成与临时存储文件420对应的持久化存储文件450,并可以为生成的持久化存储文件450添加一个文件序号。
用于读取数据时,可以获取针对目标数据的包含查询范围的读指令,获取到读指令之后,可以响应于该读指令,可以先遍历内存410中存储的查询索引,查询索引可以包括由临时存储文件420的统计信息构建的查询索引,以及由持久化存储文件450的统计信息构建的索引树430;从LSM存储系统中存储的临时存储文件420和持久化存储文件450中筛选出统计信息与数据查询范围存在交集的目标文件,并可以从筛选出的目标文件中读取目标数据。
在本说明书的示例性实施例中,还提供了一种能够实现上述方法的设备。
图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内部存储器508以及非易失性存储器510,当然还可能包括其他功能所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存509中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图6,在一软件实施方式中,提供了一种数据写入装置,应用于存储系统,所述装置包括:
第一写入模块610,用于响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;
统计信息模块620,用于确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
如果是,针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
第二写入模块630,将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
可选的,还包括:
调查询索引生成模块640,用于将所述临时存储文件对应的统计信息作为与所述临时存储文件对应的查询索引,在所述内存中进行保存;将所述持久化存储中存储的多个持久化存储文件中的统计信息作为与所述持久化存储文件对应的查询索引,构建成与所述多个持久化存储文件对应的索引树,在所述内存中进行保存。
可选的,还包括:
删除模块650,用于在将与所述临时存储文件对应的统计信息,和所述临时存储文件中的待写入数据,写入搭载的持久化存储之后,将所述内存中存储的与所述临时存储文件对应的统计信息删除。
可选的,所述统计信息模块620还包括:
分组统计模块622,用于按照所述待写入数据对应的键值对所述临时存储文件中存储的待写入数据进行分组;针对分组得到的各个分组中的至少部分分组中的数据进行统计,得到与所述临时存储文件对应的统计信息。
可选的,所述统计信息模块620还包括:
主键统计模块624,用于针对分组得到的各个分组中与所述待写入数据的主键对应的分组中的数据进行统计,得到与所述临时存储文件对应的统计信息。
可选的,还包括:
数据读取模块660,用于获取针对待读取的目标数据的读指令;其中,所述读指令包含数据查询范围;
响应于所述读指令,遍历所述存储系统的内存中存储的查询索引,从所述存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与所述数据查询范围存在交集的目标文件,并从筛选出的所述目标文件中读取所述目标数据。
可选的,所述数据读取模块660,包括:
严格递增模块662,用于将所述查询范围与最晚存入所述持久化存储的持久化存储文件对应的统计信息进行匹配,确定在其之前存入的文件是否在所述查询范围内;如果否,则确定所述最晚存入所述持久化存储的持久化存储文件为目标数据文件。
可选的,包括:
所述统计信息还包括所述待写入数据的最大值、最小值、文件序号中的至少一种信息。
请参考图7,在一软件实施方式中,提供了一种数据读取装置,应用于存储系统,所述装置包括:
数据读取模块710,用于获取针对待读取的目标数据的读指令;其中,所述读指令包含数据查询范围;
响应于所述读指令,遍历所述存储系统的内存中存储的查询索引,从所述存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与所述数据查询范围存在交集的目标文件,并从筛选出的所述目标文件中读取所述目标数据。
可选的,所述数据读取模块710,包括:
严格递增模块712,用于将所述查询范围与最晚存入所述持久化存储的持久化存储文件对应的统计信息进行匹配,确定在其之前存入的文件是否在所述查询范围内;如果否,则确定所述最晚存入所述持久化存储的持久化存储文件为目标数据文件。
可选的,包括:
所述统计信息还包括所述待写入数据的最大值、最小值、文件序号中的至少一种信息。
可选的,还包括:
第一写入模块720,用于响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;
统计信息模块730,用于确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
如果是,针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
第二写入模块740,将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
可选的,还包括:
调查询索引生成模块750,用于将所述临时存储文件对应的统计信息作为与所述临时存储文件对应的查询索引,在所述内存中进行保存;将所述持久化存储中存储的多个持久化存储文件中的统计信息作为与所述持久化存储文件对应的查询索引,构建成与所述多个持久化存储文件对应的索引树,在所述内存中进行保存。
可选的,还包括:
删除模块760,用于在将与所述临时存储文件对应的统计信息,和所述临时存储文件中的待写入数据,写入搭载的持久化存储之后,将所述内存中存储的与所述临时存储文件对应的统计信息删除。
可选的,所述统计信息模块730还包括:
分组统计模块732,用于按照所述待写入数据对应的键值对所述临时存储文件中存储的待写入数据进行分组;针对分组得到的各个分组中的至少部分分组中的数据进行统计,得到与所述临时存储文件对应的统计信息。
可选的,所述统计信息模块730还包括:
主键统计模块734,用于针对分组得到的各个分组中与所述待写入数据的主键对应的分组中的数据进行统计,得到与所述临时存储文件对应的统计信息。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (14)

1.一种数据写入方法,应用于存储系统,所述方法包括:
响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;
确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
如果是,针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
2.根据权利要求1所述的方法,所述方法还包括:
将所述临时存储文件对应的统计信息作为与所述临时存储文件对应的查询索引,在所述内存中进行保存;将所述持久化存储中存储的多个持久化存储文件中的统计信息作为与所述持久化存储文件对应的查询索引,构建成与所述多个持久化存储文件对应的索引树,在所述内存中进行保存。
3.根据权利要求2所述的方法,所述方法还包括:
在将与所述临时存储文件对应的统计信息,和所述临时存储文件中的待写入数据,写入搭载的持久化存储之后,将所述内存中存储的与所述临时存储文件对应的统计信息删除。
4.根据权利要求1所述的方法,所述针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息,包括:
按照所述待写入数据对应的键值对所述临时存储文件中存储的待写入数据进行分组;
针对分组得到的各个分组中的至少部分分组中的数据进行统计,得到与所述临时存储文件对应的统计信息。
5.根据权利要求4所述的方法,所述键值包括主键;
所述针对分组得到的各个分组中的至少部分分组中的数据进行统计,包括:
针对分组得到的各个分组中与所述待写入数据的主键对应的分组中的数据进行统计,得到与所述临时存储文件对应的统计信息。
6.根据权利要求2所述的方法,还包括:
获取针对待读取的目标数据的读指令;其中,所述读指令包含数据查询范围;
响应于所述读指令,遍历所述存储系统的内存中存储的查询索引,从所述存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与所述数据查询范围存在交集的目标文件,并从筛选出的所述目标文件中读取所述目标数据。
7.根据权利要求6所述的方法,在所述统计信息的数值严格递增的场景下,所述方法还包括:
将所述查询范围与最晚存入所述持久化存储的持久化存储文件对应的统计信息进行匹配,确定在其之前存入的文件是否在所述查询范围内;
如果否,则确定所述最晚存入所述持久化存储的持久化存储文件为目标数据文件。
8.根据权利要求1所述的方法,所述存储系统包括LSM存储系统。
9.一种数据读取方法,应用于存储系统,所述方法包括:
获取针对待读取的目标数据的读指令;其中,所述读指令包含数据查询范围;
响应于所述读指令,遍历所述存储系统的内存中存储的查询索引,从所述存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与所述数据查询范围存在交集的目标文件,并从筛选出的所述目标文件中读取所述目标数据。
10.根据权利要求9所述的方法,在所述统计信息的数值严格递增的场景下,所述方法还包括:
将所述查询范围与最晚存入所述持久化存储的持久化存储文件对应的统计信息进行匹配,确定在其之前存入的文件是否在所述查询范围内;
如果否,则确定所述最晚存入所述持久化存储的持久化存储文件为目标数据文件。
11.一种数据写入装置,应用于存储系统,所述装置包括:
第一写入模块,用于响应于针对待写入的数据对应的写指令,将待写入的数据写入内存中的临时存储文件中;
统计信息模块,用于确定临时存储文件中的待写入数据的数量是否达到预设的数量阈值;
如果是,针对所述临时存储文件中存储的待写入数据进行统计,得到所述临时存储文件对应的统计信息;其中,所述统计信息包括所述待写入数据的值域;
第二写入模块,将所述统计信息和所述临时存储文件中的待写入数据,写入存储系统搭载的持久化存储,以在所述持久化存储中生成与所述临时存储文件对应的持久化存储文件;其中,所述统计信息用于作为针对所述存储系统中存储的数据进行范围查询时的查询索引。
12.一种数据读取装置,应用于存储系统,所述装置包括:
指令获取模块,用于获取针对待读取的目标数据的读指令;其中,所述读指令包含数据查询范围;
目标文件筛选模块,用于响应于所述读指令,遍历所述存储系统的内存中存储的查询索引,从所述存储系统中存储的临时存储文件和持久化存储文件中筛选出统计信息与所述数据查询范围存在交集的目标文件,并从筛选出的所述目标文件中读取所述目标数据。
13.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-8或9-10中任一项所述的方法。
14.一种机器可读存储介质,其上存储有机器可读指令,该指令被处理器执行时实现如权利要求1-8或9-10中任一项所述的方法。
CN202210306946.5A 2022-03-25 2022-03-25 数据写入方法及装置、数据读取方法及装置 Pending CN114691612A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210306946.5A CN114691612A (zh) 2022-03-25 2022-03-25 数据写入方法及装置、数据读取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210306946.5A CN114691612A (zh) 2022-03-25 2022-03-25 数据写入方法及装置、数据读取方法及装置

Publications (1)

Publication Number Publication Date
CN114691612A true CN114691612A (zh) 2022-07-01

Family

ID=82139882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210306946.5A Pending CN114691612A (zh) 2022-03-25 2022-03-25 数据写入方法及装置、数据读取方法及装置

Country Status (1)

Country Link
CN (1) CN114691612A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936387A (zh) * 2022-07-25 2022-08-23 深圳市明源云科技有限公司 文本文件读取方法、写入方法、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188108A (zh) * 2019-06-10 2019-08-30 北京平凯星辰科技发展有限公司 数据存储方法、装置、系统、计算机设备及存储介质
CN110825748A (zh) * 2019-11-05 2020-02-21 北京平凯星辰科技发展有限公司 利用差异化索引机制的高性能和易扩展的键值存储方法
US20200333968A1 (en) * 2019-04-17 2020-10-22 Oath Inc. Method and system for key-value storage
CN113392087A (zh) * 2021-05-31 2021-09-14 阿里巴巴新加坡控股有限公司 数据访问方法及计算设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200333968A1 (en) * 2019-04-17 2020-10-22 Oath Inc. Method and system for key-value storage
CN110188108A (zh) * 2019-06-10 2019-08-30 北京平凯星辰科技发展有限公司 数据存储方法、装置、系统、计算机设备及存储介质
CN110825748A (zh) * 2019-11-05 2020-02-21 北京平凯星辰科技发展有限公司 利用差异化索引机制的高性能和易扩展的键值存储方法
CN113392087A (zh) * 2021-05-31 2021-09-14 阿里巴巴新加坡控股有限公司 数据访问方法及计算设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MICHALIS VARDOULAKIS等: "Using RDMA for Efficient Index Replication in LSM Key-Value Stores", 《HTTPS://ARXIV.ORG/ABS/2110.09918》, 19 October 2021 (2021-10-19), pages 1 - 14 *
游翎璟: "基于内外存联合优化的高性能键值存储系统", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 8, 15 August 2021 (2021-08-15), pages 137 - 26 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936387A (zh) * 2022-07-25 2022-08-23 深圳市明源云科技有限公司 文本文件读取方法、写入方法、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN106874348B (zh) 文件存储和索引方法、装置及读取文件的方法
CN111737265B (zh) 区块数据访问方法、区块数据存储方法及装置
CN114780537A (zh) 流表存储及报文转发方法、装置、计算设备及介质
CN114490060A (zh) 内存分配方法、装置、计算机设备和计算机可读存储介质
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN114817657A (zh) 待检索数据处理方法、数据检索方法、电子设备及介质
CN114691612A (zh) 数据写入方法及装置、数据读取方法及装置
CN115033185A (zh) 访存处理方法和装置、存储装置、芯片、板卡、电子设备
CN109189726B (zh) 一种读写日志的处理方法及装置
CN114816240A (zh) 一种数据写入方法及一种数据读取方法
CN114936010B (zh) 数据处理方法、装置、设备及介质
TW202004521A (zh) 一種lsm樹的優化方法、裝置及電腦設備
CN112307272B (zh) 确定对象之间关系信息的方法、装置、计算设备及存储介质
CN115167762A (zh) 数据分层存储方法及装置
CN114239963A (zh) 有向图循环路径检测方法及装置
CN113419792A (zh) 一种事件处理方法、装置、终端设备和存储介质
CN116107761B (zh) 性能调优方法、系统、电子设备及可读存储介质
CN116126546B (zh) 一种性能调优的方法、装置、电子设备及介质
CN111131197B (zh) 一种过滤策略管理系统及其方法
CN117725096B (zh) 关系型数据库的数据存储和查询方法、装置、设备及介质
CN114629824B (zh) 丢包定位方法、装置、计算设备及介质
CN115633097B (zh) 一种访问控制列表acl压缩方法及装置
CN117591031A (zh) 一种对象存储方法及系统
CN112711684A (zh) 重复数据检测方法及装置
CN114003607A (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