CN116860722B - 一种数据库持久化组织优化方法 - Google Patents
一种数据库持久化组织优化方法 Download PDFInfo
- Publication number
- CN116860722B CN116860722B CN202311109773.9A CN202311109773A CN116860722B CN 116860722 B CN116860722 B CN 116860722B CN 202311109773 A CN202311109773 A CN 202311109773A CN 116860722 B CN116860722 B CN 116860722B
- Authority
- CN
- China
- Prior art keywords
- data
- key value
- user
- database
- internal key
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000002688 persistence Effects 0.000 title claims abstract description 19
- 238000005457 optimization Methods 0.000 title claims abstract description 17
- 230000008520 organization Effects 0.000 title claims abstract description 10
- 238000013507 mapping Methods 0.000 claims abstract description 36
- 230000002045 lasting effect Effects 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000012423 maintenance Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 239000007787 solid Substances 0.000 claims description 5
- 230000006870 function Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 239000002253 acid Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013506 data mapping Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
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/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/217—Database tuning
-
- 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
- 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
- G06F16/24552—Database cache management
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库持久化组织优化方法,其步骤包括:针对待优化的数据库,在内存中为该数据库创建一追加日志索引结构ALI,用于存储用户键值到内部键值一对一的映射关系,并将映射关系存储在KVSSD中;该数据库持久化存储在KVSSD中,为该数据库中的每一数据生成一内部键值,将数据及其内部键值进行映射及数据持久化;当用户向该数据库插入数据时,将该用户的用户键值与ALI中的内部键值进行映射,如果找到匹配的内部键值,则以该匹配的内部键值为键将待插入数据插入到数据库中;如果未找到匹配的内部键值,则为待插入数据生成一内部键值并与该用户的用户键值建立映射关系,然后以该内部键值为键将待插入数据插入到该数据库中。
Description
技术领域
本发明属于数据库技术领域,涉及一种数据库持久化组织优化方法。
背景技术
键值固态硬盘(KVSSD)在NVM设备上抽象了KV的相关接口,使软件可以不通过操作系统以及文件系统而是直接与硬件交互,并且为KV存储进行了优化,其减少了文件操作的中间步骤,并减小了读写放大以及空间放大的问题。其上可以添加B+树进行索引以及优化查询、磁盘调用。
现有的KVSSD接口标准不支持快照、范围查询以及数据库事务支持,对用户的数据库使用需求不能完全覆盖。
同时,以往的索引如B+树等的优化中,优化的均为算法,节省的是软件的空间及时间复杂度等,并没有节约数据库硬件存储空间。
发明内容
针对现有技术中存在的问题,本发明的目的在于提供一种数据库持久化组织优化方法。本发明基于KVSSD的物理特性,摒弃了与文件系统的交互,依赖于硬件本身提供的相关存储功能特点,在性能优化方面具有大幅提升。
本发明为一种基于KVSSD硬件的数据库持久化组织优化方法,设计了追加日志索引结构ALI,在B+树的基础上针对KVSSD的特性进行了改造,在数据更新时不用将实际数据读取到内存中,减少了数据库运行中读写放大的问题,并减少了计算量以及磁盘IO次数。
基于ALI索引结构设计了数据库存储系统,支撑了在KVSSD新硬件上的数据库事务支持、快照机制等数据库基本功能的快速实现。
本发明的技术方案为:
一种数据库持久化组织优化方法,其步骤包括:
针对待优化的数据库,在内存中为该数据库创建一追加日志索引结构ALI,用于存储用户键值到内部键值一对一的映射关系,并将所述映射关系以节点日志的形式追加存储在键值固态硬盘KVSSD中;该数据库持久化存储在所述KVSSD中,为该数据库中的每一数据生成一内部键值,将数据及其内部键值进行映射及数据持久化并使用缓存机制进行缓存优化;
当用户向该数据库插入数据时,将该用户的用户键值与ALI中的内部键值进行映射,如果找到匹配的内部键值,则以该匹配的内部键值为键将该用户待插入数据插入到该数据库中;如果未找到匹配的内部键值,则为该用户待插入数据生成一内部键值Key1并与该用户的用户键值U建立映射关系I1,然后以该内部键值Key1为键将该用户待插入数据插入到该数据库中;
当用户对该数据库中的数据进行维护时,首先根据需要更新的用户键值在ALI中查询到匹配的用户键值U1,以该匹配的用户键值U1为键在该数据库查找对应的内部键值Key2;如果维护是数据更新,则将该内部键值 Key2更新为本次更新的内部键值Key3,并将内部键值Key3在磁盘中指向的数据存储为输入的更新数据;如果维护是数据删除,则将其对应的内部键值Key3更新为空;
当用户对该数据库中的数据进行读取时,首先根据该用户读取的用户键值与ALI中的内部键值进行映射,如果找到匹配的内部键值,则以该匹配的内部键值在缓存中进行查找,如果命中则返回对应的数据,如果未命中则以该匹配的内部键值为键在KVSSD中的数据文件中查找对应的数据。
进一步的,所述追加日志索引结构ALI包括一树形结构,其根节点、中间节点中以多个用户键值有序地划分区间,并存储相应多个用户键值范围区间指向的下一层节点的指针,每一叶子节点中存储的键为用户键值、数据为内部键值。
进一步的,所述追加日志索引结构ALI中维护一节点日志,记录了每个叶子节点中存储的映射关系;对每一叶子节点设置一个编号以及一个计数器,所述计数器用于记录叶子节点的更新次数,节点日志的键为一个8字节的数值,其中前四字节为叶子节点编号,后四字节为该叶子节点的计数器的值,存储的值是该叶子节点上本次写入或更新的数据键值到内部键值的映射关系。
进一步的,当ALI中的节点日志数达到阈值或事务提交时,对ALI进行更新,并在KVSSD中对实际数据进行操作。
进一步的,所述内部键值为一个8字节的编号,其中前4字节为用户的提交编号,后4字节为序列号;所述提交编号为一递增的数值,标识每次用户事务提交的编号;所述事务包括数据的写入、删除、更新、查询。
进一步的,当事务回滚时,将该事务的提交编号与ALI中的内部键值进行匹配,以匹配的内部键值为键在该数据库查找对应的数据进行删除,并同步删除该事务回滚前更新的节点日志。
进一步的,在事务提交后需要建立快照时,将当前ALI中每个叶子节点保存的映射关系全部存入一个数据结构中进行保存,并将此数据结构中的各内部键值设为不可变版本;然后将所得快照中的内部键值对应的数据一直保留在所述KVSSD中。
进一步的,所述KVSSD封装了键值对插入接口、更新接口、删除接口以及根据键进行查询的查询接口。
一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明的优点如下:
相对传统基于数据块磁盘的B+树结构,本发明的索引结构减少了磁盘IO次数,并在数据插入及更新中大幅提升了插入效率。
相对直接使用KVSSD的数据库,本发明提供了快照机制以及数据库事务的功能实现。
附图说明
图1为ALI索引结构。
图2为ALI持久化结构。
图3为向数据库插入数据时的流程图。
图4为本发明据库持久化组织优化方法流程图。
具体实施方式
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明提出一种追加日志索引结构,为类B+树的优化方式。以此为基础实现整体数据库存储系统架构。本发明提出的索引结构以及存储系统的具体实施方式是基于新硬件KVSSD所提供的固件接口进行设计的,在其基础上实现了数据库快照机制、范围查询、事务支持等相关功能。
在数据库设计中将整体设计为两个部分,一部分是追加日志索引结构ALI,其存储了用户键值到内部键值一对一的映射关系,在内存中建立索引结构,并将映射关系以节点日志的形式追加存储在键值固态硬盘(KVSSD)硬件中,其中KVSSD硬件封装了键值对的相关接口,包括键值对插入、更新、删除以及根据键进行查询的功能。另一部分为实际数据存储系统部分,以内部键值为主键建立了存储结构,使用LRU等缓存机制进行缓存优化,并利用KVSSD的键值存储特性将数据与内部键值进行了数据持久化。
如图3所示,本发明的整体过程为当用户向数据库插入数据时,会将用户键值以及实际数据作为系统输入,首先在ALI结构中将用户键值与内部键值进行映射,并将映射关系进行磁盘文件上的持久化。其次将实际数据持久化,在KVSSD中以内部键值为主键进行索引。
追加日志索引结构(Append Log Index-ALI):
在通用的数据库索引B+树结构中,由于没有KVSSD的特性可以使用,B+树以用户键值为判断的依据,在最后一层也就是叶子节点中存储了指向数据块存储位置的偏移。同时,为保证用户事务ACID的特性,传统基于数据块磁盘的B+树优化方式为在数据写入时需要将节点进行复制,或在节点更新完成后再对树结构进行逐层的整理,前者会将需要更新的数据节点全部读入内存进行更新,增加磁盘IO,后者会增加节点调整的额外计算量。
如图1所示,在本发明提出的追加日志索引结构(ALI)中,根节点、内部节点与B+树相同,每个节点上以多个用户键值有序地划分区间,并存储了相应多个用户键值范围区间指向的下一层节点的指针。在叶子节点上不同于基于块存储硬件的B+树的是,ALI叶子节点的键为用户键值,存储的数据是内部键值,通过内部键值使用KVSSD硬件提供的接口可以直接的访问数据的实际存储位置。在数据写入时,直接更新内存中叶子节点映射到的内部键值,不需要像传统B+树一样读取目标数据块中的数据进行复制或再对结构进行整理,同时追加一条更新的日志记录用于索引结构的持久化存储。
其中内部键值为一个8字节的编号,其中前4字节为提交编号,后4字节为序列号,其中提交编号为一递增的数值,标识每次用户事务提交的编号。每次事务提交会将事务中修改的多条用户数据进行持久化,因此需要后四字节的序列号标识本条用户数据在本次提交中的编号,将此两者拼接得到8字节的内部键值。
同步的,如图2所示,在ALI结构中维护了一个节点日志,记录了每个叶子节点中由用户键值到内部键值的映射关系。对于节点日志记录,也以键值对的形式进行存储。对ALI中的每一个叶子节点设置一个编号以及一个计数器,计数器记录的是此节点更新的次数,节点日志的键为一个8字节的数值,其中前四字节为节点编号,后四字节为此节点计数器的值,存储的值是此节点上本次写入或更新的数据键值到内部键值的映射关系。如图中4.0的记录表示存储的是节点4在第0次更新时存储的值,值为用户键值A指向内部键值InK0的映射关系,映射关系的表示可以使用字符串”A->InK0”或者其他数据结构进行表示。
本发明提出的ALI索引结构若使用传统基于块的SSD进行实现,则从内部键值寻找实际存储位置还需要额外的索引结构进行映射关系的存储,会增加大量的磁盘以及内存使用空间,并且由于多次映射也会降低数据操作的效率,因此只适合提供了键值接口的KVSSD新硬件进行底层支持。
以图1为例,ALI索引结构中共有0至5六个节点,有A、B、C三个用户键值,设最初A映射的内部键值为InK0,在一次更新中映射的键值更新为InK1,因此在内存中将数据直接更新,在节点日志以及持久化中以追加的方式将A、B、C三个数据键的内部键值数据映射关系进行了存储。针对图1中节点3,其在KVSSD中已经存储了D用户键值到InK5的映射关系,而在内存中没有进行缓存,在更新时并不需要强制将节点3中的数据读入内存,而是直接在节点日志中添加一条新的记录即可。
针对以上提及的类似节点3的更新的情况,由于B+树在数据增加时需要考虑平衡以及节点拆分,而ALI索引结构在写入时并不能确定其是插入操作(数据数量增加)还是更新操作(数据数量不变),因此针对两种操作均以插入进行计算,在内存中对所有已创建的节点建立计数器,并在每次插入时将计数器加一。如果节点一直未装载到内存中,则当计数器的计数值达到拆分阈值时,将节点装载到内存中,并将此节点计数器的值更新为此节点中实际记录数。如果更新后仍然超过拆分阈值,则继续进行节点的拆分操作以维持ALI类B+树的结构平衡。
此时新旧数据都会在磁盘中保存,在保证事务ACID特性的同时大幅减少计算量以及多余的文件读取工作,提高数据写入的效率。在达到预先设定的数据更新数量阈值时将更新的节点日志数据统一更新到磁盘上,以批量写入的模式提高了磁盘的写入效率。
在上述索引架构中,如果用户不进行清理,所有数据库更新的历史数据都会保存在磁盘中,因此针对每一次提交,都留存了数据快照,可以基于提交设置快照,将某次提交时最新的数据进行保留,以备后续进行快速数据库恢复。同时针对此索引结构,设置每个节点日志的最大数量阈值,当节点的日志数量达到阈值后会进行日志的合并,将已经过期的日志合并删除,保留最新一次的映射关系。在存储系统中存储的数据版本与ALI索引结构中保存的一致,也就是在ALI索引结构进行数据合并时,数据合并为将节点日志中最新的一条日志记录的内部键值更新到ALI索引结构相应的节点中,并舍弃之前版本的映射关系,同时将舍弃的内部键值对应的实际数据也从KVSSD硬盘中进行删除。
在数据读取时,如果某一节点不在内存中,将以节点编号为键,使用KVSSD提供的接口在硬盘中进行查询,将此节点中的全部日志读取,并在内存中进行合并,合并时将最新一次的映射关系全部保留在内存中的ALI索引结构中。
本发明据库持久化组织优化方法流程如图4所示,具体包括如下内容:
数据写入:
首先由本次的提交请求获取需要写入或更新的用户键值,以及实际写入的数据。根据提交等信息计算每条涉及的数据的内部键值,提交编号以及序列号的计算方式见事务支持步骤。当写入操作时将用户键值作为键插入到ALI索引结构中,当为更新操作时现在ALI索引结构中搜索相应需要更新的用户键值。将内部键值插入或更新到相应位置。然后以内部键值为键,实际数据为值调用KVSSD的写入接口进行数据持久化操作。此时原始版本数据与本次提交数据都在磁盘中留存。
当ALI索引结构中的节点日志数达到阈值或事务提交时,对索引结构进行更新,首先在内存中对索引结构中的原始对应关系进行更新,在叶子节点中将本次更新的用户键值对应的内部键值更新为上次提交中的内部键值,并同步追加结点更新日志。在更新达到阈值后将更新的叶子节点日志刷入到磁盘中。
数据维护:
数据维护包括数据更新以及删除,均为将已有的用户键值与新的内部键值进行映射。首先根据用户需要更新的用户键值在ALI结构中查询到相应的节点,根据提交编号以及序列号生成本条数据的内部键值,数据删除时内部键值为空。最后根据更新的内部键值在KVSSD中将实际数据写入相应的位置。
数据读取:
首先针对用户访问的某用户键值在ALI索引结构中进行查询,如果在ALI的内存中命中,则直接使用其映射的内部键值在存储系统中进行查询。在存储系统中也可以建立内存缓冲机制,如LRU等相关缓存机制,进行键值对的存储。如果内部键值在缓存中命中,则可以将实际数据返回给用户。如果没有在缓存中,再使用内部键值在KVSSD中进行获取,以尽可能减少磁盘IO次数。
事务支持:
在基于ALI索引结构的存储系统中,由于内部键值的引入,对用户事务的支持也会比较简单。在用户开启事务后,首先将之前保存的提交编号加一作为当前的提交编号,在事务中存在多条数据操作,包括数据的增删改查,其中查询不对数据库内容进行更改,在插入、删除、更新操作时,针对每条更改的数据进行编号为序列号,由此得到本条记录的8字节内部键值。将输入的用户键值在ALI结构中与得到的内部键值进行映射,并将修改添加到节点日志中。并直接根据内部键值通过KVSSD的插入、删除、更新接口将数据进行相应修改。当用户进行事务提交时会主动地对ALI索引结构中的节点日志进行持久化,表示本次事务已经完成提交。
当事务回滚时,将本次提交编号N作为前四字节,在内部键值中直接使用位与进行匹配,忽略后四字节的序列号,将匹配到的内部键值对应的实际数据进行删除,并在ALI结构中同步删除本次事务回滚前事务中的全部节点日志。表示事务已经完成回滚。
数据快照与恢复:
在某次事务提交后,用户可以手动进行快照的建立,由于ALI索引结构中针对每个用户键值都保存了其最新的内部键值的映射关系,并且全部版本的实际数据在KVSSD中都进行了持久化存储,可以快速的根据ALI索引结构将全部当前最新数据进行快照,即将当前ALI索引中每个叶子节点保存的用户键值与内部键值的映射关系全部存入一个数据结构中进行保存,常见或可以简单实现的数据结构包括数组、链表等。并将此数据结构中的各内部键值设为不可变版本,在每次节点数据合并以及数据删除时进行检查,将此快照中的内部键值对应的数据一直保留在KVSSD中。
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (10)
1.一种数据库持久化组织优化方法,其步骤包括:
针对待优化的数据库,在内存中为该数据库创建一追加日志索引结构ALI,用于存储用户键值到内部键值一对一的映射关系,并将所述映射关系以节点日志的形式追加存储在键值固态硬盘KVSSD中;该数据库持久化存储在所述KVSSD中,为该数据库中的每一数据生成一内部键值,将数据及其内部键值进行映射及数据持久化并使用缓存机制进行缓存优化;
当用户向该数据库插入数据时,将该用户的用户键值与ALI中的内部键值进行映射,如果找到匹配的内部键值,则以该匹配的内部键值为键将该用户待插入数据插入到该数据库中;如果未找到匹配的内部键值,则为该用户待插入数据生成一内部键值Key1并与该用户的用户键值U建立映射关系I1,然后以该内部键值Key1为键将该用户待插入数据插入到该数据库中;
当用户对该数据库中的数据进行维护时,首先根据需要更新的用户键值在ALI中查询到匹配的用户键值U1,以该匹配的用户键值U1为键在该数据库查找对应的内部键值 Key2;如果维护是数据更新,则将该内部键值 Key2更新为本次更新的内部键值Key3,并将内部键值Key3在磁盘中指向的数据存储为输入的更新数据;如果维护是数据删除,则将其对应的内部键值Key3更新为空;
当用户对该数据库中的数据进行读取时,首先根据该用户读取的用户键值与ALI中的内部键值进行映射,如果找到匹配的内部键值,则以该匹配的内部键值在缓存中进行查找,如果命中则返回对应的数据,如果未命中则以该匹配的内部键值为键在KVSSD中的数据文件中查找对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述追加日志索引结构ALI包括一树形结构,其根节点、中间节点中以多个用户键值有序地划分区间,并存储相应多个用户键值范围区间指向的下一层节点的指针,每一叶子节点中存储的键为用户键值、数据为内部键值。
3.根据权利要求2所述的方法,其特征在于,所述追加日志索引结构ALI中维护一节点日志,记录了每个叶子节点中存储的映射关系;对每一叶子节点设置一个编号以及一个计数器,所述计数器用于记录叶子节点的更新次数,节点日志的键为一个8字节的数值,其中前四字节为叶子节点编号,后四字节为该叶子节点的计数器的值,存储的值是该叶子节点上本次写入或更新的数据键值到内部键值的映射关系。
4.根据权利要求3所述的方法,其特征在于,当ALI中的节点日志数达到阈值或事务提交时,对ALI进行更新,并在KVSSD中对实际数据进行操作。
5.根据权利要求3所述的方法,其特征在于,所述内部键值为一个8字节的编号,其中前4字节为用户的提交编号,后4字节为序列号;所述提交编号为一递增的数值,标识每次用户事务提交的编号;所述事务包括数据的写入、删除、更新、查询。
6.根据权利要求5所述的方法,其特征在于,当事务回滚时,将该事务的提交编号与ALI中的内部键值进行匹配,以匹配的内部键值为键在该数据库查找对应的数据进行删除,并同步删除该事务回滚前更新的节点日志。
7.根据权利要求5所述的方法,其特征在于,在事务提交后需要建立快照时,将当前ALI中每个叶子节点保存的映射关系全部存入一个数据结构中进行保存,并将此数据结构中的各内部键值设为不可变版本;然后将所得快照中的内部键值对应的数据一直保留在所述KVSSD中。
8.根据权利要求1所述的方法,其特征在于,所述KVSSD封装了键值对插入接口、更新接口、删除接口以及根据键进行查询的查询接口。
9.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至8任一所述方法中各步骤的指令。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311109773.9A CN116860722B (zh) | 2023-08-31 | 2023-08-31 | 一种数据库持久化组织优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311109773.9A CN116860722B (zh) | 2023-08-31 | 2023-08-31 | 一种数据库持久化组织优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116860722A CN116860722A (zh) | 2023-10-10 |
CN116860722B true CN116860722B (zh) | 2023-11-14 |
Family
ID=88228926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311109773.9A Active CN116860722B (zh) | 2023-08-31 | 2023-08-31 | 一种数据库持久化组织优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860722B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864761B1 (en) * | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
CN109521959A (zh) * | 2018-11-01 | 2019-03-26 | 西安交通大学 | 一种基于ssd-smr磁盘混合键值存储系统数据组织方法 |
CN114625780A (zh) * | 2019-10-01 | 2022-06-14 | 上海忆芯实业有限公司 | 一种时序数据库 |
CN114706836A (zh) * | 2022-03-29 | 2022-07-05 | 中国科学院软件研究所 | 一种基于机载嵌入式数据库的数据生命周期管理方法 |
CN115827651A (zh) * | 2022-11-22 | 2023-03-21 | 中国科学院软件研究所 | 一种低能耗的机载嵌入式数据库内存事务管理方法及系统 |
CN115904638A (zh) * | 2022-11-23 | 2023-04-04 | 中国科学院软件研究所 | 一种数据库事务智能管理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3088740B1 (fr) * | 2018-11-16 | 2021-09-17 | Amadeus Sas | Traitement de donnees iteratif |
US11797510B2 (en) * | 2021-04-20 | 2023-10-24 | Netapp, Inc. | Key-value store and file system integration |
-
2023
- 2023-08-31 CN CN202311109773.9A patent/CN116860722B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864761B1 (en) * | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
CN109521959A (zh) * | 2018-11-01 | 2019-03-26 | 西安交通大学 | 一种基于ssd-smr磁盘混合键值存储系统数据组织方法 |
CN114625780A (zh) * | 2019-10-01 | 2022-06-14 | 上海忆芯实业有限公司 | 一种时序数据库 |
CN114706836A (zh) * | 2022-03-29 | 2022-07-05 | 中国科学院软件研究所 | 一种基于机载嵌入式数据库的数据生命周期管理方法 |
CN115827651A (zh) * | 2022-11-22 | 2023-03-21 | 中国科学院软件研究所 | 一种低能耗的机载嵌入式数据库内存事务管理方法及系统 |
CN115904638A (zh) * | 2022-11-23 | 2023-04-04 | 中国科学院软件研究所 | 一种数据库事务智能管理方法及系统 |
Non-Patent Citations (3)
Title |
---|
SSDKV:一种SSD友好的键值对存储系统;梅飞 等;计算机工程与科学;第38卷(第07期);1299-1308 * |
内存计算环境下基于索引结构的内存优化策略;英昌甜 等;新疆大学学报(自然科学版);第35卷(第01期);13-21 * |
基于SSD的Key-Value系统优化设计与实现;刘峪竹 等;计算机研究与发展;第51卷(第S1期);136-141 * |
Also Published As
Publication number | Publication date |
---|---|
CN116860722A (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269885B2 (en) | Cache for efficient record lookups in an LSM data structure | |
EP3047397B1 (en) | Mirroring, in memory, data from disk to improve query performance | |
US6243718B1 (en) | Building indexes on columns containing large objects | |
US6738790B1 (en) | Approach for accessing large objects | |
US8489638B2 (en) | Disk-resident streaming dictionary | |
JP5198294B2 (ja) | 時間的に近接して記憶システムに書き込まれたデータユニットを示すコンテンツアドレスの生成方法およびその装置 | |
JP4866495B2 (ja) | データベースシステムにおいて結合質問を実行する方法及び装置 | |
US7418544B2 (en) | Method and system for log structured relational database objects | |
US6546394B1 (en) | Database system having logical row identifiers | |
US9043334B2 (en) | Method and system for accessing files on a storage system | |
US20160098347A1 (en) | Temporal clones to identify valid items from a set of items | |
US20160203135A1 (en) | In-memory latch-free index structure | |
US20110137875A1 (en) | Incremental materialized view refresh with enhanced dml compression | |
CN107992269B (zh) | 一种基于去重ssd的事务写入方法 | |
US8560500B2 (en) | Method and system for removing rows from directory tables | |
US7225206B2 (en) | System and method for reorganizing stored data | |
WO2010084754A1 (ja) | データベースシステム、データベース管理方法、データベース構造および記憶媒体 | |
US11741073B2 (en) | Granularly timestamped concurrency control for key-value store | |
KR101806394B1 (ko) | 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 | |
CN116860722B (zh) | 一种数据库持久化组织优化方法 | |
CN114218277A (zh) | 一种关系数据库的高效查询方法和装置 | |
JP4306023B2 (ja) | トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ | |
WO2024108668A1 (zh) | 一种用于htap和海量数据的纯列式更新方法及装置 | |
CN116450751A (zh) | 事务处理方法及装置 | |
CN116126825A (zh) | 数据库中逻辑rowid的实现方法及设备 |
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 |