CN113094372A - 数据存取方法、数据存取控制装置及数据存取系统 - Google Patents
数据存取方法、数据存取控制装置及数据存取系统 Download PDFInfo
- Publication number
- CN113094372A CN113094372A CN202110413837.9A CN202110413837A CN113094372A CN 113094372 A CN113094372 A CN 113094372A CN 202110413837 A CN202110413837 A CN 202110413837A CN 113094372 A CN113094372 A CN 113094372A
- Authority
- CN
- China
- Prior art keywords
- key
- index
- value
- pair
- data access
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000004044 response Effects 0.000 claims abstract description 23
- 239000007787 solid Substances 0.000 claims abstract description 9
- 238000013500 data storage Methods 0.000 claims description 12
- 238000007906 compression Methods 0.000 claims description 9
- 230000006835 compression Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013403 standard screening design Methods 0.000 description 48
- 230000003321 amplification Effects 0.000 description 11
- 238000003199 nucleic acid amplification method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/465—Structured object, e.g. database record
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种数据存取方法、数据存取控制装置及数据存取系统,所述数据存取方法包括:响应于接收到第一键值对,生成与第一键值对中的键相应的索引;将与所述键和所述索引相应的键索引对写入块存储装置中,其中,所述键索引对以日志结构合并树LSM‑Tree结构在所述块存储装置中存储;将与所述索引和第一键值对中的值相应的索引值对写入键值固态驱动器KV SSD。
Description
技术领域
本申请涉及数据存取技术领域,更具体地,涉及一种数据存取方法、数据存取控制装置及数据存取系统。
背景技术
日志结构合并树LSM-Tree(Log-Structured Merge-Tree)是目前主流数据库引擎常采用的数据存储架构。
参照图1示出的经典Level DB LSM-Tree的存储过程的示意图,整个存储过程主要包括:步骤1,将应用层写入的键值对<key,value>直接追加写入日志(Log)文件;步骤2,将<Key,Value>随机写入内存的memTable并进行排序;步骤3,memTable写满后被标记为不可写的immutable;步骤4,immutable的数据刷入块存储装置第0层(L0)的SSTable(SortedString Table)文件中;步骤5,后台线程对SSTable逐层进行归并压缩(Compaction)。其中,在步骤4和步骤5中,针对块存储装置的输入和输出都是顺序操作。
如上所述,LSM-Tree在块存储装置中的存储过程,采用顺序写入机制,这可以极大地提升块(Block)存储装置(例如,HDD-Hard Disk Drive,Block SSD–Block Solid StateDrive)的写性能。同时LSM-Tree如上所述,基于块存储装置的LSM-Tree数据库引擎依赖于文件系统进行SSTable文件写入,可以很好地应用于块存储设备。
然而,在写入数据或更新数据时,由于块存储装置所有的写入都是追加写入(append-only),不是原地更新(in-place update),失效数据不会马上被清理掉。因此LSM-Tree在块存储装置中的存储存在严重的空间放大(Space Amplification)问题,进而导致SSD的使用寿命缩短,同时增加存储成本的问题。
那如何既能利用LSM-Tree数据库在块存储设备中快速写入(顺序写入)的性能,以及LSM-Tree的SSTable文件存储对块存储设备的依赖关系,又能延长数据库的存储设备寿命,降低数据库存储成本,是本发明亟待解决的问题。
发明内容
本发明的示例性实施例在于提供一种数据存取方法、数据存取控制装置以及数据存储系统,在既能利用LSM-Tree数据库在块存储设备中快速写入的性能(顺序写入),以及LSM-Tree的SSTable文件存储对块存储设备的依赖关系的同时,又以期延长数据库的存储设备寿命,降低数据库存储成本。
根据本发明的示例性实施例,提供一种数据存取方法,所述方法包括:响应于接收到第一键值对,生成与第一键值对中的键相应的索引;将与所述键和所述索引相应的键索引对写入块存储装置中,其中,所述键索引对以日志结构合并树LSM-Tree结构在所述块存储装置中存储;将与所述索引和第一键值对中的值相应的索引值对写入键值固态驱动器KVSSD。
可选地,所述方法还包括:响应于读取所述键的指令,在所述块存储装置中查找与所述键相应的键索引对;依据查找到的所述键索引对中的索引,从所述KV SSD中读取所述索引相应的所述值。
通过引入索引实现键值分离存取,在利用LSM-Tree数据库在块存储设备中快速写入的性能(顺序写入),以及LSM-Tree的SSTable文件存储对块存储设备的依赖关系的同时,有效解决了基于LSM-Tree数据库引擎无法适配到KV SSD的问题。
可选地,所述方法还包括:对所述块存储装置中存储的所述键索引对进行归并压缩。由于归并压缩操作针对的是索引,而索引的长度往往小于值的长度,因此,可以有效减小LSM-Tree的写放大和读放大。
可选地,在对第一键值对中的值更新时,所述方法还包括:响应于接收到与所述键和更新值相应的第二键值对,生成与所述键相应的所述索引;将与所述键和所述索引相应的所述键索引对写入所述块存储装置中;依据所述索引,用所述更新值覆盖所述KV SSD中所述索引对应的所述值。
由于在KV SSD中只存在与键相应的新值,因此本申请的键值存储方案能够有效减小存储数据的空间放大。
根据本发明的示例性实施例,提供一种数据存取控制装置,所述数据存取控制装置包括:索引生成单元,被配置为响应于接收到第一键值对生成与第一键值对中的键相应的索引;写入单元,被配置为:将与所述键和所述索引相应的键索引对写入块存储装置中,以及将与所述索引和第一键值对中的值相应的索引值对写入键值固态驱动器KV SSD,其中,所述键索引对以日志结构合并树LSM-Tree结构在所述块存储装置中存储。
可选地,所述数据存取控制装置还包括查找单元,被配置为:响应于读取所述键的指令,在所述块存储装置中查找与所述键相应的键索引对;依据查找到的所述键索引对中的索引,从所述KV SSD中读取所述索引相应的索引值对。
通过引入索引实现键值分离存取,利用LSM-Tree数据库在块存储设备中快速写入的性能(顺序写入),以及LSM-Tree的SSTable文件存储对块存储设备的依赖关系的同时,有效解决了基于LSM-Tree数据库引擎无法适配到KV SSD的问题。
可选地,所述数据存取控制装置还包括归并压缩单元,被配置为:对所述块存储装置中存储的所述键索引对进行归并压缩。由于归并压缩操作针对的是索引,而索引的长度往往小于值的长度,因此,可以有效减小LSM-Tree的写放大和读放大。
可选地,在对第一键值对中的值更新时,索引生成单元,还被配置为:响应于接收到与所述键和更新值相应的第二键值对,生成与所述键相应的所述索引;写入单元,还被配置为:将与所述键和所述索引相应的所述键索引对写入所述块存储装置中;以及依据所述索引,用所述更新值覆盖所述KV SSD中所述索引对应的所述值。由于在KV SSD中只存在与键相应的新值,因此本申请的键值存储方案能够有效减小存储数据的空间放大。
根据本发明的示例性实施例,提供一种数据存取系统,所述数据存取系统包括:块存储装置;键值固态驱动器KV SSD;数据存取控制装置,其中,所述数据存取控制装置包括:索引生成单元,被配置为响应于接收到第一键值对生成与第一键值对中的键相应的索引;写入单元,被配置为:将与所述键和所述索引相应的键索引对写入所述块存储装置中,其中,所述键索引对以日志结构合并树LSM-Tree结构在所述块存储装置中存储;以及将与所述索引和第一键值对中的值相应的索引值对写入KV SSD。通过引入索引实现键值分离存取,利用LSM-Tree数据库在块存储设备中快速写入的性能(顺序写入),以及LSM-Tree的SSTable文件存储对块存储设备的依赖关系的同时,有效解决了基于LSM-Tree数据库引擎无法适配到KV SSD的问题。
根据本发明的示例性实施例,提供一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时实现如上所述的数据存取方法。
根据本发明的示例性实施例,提供一种数据存储装置,其中,所述装置包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的数据存取方法。
附图说明
通过下面结合附图进行的详细描述,本发明的上述和其它目的、特点和优点将会变得更加清楚,其中:
图1是示出经典的LevelDB LSM-Tree的存储过程的示意图;
图2是示出WiscKey键值存储方案的示图;
图3是示出根据本公开的实施例的数据存储方法的流程图;
图4是示出根据本公开的实施例的键值存储方案的示意图;
图5是示出根据本公开的实施例的数据存储控制装置的框图;以及
图6是示出根据本公开的实施例的数据存取系统的框图。
具体实施方式
在下文中,参照附图对本公开的各种实施例进行描述,其中,相同的标号用于表示相同或相似的元件、特征和结构。然而,不旨在由本文所述的各种实施例将本公开限制于具体实施例,并且旨在于:本公开覆盖本公开的所有修改、等同物和/或替代物,只要它们在所附权利要求及其等同物的范围内。在以下说明书和权利要求书中使用的术语和词语不限于它们的词典含义,而是仅被用于使得能够清楚和一致地理解本公开。因此,对于本领域技术人员应显而易见的是:提供本公开的各种实施例的以下描述仅用于说明的目的,而不是为了限制由所附权利要求和它们的等同物限定的本公开的目的。
应理解,除非上下文另外明确指出,否则单数形式包括复数形式。本文使用的术语“包括”、“包含”和“具有”指示公开的功能、操作或元件的存在,但不排除其它功能、操作或元件。
例如,表述“A或B”、或“A和/或B中的至少一个”可指示A和B、A或者B。例如,表述“A或B”或“A和/或B中的至少一个”可指示(1)A、(2)B或(3)A和B两者。
在本公开的各种实施例中,意图是:当组件(例如,第一组件)被称为与另一组件(例如,第二组件)“耦接”或“连接”或者被“耦接”或者“连接”到另一组件(例如,第二组件)时,所述组件可被直接连接到所述另一组件,或者可通过另一组件(例如,第三组件)被连接。相比之下,当组件(例如,第一组件)被称为与另一组件(例如,第二组件)“直接耦接”或“直接连接”或者被直接耦接到或直接连接到另一组件(例如,第二组件)时,在所述组件和所述另一组件之间不存在另一组件(例如,第三组件)。
在描述本公开的各种实施例中使用的表述“被配置为”可以例如根据情况与诸如“适用于”、“具有…的能力”、“被设计为”、“适合于”、“被制造为”和“能够”的表述互换使用。术语“被配置为”可不一定指示按照硬件“被专门设计为”。相反,在一些情况下的表述“被配置为...的装置”可指示所述装置和另一装置或者部分“能够…”。例如,表述“被配置为执行A、B和C的处理器”可指示用于执行相应操作的专用处理器(例如,嵌入式处理器)或用于通过执行存储在存储器装置中的至少一个软件程序来执行相应的操作的通用处理器(例如,中央处理单元CPU或应用处理器(AP))。
本文使用的术语在于描述本公开的某些实施例,但并不旨在限制其它实施例的范围。除非本文另外指出,否则本文使用的所有术语(包括技术或科学术语)可具有与本领域技术人员通常理解的含义相同含义。通常,词典中定义的术语应被视为具有与相关领域中的上下文含义相同的含义,并且,除非本文明确地定义,否则不应被不同地理解或被理解为具有过于正式的含义。在任何情况下,本公开中定义的术语也不旨在被解释为排除本公开的实施例。
图2是示出WiscKey Key-Value存储方案的示图。WiscKey Key-Value存储方案是基于LSM-tree的键(key)值(value)存储方案,其将键和值在块SSD中分开存储以减小输入/输出放大。
图3是示出根据本公开的实施例的数据存储方法的流程图。
为了更清楚地解释本公开,下文中以具有块SSD和KV SSD的电子设备为例,进行说明。
作为示例,以下根据本公开的实施例的数据存储方法可由安装在电子设备中的应用程序来执行。
本领域人员应当理解,具有块存储装置和KV SSD的电子设备仅是用于说明的目的的示例,不限制本公开的实施例。
参照图3,在步骤S101,响应于接收到第一键值对<key,value>,生成与第一键值对中的键相应的索引。作为示例,可针对输入的键值对中的键生成索引index,其中,索引的长度整体上显著小于Value的长度。作为示例,针对键生成的索引可以具有相同的长度,即与每个键值对相应的索引的长度是相同的。
作为示例,可通过应用程序生成与键值对中的键相应的索引。
在步骤S102,将与所述键和所述索引相应的键索引对<key,index>写入块存储装置中,其中,所述键索引对以日志结构合并树LSM-Tree结构在所述块存储装置中存储。也就是说,基于LSM-Tree数据架构存储键索引对。
具体地,根据LSM-Tree数据库的存储机制,由于写入操作为顺序写入,因此,<Key,index>可被快速地写入块存储装置。
本领域技术人员应当理解,块存储装置可包括HDD、块SSD以及其它以块为存储单元的存储装置。
在步骤S103,将与所述索引和第一键值对中的值相应的索引值对写入键值固态驱动器KV SSD。也就是说,针对输入的键值对,在添加索引后将索引值对<index,value>写入KV SSD。
如上文所述,KV SSD采用了增强的闪存转换层FTL(Flash Translation Layer),提供有Key-value写入接口,因此,可直接响应应用程序写入索引值对<index,value>的请求,将索引值对<index,value>写入KV SSD。
例如,当存储Key1-Value1时,响应于接收到的键值对<Key1,Value1>,生成与Key1相应的索引index1,将<Key1,index1>存储在块存储装置中,将索引值对<index1,Value1>存储在KV SSD中。
图4是示出根据本公开的实施例的键值分离存储方案的示意图。
参照图4,键索引对存储在块存储装置中,索引值对存储在KV SSD中。
作为示例,响应于读取键的指令,在块存储装置中查找与所述键相应的键索引对;依据查找到的所述键索引对中的索引,从所述KV SSD中读取所述索引相应的值。也就是说,当接收到读取键的指令时,先在LSM-Tree数据库中查找与键相应的键索引对,当查找到相应的键索引对时,可基于相应的键索引对中的索引在KV SSD中查找与该索引相应的索引值对,当查询到相应的索引值对时,即可读取索引值对中的值。
作为示例,可通过应用程序接收对Key-value的读取请求,在接收到读取请求后,在块存储装置中查找与Key相应的键索引对,当查找到与Key相应的键索引对时,可通过应用程序请求KV SSD中与查找到的键索引对中的索引相应的索引值对,从而获得请求的Key-value。
作为示例,可对块存储装置中存储的键索引对进行归并压缩。由于归并压过程与现有技术中的键值对归并压缩的过程相同,在此不做赘述。
由于LSM-Tree数据库引擎在执行归并压缩时针对的是键索引对,避免了在LSM-Tree的各层之间搬移拷贝Value数据,由于索引的长度整体上显著小于value的长度,因此可以降低数据的空间放大,延长块存储装置的使用寿命。
作为示例,还可对第一键值对中的值进行更新,对键值对中的值更新的步骤可包括:响应于接收到与键和更新值相应的第二键值对,生成与所述键相应的索引;将与所述键和所述索引相应的所述键索引对写入块存储装置中;依据所述索引,用所述更新值覆盖KVSSD中所述索引对应的旧值。
具体地,例如,在写入<Key1,Value1>之后,在块SSD中存储有键索引对<Key1,index1>,在KV SSD中存储有<index1,Value1>,当对Key1的值进行更新时,例如将Key1的值由旧值Value1更新为Value2,生成与<Key1,Value2>相应的索引index1,将<Key1,index1>写入块SSD中,此时,LSM-Tree数据库中可在不同的层中存在更新操作之前生成的<Key1,index1>和更新操作生成的<Key1,index1>(后续会在compaction后最终只保留最上层的<Key1,index1>),然后将<index1,Value2>写入KV SSD,在将<index1,Value2>写入KV SSD时,Value2会将Value1覆盖掉,在这种情况下,KV SSD中仅存储最新的Key1的值Value2,即仅存储有<index1,Value2>。
作为一种可实现的实施方式,所述块存储装置中存储的键索引对中还可以包括时间戳信息。在对所述键值对中的值更新前后,所述块存储装置中存储的键和索引相同,时间戳信息则不同。
作为另一种实施方式,在对所述键值对中的值更新时,也可以考虑不需要重新再次生成索引,可以依据所述键从所述块存储装置中查找所述键对应的索引,依据所述索引用所述更新值覆盖所述KV SSD中所述索引对应的值。
本领域技术人员应当理解,上文中的索引的编号仅是为了说明的目的,不限制本发明的实施例。
另外,由于KV SSD具有直接更新复写的特性,KV SSD将过期value的垃圾回收工作从主机端转移到KV SSD上进行,从而使主机可专注于计算性工作,从而提升系统的整体写性能。
如上所述,根据本公开发明的实施例,通过将Key-Value分离进行存储,保留了LSM-Tree良好的插入、查询性能。此外,在归并压缩时,只针对键索引对进行拷贝重写,避免了Value数据在各层间的搬移拷贝。另外,利用KV SSD支持直接复写无需关心数据删除的特性,直接用最新数据覆盖过期数据,显著降低LSM-Tree的空间放大,同时可以充分利用KVSSD具有更好的随机输入输出性能、高并发、系统资源消耗低的特点,提升写性能。
下面参照图5对根据本公开的实施例的数据存储控制装置进行描述。
图5是示出根据本公开的实施例的数据存储控制装置的框图。
参照图5,数据存取控制装置500可包括索引生成单元501、写入单元502。作为示例,数据存取控制装置500还可另外地包括其他组件,并且数据存取控制装置500包括的组件也可被组合。
作为示例,索引生成单元501可被配置为响应于接收到第一键值对<Key,Value>生成与第一键值对中的键相应的索引index。
作为示例,写入单元502,被配置为:将与所述键和所述索引相应的键索引对<Key,index>写入块存储装置中,其中,所述键索引对以LSM-Tree结构在所述块存储装置中存储;以及将与所述索引和第一键值对中的值相应的索引值对<index,Value>写入KV SSD。
作为示例,以安装有块存储装置和KV SSD的电子设备为例,电子设备或者电子设备的处理器可以作为数据存取控制装置。
作为示例,数据存取控制装置500还包括查找单元(未示出),查找单元可被配置为:响应于读取键的指令,在块存储装置中查找与键相应的键索引对;依据查找到的键索引对中的索引,从KV SSD中读取索引相应的索引值对。
作为示例,数据存取控制装置500还包括归并压缩单元(未示出),归并压缩单元被配置为:对块存储装置中存储的键索引对进行归并压缩。
作为示例,在对第一键值对中的值更新时,索引生成单元,还被配置为:响应于接收到与键和更新值相应的第二键值对,生成与键相应的索引。
作为示例,在对键值对中的值更新时,写入单元,还被配置为:将与键和索引相应的键索引对写入块存储装置中;以及依据索引,用更新值覆盖KV SSD中索引对应的旧值。
下面参照图6描述根据本公开的实施例的数据存取系统。
图6是示出根据本公开的实施例的数据存取系统的框图。
参照图6,数据存取系统600包括:块存储装置601、KV SSD 602和数据存取控制装置603。
图6中的数据存取控制装置与图5中数据存取控制装置500相同,在此不做赘述。
根据本公开的实施例,提供了一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时实现如上所述的数据存储方法。
根据本公开的实施例,提供了一种数据存取装置,其中,所述装置包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的数据存储方法。
虽然本公开包括特定示例,但本领域的普通技术人员将理解,可在不脱离权利要求及其等同物的精神和范围的情况下,在形式和细节上做出各种改变。在此公开的示例将被视为描述性意义,而不是为了限制的目的。在每个示例中对特征或方面的描述将被视为可适用于其他示例中的相似特征或方面。如果以不同的顺序执行描述的技术,和/或如果以不同的方式组合和/或由其他部件或其等同物替代或补充描述的系统、结构、装置或电路,则可获得合适的结果。因此,公开的范围不是由详细的描述限定,而是由权利要求及其等同物体限定,权利要求及其等同物的范围内的全部改变将被视为包括在本公开内。
Claims (11)
1.一种数据存取方法,其特征在于,所述方法包括:
响应于接收到第一键值对,生成与第一键值对中的键相应的索引;
将与所述键和所述索引相应的键索引对写入块存储装置中,其中,所述键索引对以日志结构合并树LSM-Tree结构在所述块存储装置中存储;
将与所述索引和第一键值对中的值相应的索引值对写入键值固态驱动器KV SSD。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于读取所述键的指令,在所述块存储装置中查找与所述键相应的键索引对;
依据查找到的所述键索引对中的索引,从所述KV SSD中读取所述索引相应的所述值。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
对所述块存储装置中存储的所述键索引对进行归并压缩。
4.如权利要求3所述的方法,其特征在于,在对第一键值对中的值更新时,所述方法还包括:
响应于接收到与所述键和更新值相应的第二键值对,生成与所述键相应的所述索引;
将与所述键和所述索引相应的所述键索引对写入所述块存储装置中;
依据所述索引,用所述更新值覆盖所述KV SSD中所述索引对应的所述值。
5.一种数据存取控制装置,其特征在于,所述数据存取控制装置包括:
索引生成单元,被配置为响应于接收的第一键值对生成与第一键值对中的键相应的索引;
写入单元,被配置为:
将与所述键和所述索引相应的键索引对写入块存储装置中,其中,所述键索引对以日志结构合并树LSM-Tree结构在所述块存储装置中存储;以及
将与所述索引和第一键值对中的值相应的索引值对写入键值固态驱动器KV SSD。
6.如权利要求5所述的数据存取控制装置,其特征在于,所述数据存取控制装置还包括查找单元,被配置为:
响应于读取所述键的指令,在所述块存储装置中查找与所述键相应的键索引对;
依据查找到的所述键索引对中的索引,从所述KV SSD中读取所述索引相应的索引值对。
7.如权利要求5所述的数据存取控制装置,其特征在于,所述数据存取控制装置还包括归并压缩单元,被配置为:对所述块存储装置中存储的所述键索引对进行归并压缩。
8.如权利要求7所述的数据存取控制装置,其特征在于,在对第一键值对中的值更新时,
索引生成单元,还被配置为:响应于接收到与所述键和更新值相应的第二键值对,生成与所述键相应的所述索引;
写入单元,还被配置为:
将与所述键和所述索引相应的所述键索引对写入所述块存储装置中;以及依据所述索引,用所述更新值覆盖所述KV SSD中所述索引对应的所述值。
9.一种数据存取系统,其特征在于,所述数据存取系统包括:
块存储装置;
键值固态驱动器KV SSD;
数据存取控制装置,
其中,所述数据存取控制装置包括:
索引生成单元,被配置为响应于接收到第一键值对生成与第一键值对中的键相应的索引;
写入单元,被配置为:
将与所述键和所述索引相应的键索引对写入所述块存储装置中,其中,所述键索引对以日志结构合并树LSM-Tree结构在所述块存储装置中存储;以及
将与所述索引和第一键值对中的值相应的索引值对写入所述KV SSD。
10.一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时实现如权利要求1-4中的任一项所述的数据存取方法。
11.一种数据存储装置,其中,所述装置包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1-4中的任一项所述的数据存取方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110413837.9A CN113094372A (zh) | 2021-04-16 | 2021-04-16 | 数据存取方法、数据存取控制装置及数据存取系统 |
US17/354,397 US11537582B2 (en) | 2021-04-16 | 2021-06-22 | Data access method, a data access control device, and a data access system |
KR1020220044072A KR20220143578A (ko) | 2021-04-16 | 2022-04-08 | 데이터 접속 방법, 데이터 접속 제어 장치 및 데이터 접속 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110413837.9A CN113094372A (zh) | 2021-04-16 | 2021-04-16 | 数据存取方法、数据存取控制装置及数据存取系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113094372A true CN113094372A (zh) | 2021-07-09 |
Family
ID=76678301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110413837.9A Pending CN113094372A (zh) | 2021-04-16 | 2021-04-16 | 数据存取方法、数据存取控制装置及数据存取系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11537582B2 (zh) |
KR (1) | KR20220143578A (zh) |
CN (1) | CN113094372A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688096A (zh) * | 2021-07-15 | 2021-11-23 | 三星(中国)半导体有限公司 | 存储方法、存储装置和存储系统 |
CN114077609A (zh) * | 2022-01-19 | 2022-02-22 | 北京四维纵横数据技术有限公司 | 数据存储及检索方法,装置,计算机可读存储介质及电子设备 |
CN114416752A (zh) * | 2022-03-31 | 2022-04-29 | 南京得瑞芯存科技有限公司 | Kv ssd的数据处理方法及装置 |
WO2023158239A1 (ko) * | 2022-02-18 | 2023-08-24 | 울산과학기술원 | 로그 구조 병합 트리를 이용하는 키 밸류 스토어를 위한 보안 컴퓨터 장치 및 방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794687A (zh) * | 2022-12-12 | 2023-03-14 | 三星(中国)半导体有限公司 | 基于日志结构合并树的键值数据存储的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708427A (zh) * | 2016-11-17 | 2017-05-24 | 华中科技大学 | 一种适用于键值对数据的存储方法 |
CN106886375A (zh) * | 2017-03-27 | 2017-06-23 | 百度在线网络技术(北京)有限公司 | 存储数据的方法和装置 |
US20180349095A1 (en) * | 2017-06-06 | 2018-12-06 | ScaleFlux, Inc. | Log-structured merge tree based data storage architecture |
CN109521959A (zh) * | 2018-11-01 | 2019-03-26 | 西安交通大学 | 一种基于ssd-smr磁盘混合键值存储系统数据组织方法 |
CN110389942A (zh) * | 2019-06-21 | 2019-10-29 | 华中科技大学 | 一种无垃圾回收的键值分离存储方法和系统 |
US20200334292A1 (en) * | 2019-04-18 | 2020-10-22 | Stellus Technologies, Inc. | Key value append |
CN111857582A (zh) * | 2020-07-08 | 2020-10-30 | 平凯星辰(北京)科技有限公司 | 一种键值存储系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433695B2 (en) | 2010-07-02 | 2013-04-30 | Futurewei Technologies, Inc. | System architecture for integrated hierarchical query processing for key/value stores |
US9400816B1 (en) * | 2013-02-28 | 2016-07-26 | Google Inc. | System for indexing collections of structured objects that provides strong multiversioning semantics |
US9311252B2 (en) | 2013-08-26 | 2016-04-12 | Globalfoundries Inc. | Hierarchical storage for LSM-based NoSQL stores |
CN103559027A (zh) | 2013-10-22 | 2014-02-05 | 北京航空航天大学 | 一种key与value分开存储的key-value存储系统设计方法 |
CN104408091B (zh) | 2014-11-11 | 2019-03-01 | 清华大学 | 分布式文件系统的数据存储方法及系统 |
CN105117415B (zh) | 2015-07-30 | 2018-07-03 | 西安交通大学 | 一种优化的ssd数据更新方法 |
CN106407224B (zh) | 2015-07-31 | 2019-09-13 | 华为技术有限公司 | 一种键值存储系统中文件压实的方法和装置 |
US10795871B2 (en) | 2016-09-26 | 2020-10-06 | Vmware, Inc. | Key-value stores implemented using fragmented log-structured merge trees |
US10872066B2 (en) * | 2017-06-27 | 2020-12-22 | Salesforce.Com, Inc. | Systems and methods of database tenant migration |
US10445022B1 (en) | 2018-04-26 | 2019-10-15 | Alibaba Group Holding Limited | Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices |
CN110032549B (zh) | 2019-01-28 | 2023-10-20 | 北京奥星贝斯科技有限公司 | 分区分裂方法、装置、电子设备及可读存储介质 |
CN110347336B (zh) | 2019-06-10 | 2020-07-10 | 华中科技大学 | 一种基于nvm与ssd混合存储结构的键值存储系统 |
CN110825748B (zh) | 2019-11-05 | 2023-05-16 | 平凯星辰(北京)科技有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN111399777B (zh) | 2020-03-16 | 2023-05-16 | 平凯星辰(北京)科技有限公司 | 一种基于数据值分类的差异化键值数据存储方法 |
-
2021
- 2021-04-16 CN CN202110413837.9A patent/CN113094372A/zh active Pending
- 2021-06-22 US US17/354,397 patent/US11537582B2/en active Active
-
2022
- 2022-04-08 KR KR1020220044072A patent/KR20220143578A/ko unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708427A (zh) * | 2016-11-17 | 2017-05-24 | 华中科技大学 | 一种适用于键值对数据的存储方法 |
CN106886375A (zh) * | 2017-03-27 | 2017-06-23 | 百度在线网络技术(北京)有限公司 | 存储数据的方法和装置 |
US20180349095A1 (en) * | 2017-06-06 | 2018-12-06 | ScaleFlux, Inc. | Log-structured merge tree based data storage architecture |
CN109521959A (zh) * | 2018-11-01 | 2019-03-26 | 西安交通大学 | 一种基于ssd-smr磁盘混合键值存储系统数据组织方法 |
US20200334292A1 (en) * | 2019-04-18 | 2020-10-22 | Stellus Technologies, Inc. | Key value append |
CN110389942A (zh) * | 2019-06-21 | 2019-10-29 | 华中科技大学 | 一种无垃圾回收的键值分离存储方法和系统 |
CN111857582A (zh) * | 2020-07-08 | 2020-10-30 | 平凯星辰(北京)科技有限公司 | 一种键值存储系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688096A (zh) * | 2021-07-15 | 2021-11-23 | 三星(中国)半导体有限公司 | 存储方法、存储装置和存储系统 |
CN114077609A (zh) * | 2022-01-19 | 2022-02-22 | 北京四维纵横数据技术有限公司 | 数据存储及检索方法,装置,计算机可读存储介质及电子设备 |
WO2023158239A1 (ko) * | 2022-02-18 | 2023-08-24 | 울산과학기술원 | 로그 구조 병합 트리를 이용하는 키 밸류 스토어를 위한 보안 컴퓨터 장치 및 방법 |
CN114416752A (zh) * | 2022-03-31 | 2022-04-29 | 南京得瑞芯存科技有限公司 | Kv ssd的数据处理方法及装置 |
CN114416752B (zh) * | 2022-03-31 | 2022-07-15 | 南京得瑞芯存科技有限公司 | Kv ssd的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20220143578A (ko) | 2022-10-25 |
US11537582B2 (en) | 2022-12-27 |
US20220335028A1 (en) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649910B2 (en) | Persistent memory for key-value storage | |
CN113094372A (zh) | 数据存取方法、数据存取控制装置及数据存取系统 | |
US10466932B2 (en) | Cache data placement for compression in data storage systems | |
US10402091B1 (en) | Managing data in log-structured storage systems | |
US9965394B2 (en) | Selective compression in data storage systems | |
KR101988683B1 (ko) | 부분 중복제거가 된 파일의 최적화 기법 | |
KR100484147B1 (ko) | 플래시 메모리 관리 방법 | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
US10445022B1 (en) | Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices | |
US11580162B2 (en) | Key value append | |
US20140115244A1 (en) | Apparatus, system and method for providing a persistent level-two cache | |
US10936412B1 (en) | Method and system for accessing data stored in data cache with fault tolerance | |
CN108121813B (zh) | 数据管理方法、装置、系统、存储介质及电子设备 | |
US9189408B1 (en) | System and method of offline annotation of future accesses for improving performance of backup storage system | |
US8433871B2 (en) | Data copy management for faster reads | |
KR20210123236A (ko) | 키-값 장치들을 위한 키-값 저장소 아키텍처 | |
Kim et al. | Exploiting compression-induced internal fragmentation for power-off recovery in SSD | |
US10733105B1 (en) | Method for pipelined read optimization to improve performance of reading data from data cache and storage units | |
US10908818B1 (en) | Accessing deduplicated data from write-evict units in solid-state memory cache | |
CN112817962B (zh) | 基于对象存储的数据存储方法、装置和计算机设备 | |
US10565120B1 (en) | Method for efficient write path cache load to improve storage efficiency | |
US9646012B1 (en) | Caching temporary data in solid state storage devices | |
US20240152455A1 (en) | Techniques for instance storage using segment-based storage | |
US11960757B2 (en) | Flash translation layer with rewind | |
CN117389909A (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 |