CN116737664B - 一种面向对象的嵌入式数据库高效索引组织方法 - Google Patents
一种面向对象的嵌入式数据库高效索引组织方法 Download PDFInfo
- Publication number
- CN116737664B CN116737664B CN202311013916.6A CN202311013916A CN116737664B CN 116737664 B CN116737664 B CN 116737664B CN 202311013916 A CN202311013916 A CN 202311013916A CN 116737664 B CN116737664 B CN 116737664B
- Authority
- CN
- China
- Prior art keywords
- data
- offset
- index
- page
- data object
- 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 20
- 230000008520 organization Effects 0.000 title claims abstract description 11
- 239000000872 buffer Substances 0.000 claims description 8
- 238000013508 migration Methods 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 7
- 238000013144 data compression Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 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/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- 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/214—Database migration support
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向对象的嵌入式数据库高效索引组织方法,其步骤包括:针对嵌入式数据库所申请的存储空间构建一索引结构和一编号复用结构;在索引结构中为每一数据对象建立一对象编号并存储其在存储空间中的偏移量;编号复用结构用于存储被删除的数据对象对应的对象编号;当写入一数据对象A时,首先查询编号复用结构中是否有对象编号;如果没有,则在索引结构中为该数据对象A生成一对象编号并在对应位置存储该数据对象A在存储空间中的偏移量;如果有,则从中选取一对象编号移入索引结构中并在对应位置存储该数据对象A在存储空间中的偏移量;当存储空间中删除一数据对象B时,将数据对象B在索引结构中的对象编号移入编号复用结构中。
Description
技术领域
本发明属于计算机软件技术领域,具体涉及一种面向对象的嵌入式数据库高效索引组织方法。
背景技术
目前嵌入式数据库的应用领域正在快速发展,随着当前处理器、内存、磁盘等底层硬件规格逐渐提升,嵌入式操作***的构建逐步完善,嵌入式数据库在保证数据操作实时性的同时对数据的持久化方面也存在新的需求。嵌入式数据库中的存储引擎是数据库实现数据存储的核心组件,存储引擎的架构设计影响到数据录入速度、检索效率、内存、文件占用等一系列数据库核心功能。存储引擎的主要功能就是数据组织,针对内存、磁盘等不同存储介质的特性设计不同的数据存储格式以优化数据存储访问的效率,而如何组织嵌入式数据库的底层索引可以更高效存储数据,成为主要研究方向之一。
在传统通用关系型数据库中,大多数数据库使用Hash索引或B+树作为数据文件的底层组织结构,如Redis以及MySQL中的InnoDB和MyISAM存储引擎等。在嵌入式环境中因为资源受限,B+树的页面结构由于需要存储各级页面的指针或偏移以及数据块的偏移等,因此需要使用较多冗余的内存及磁盘空间。同时,B+树索引只能检索到磁盘页或记录,对于创建在数据库中的其他对象如元数据、数据表、索引结构等需要设计其他的结构进行存储管理,导致嵌入式数据库架构整体较高的复杂度,并且没有统一的数据管理架构。
发明内容
针对现有技术中存在的问题,本发明的目的在于提供一种面向对象的嵌入式数据库高效索引组织方法(OOMI),在保证查询效率的条件下可以尽量减少占用的内存及磁盘空间,并且针对嵌入式数据库中所有的数据对象都使用统一的存储架构以进行管理。在时间复杂度方面,如使用数据库领域中常用的B+树索引,查询到一条数据的时间复杂度为O(Logn),并且在数据录入时存在树节点合并及拆分等整理操作,消耗额外的管理计算资源;而使用本发明提出的索引进行查询的时间复杂度为O(1),并且基于数组的定长特性不会有索引结构的调整情况。
在占用空间方面,以InnoDB为例,在实际数据相同的情况下,InnoDB的每个管理节点需要额外存储14字节的数据,本发明所述的面向对象的混合索引的管理结构需要8字节的大小,节省了40%以上的空间占用。
本发明的技术方案为:
一种面向对象的嵌入式数据库高效索引组织方法,其步骤包括:
针对嵌入式数据库所申请的存储空间构建一索引结构和一编号复用结构;所述索引结构用于对所述存储空间中存储的各类型的数据对象进行管理;在所述索引结构中为每一所述数据对象建立一对象编号并存储其在存储空间中的偏移量;所述编号复用结构用于存储被删除的数据对象对应的对象编号;
当所述存储空间中写入一数据对象A时,首先查询所述编号复用结构中是否有对象编号;如果没有对象编号,则在所述索引结构中为该数据对象A生成一对象编号并在对应位置存储该数据对象A在存储空间中的偏移量;如果有对象编号,则从中选取一对象编号移入所述索引结构中并在对应位置存储该数据对象A在存储空间中的偏移量;
当所述存储空间中删除一数据对象B时,将数据对象B在所述索引结构中的对象编号移入所述编号复用结构中。
进一步的,所述索引结构对应的内存空间为一连续的数组,所述数据对象的对象编号与所述数组的下标一一对应。
进一步的,所述数组的每一个位置用于存储一对象编号对应的数据对象的偏移量;未被占用的对象编号对应的数组位置存储的偏移量设置为一默认值。
进一步的,对所述嵌入式数据库进行查询检索时,根据查询时输入的对象编号信息获取相应数据对象的对象编号i,再以该对象编号i在所述索引结构中查找该对象编号i对应的偏移量Offs;然后使用该偏移量Offs除以页面大小Sp并向下取整得到需要提取的文件页码Np,将偏移量Offs对页面大小Sp取余得到数据对象在页面中的偏移P Offs =Offs%S p ;然后通过存储引擎将页码Np对应的磁盘页面提取到内存中或在缓冲区中进行查询页码Np对应的页面P,使用该偏移P Offs 从该页面P中获取到查询的数据对象。
进一步的,在所述嵌入式数据库进行数据文件迁移时,将所述索引结构、编号复用结构作为一个文件进行数据压缩和数据迁移。
进一步的,使用同一编号序列生成各类型的数据对象的对象编号。
进一步的,所述数据对象包括元数据、索引节点、数据记录。
本发明具有以下特点:
1. 在检索复杂度方面,使用本发明中的面向对象的混合索引可以在O(1)的时间复杂度内查询到对应的数据对象,加快了数据查询速度,并减少了数据检索所需要的计算资源。
2. 在磁盘IO性能方面,在面向对象的混合索引中,因为索引结构在一般情况下全量常驻内存,在得到偏移量后可以计算得到需要的数据页,因此磁盘IO开销为一次。
3. 引入了对象编号复用结构,与索引结构结合,使删除的对象编号ONum可以进行复用。
4. 空闲位可以使对象偏移量携带类型信息,在进行数据检索时进行比对可以使数据库运行时具备内部校验的能力。
5. 对于所有类型的数据对象,均以ONum进行标识,使用一种索引结构可以存储多种意义的数据对象。相比于其他的索引方式降低了整体架构的复杂度。
本发明的优点如下:
本发明提出了一种面向对象的混合索引组织方法,与B+树索引相比,本索引结构的精确检索速度更快,更适合作为数据文件的主索引与辅助索引配合调用进行数据检索。面向对象的混合索引的管理信息由于没有其他冗余信息,全部为有效数据负载,利用率更高,可以节省嵌入式环境中有限的计算存储资源,更适用于嵌入式数据库的数据文件组织。
与哈希索引相比,本发明中的索引结构查询速度不会受数据量的影响,在数据量增加时面向对象的混合索引依然可以保持O(1)的检索时间复杂度。
本发明中的面向对象的混合索引针对所有嵌入式数据库中使用的数据对象都进行了管理,灵活度更高,在多种查询中可以针对所需要的不同数据对象进行优化。
附图说明
图1是面向对象的混合索引结构图。
具体实施方式
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明针对嵌入式环境中的数据存储及处理需求,由于嵌入式环境功耗低、体积小、存储及计算资源相对有限,对***实时性及可靠性有较高的要求。
面向对象的混合索引主要结构如图1所示,其中,本发明提出的索引结构基于嵌入式数据库申请的统一存储空间,在存储空间的基础上针对所有类型的数据对象创建了统一的索引结构进行管理。在设计中对每个数据对象都建立了对象编号即ONum,针对不同类型的数据对象,如元数据、索引节点、数据记录等,均使用同一个编号序列。在使用时首先初始化存储数据对象索引结构的内存空间,本内存空间为一连续的数组结构,基于对象编号依次增加的特点,与数组的下标可以具有一对一映射的关系,在理想情况下(如编号从0开始计数)可以完全一致,如图1中对象编号1~5,在初始化时将对象索引空间中的每个位置的数据都置为偏移量的最大值,以表示为一个未使用的量。在对象索引空间初始化后,随着元信息、索引、数据等数据对象的建立,对象索引空间中存储了每个数据对象的偏移量,如针对图1中的对象Obj1,在对象索引空间中下标1的位置上存储了Obj1的偏移量Offs1。实际数据排列只要满足字节对齐的要求,指向的存储空间既可以是连续的也可以是离散的。
在指向的数据对象删除时,如图1中的编号5,对Obj5的数据对象进行删除。在存储空间中进行标记删除后,将相应的对象编号5放入编号复用结构中,同时将存储的偏移量置为默认值(最大值)。在下一次为新的数据对象分配数据编号时,首先从复用结构中获取一个可用的对象编号进行使用,并将新的数据对象在存储空间中的偏移量存储至索引空间中下标为5的空间中。
首先,在数据库中对每个对象引用都建立相应的累加对象编号ONum,累加编号的意义类似于数据库主键,嵌入式数据库以ONum为键建立存储空间的主索引,由于ONum依次累加,就可以与初始化的对象索引空间下标一一映射,由此建立对象编号与对象偏移量的映射关系。
预先分配一段长度的内存空间以存储对象编号相对应的偏移量Offs,此偏移量记录的是本对象相对数据库存储空间起始位置的偏移差值。在以往基于数组的索引组织中,由于编号对应数据的删除、修改等,会将其位置保留但是删除其中的偏移信息,造成内存中会出现大量内部碎片,使本就有限的内存资源利用率下降。为避免内存中内部碎片过多的情况,在本发明中使用了编号复用结构与对象索引空间结合使用,记录删除的对象编号,在下一次分配的时候检查编号复用结构,如果有可复用的空闲编号则进行快速分配重用。其中,队列结构可以是单一结构的数组、链表,在此使用场景下,链表和数组的时间空间复杂度相同。在不同场景下也可以使用有序的队列结构实现复用结构,从而使靠前的内存块优先填满,利用率更高。
由于嵌入式环境资源限制及相对简单的使用需求,嵌入式数据库使用单一数据文件存储数据。其中,在数据库文件及内存中数据对象包括但不限于:页对象、数据对象、表对象以及索引节点对象等。在为各种数据对象分配空间时,需要以2n字节为最小单位进行字节对齐,默认数据按照16字节进行字节对齐,n为4。因此每个偏移量的最后n位可以作为空闲位以枚举编码的形式存放此偏移所存储数据对应的数据对象类型,如元数据对象编码为0001,B树辅助索引节点数据对象编码为0010,行数据对象编码为0100等。在读取后使用此n位的检验码与数据对象类型的编码进行位与的操作可以对获取的数据类型进行验证,相当于在一个偏移量的数据中额外存储了对象类型的信息。并且由于针对数据库中使用的数据对象均使用统一的索引管理方式,可以实现嵌入式数据库使用单一完整的存储空间存储元数据及用户数据等全部数据信息。
此处提及的缓冲区在不同的数据库中有不同的实现方式,举例来说,在嵌入式文件***对文件页缓存实现较简单的情况下,可以由嵌入式数据库实现相关的页缓存,实现与磁盘的页面交换。在缓存中以页为单位,在对页面中某部分的数据有写入、更新或删除等操作时将页标记为脏页并进行刷盘。当文件***对缓存机制实现较好时,可以以链表等方式实现不定长的内存缓冲区,也可以将物理刷盘的时机交由底层操作***进行决定。
面向对象的混合索引方式在实现时共有以下几个方面:
一、索引初始化
在对OOMI进行使用前需要对使用到的对象索引空间OFFS_ARR进行初始化,首先在内存中申请定长空间的数组,数组类型视使用的操作***位数决定,在32位***中使用无符号四字节整形数组,在64位***中使用无符号八字节整形数组,以保证偏移量可以覆盖内存空间,并且尽可能减小空间浪费。在空间申请完成后对数组中的每个存储偏移量的位置都初始化为相应类型的默认值(最大值)。
对于数据的存储空间,将数据文件映射至一片连续的内存空间,数据文件为提升写入以及读取效率,以页为单位进行组织排列,页面空间一般为4K~16K。
在数据库文件头声明一个无符号四字节或八字节的变量Num_in_use_用以存储当前数据库中使用了多少对象编号。并申请一个编号复用结构用于存储释放的对象编号,以便下次申请对象编号时复用。
二、数据***
在进行数据***时,首先需要明确当前向数据库存储空间中***数据对象的数据类型,计算数据对象大小,并分配对象编号。在分配对象编号时首先查找编号复用结构中是否有值,如果有值则将相应的对象编号ONum移出队列,并作为当前数据对象的ONum。如果编号复用结构中没有可复用的对象编号,则使用数据文件头中的编号使用数量Num_in_use_作为当前待***数据对象的ONum,并将Num_in_use_值加一。
通过内存管理模块获取需要存储的位置以及相应的数据对象的存储空间偏移量。再根据***的对象类型,将最后n位的校验码进行位运算编码赋值。
三、数据查询
在对数据库文件进行查询检索时,首先通过用户的访问逻辑如查询ID小于X的数据调用建立在ID字段上的辅助索引进行对象编号的确认,或由用户维护的对象编号信息直接获取相应数据对象的对象编号ONum,再以对象编号为下标在对象索引空间中进行查找,得到对象编号的偏移量Offs。首先使用偏移量除以页面大小Sp并向下取整得到需要提取的文件页码,将偏移量对页面大小取余得到数据对象在页面中的偏移P Offs =Offs% S p 。通过存储引擎快速将计算出的页码Np对应的磁盘页面提取到内存中或在缓冲区中进行查询Np对应的页面P,并使用计算的页面偏移P Offs 从页面P中获取到实际数据对象。
由于面向对象的混合索引为散列索引,在原理上除特殊处理外不支持排序及范围查询,在查询中可以使用辅助索引完成相关操作。辅助索引由用户创建,建立在某字段上,使用B树、T树、哈希表等结构进行数据索引,存储的值为当前记录的对象编号。在需要进行范围检索时,首先在支持范围查询的辅助索引中进行查找,将得到的对象编号存储在结果集中,再使用对象编号ONum在OOMI主索引中进行查询,得到数据对象的真实位置。
在查询性能方面,面向对象的混合索引的查询时间复杂度为O(1),与常用的哈希索引对比,查询时间复杂度均为O(1),但是哈希索引在存在哈希冲突时还需要遍历重合链表或使用其他方法二次进行查找,在最坏情况下时间复杂度为O(n),而面向对象的混合索引由于唯一的对象编号限制不存在数据冲突。与B+树比较,B+树查询的时间复杂度为O(Logn),长于本索引O(1)的时间复杂度。
四、数据删除
在进行存储空间中数据对象的删除操作时,首先需要处理缓冲区中的实际数据对象。根据缓冲区管理的方式,可以选择清空缓冲区中的数据对象或者将其标记为已删除状态。同时,需要在对象索引空间中将相应数据对象的偏移位置设置为默认值,表示该数据对象已被删除。
在删除操作完成后,需要将被删除的数据对象的对象编号存储在编号复用结构中,以便在下次进行分配时可以重新利用这些空间。通过将已删除数据对象的对象编号存储在编号复用结构中,可以实现对象编号的复用,避免频繁地进行内存分配操作。
这种删除和复用的策略可以有效地管理数据文件中的对象,并提高数据存储的效率和性能。通过删除后的复用,可以充分利用已释放的空间,避免数据文件的不断扩大和浪费。同时,通过队列的方式存储被删除数据对象的对象编号,可以方便地进行下一次的空间分配,提高数据文件的管理和利用效率。
五、数据迁移
在嵌入式数据库进行数据文件迁移时,本发明中的面向对象的混合索引可以单独作为一个文件进行数据压缩和数据迁移。并且由于索引结构在一般嵌入式环境的使用场景下,大部分存储的是数据连续的偏移量,在顺序***的场景下,每条记录的大小方差较小,适合使用二阶差分编码对偏移量进行数据压缩。在使用二阶差分编码后得到差值的差值数组Arr dd ,在数据全为定长数据的情况下Arr dd 将包含大量0,使用LZW编码进行压缩可以得到很高的压缩比。当数据存在变长数据时,Arr dd 存储的差值也会较小,此时对索引数据使用Zig-Zag算法对较小的整数类型进行数据压缩会得到更高的压缩比。
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (7)
1.一种面向对象的嵌入式数据库高效索引组织方法,其步骤包括:
针对嵌入式数据库所申请的存储空间构建一索引结构和一编号复用结构;所述索引结构用于对所述存储空间中存储的各类型的数据对象进行管理;在所述索引结构中为每一所述数据对象建立一对象编号并存储其在存储空间中的偏移量;所述编号复用结构用于存储被删除的数据对象对应的对象编号;
当所述存储空间中写入一数据对象A时,首先查询所述编号复用结构中是否有对象编号;如果没有对象编号,则在所述索引结构中为该数据对象A生成一对象编号并在对应位置存储该数据对象A在存储空间中的偏移量;如果有对象编号,则从中选取一对象编号移入所述索引结构中并在对应位置存储该数据对象A在存储空间中的偏移量;
当所述存储空间中删除一数据对象B时,将数据对象B在所述索引结构中的对象编号移入所述编号复用结构中。
2.根据权利要求1所述的方法,其特征在于,所述索引结构对应的内存空间为一连续的数组,所述数据对象的对象编号与所述数组的下标一一对应。
3.根据权利要求2所述的方法,其特征在于,所述数组的每一个位置用于存储一对象编号对应的数据对象的偏移量;未被占用的对象编号对应的数组位置存储的偏移量设置为一默认值。
4.根据权利要求1所述的方法,其特征在于,对所述嵌入式数据库进行查询检索时,根据查询时输入的对象编号信息获取相应数据对象的对象编号i,再以该对象编号i在所述索引结构中查找该对象编号i对应的偏移量Offs;然后使用该偏移量Offs除以页面大小Sp并向下取整得到需要提取的文件页码Np,将偏移量Offs对页面大小Sp取余得到数据对象在页面中的偏移P Offs =Offs%S p ;然后通过存储引擎将页码Np对应的磁盘页面提取到内存中或在缓冲区中进行查询页码Np对应的页面P,使用该偏移P Offs 从该页面P中获取到查询的数据对象。
5.根据权利要求1所述的方法,其特征在于,在所述嵌入式数据库进行数据文件迁移时,将所述索引结构、编号复用结构作为一个文件进行数据压缩和数据迁移。
6.根据权利要求1~5任一所述的方法,其特征在于,使用同一编号序列生成各类型的数据对象的对象编号。
7.根据权利要求1~5任一所述的方法,其特征在于,所述数据对象包括元数据、索引节点、数据记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311013916.6A CN116737664B (zh) | 2023-08-14 | 2023-08-14 | 一种面向对象的嵌入式数据库高效索引组织方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311013916.6A CN116737664B (zh) | 2023-08-14 | 2023-08-14 | 一种面向对象的嵌入式数据库高效索引组织方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116737664A CN116737664A (zh) | 2023-09-12 |
CN116737664B true CN116737664B (zh) | 2023-11-14 |
Family
ID=87911760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311013916.6A Active CN116737664B (zh) | 2023-08-14 | 2023-08-14 | 一种面向对象的嵌入式数据库高效索引组织方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737664B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6349308B1 (en) * | 1998-02-25 | 2002-02-19 | Korea Advanced Institute Of Science & Technology | Inverted index storage structure using subindexes and large objects for tight coupling of information retrieval with database management systems |
CN108388569A (zh) * | 2018-01-09 | 2018-08-10 | 杭州电子科技大学 | 一种快速的键值数据库的***及建立方法 |
CN112637616A (zh) * | 2020-12-08 | 2021-04-09 | 网宿科技股份有限公司 | 一种对象存储方法、***及服务器 |
CN115757462A (zh) * | 2022-11-15 | 2023-03-07 | 中国科学院软件研究所 | 一种面向对象的数据库动态接口生成方法及操作方法 |
-
2023
- 2023-08-14 CN CN202311013916.6A patent/CN116737664B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6349308B1 (en) * | 1998-02-25 | 2002-02-19 | Korea Advanced Institute Of Science & Technology | Inverted index storage structure using subindexes and large objects for tight coupling of information retrieval with database management systems |
CN108388569A (zh) * | 2018-01-09 | 2018-08-10 | 杭州电子科技大学 | 一种快速的键值数据库的***及建立方法 |
CN112637616A (zh) * | 2020-12-08 | 2021-04-09 | 网宿科技股份有限公司 | 一种对象存储方法、***及服务器 |
CN115757462A (zh) * | 2022-11-15 | 2023-03-07 | 中国科学院软件研究所 | 一种面向对象的数据库动态接口生成方法及操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116737664A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ren et al. | SlimDB: A space-efficient key-value storage engine for semi-sorted data | |
EP2633413B1 (en) | Low ram space, high-throughput persistent key-value store using secondary memory | |
US4611272A (en) | Key-accessed file organization | |
KR101708261B1 (ko) | 개별 액세스 가능한 데이터 유닛의 스토리지 관리 | |
KR100856245B1 (ko) | 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법 | |
US7831626B1 (en) | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node | |
WO2009033419A1 (fr) | Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données | |
IL156117A (en) | Method and computer program for organising a database and a database organised according to such a method | |
US6654868B2 (en) | Information storage and retrieval system | |
US8086641B1 (en) | Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same | |
JP2007004801A (ja) | アドレス関連テーブル構造を持つスキップ・リスト | |
JP3024619B2 (ja) | ファイル管理方法 | |
CN111459884B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
Amur et al. | Design of a write-optimized data store | |
US7987205B1 (en) | Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations | |
CN117573676A (zh) | 基于存储***的地址处理方法、装置、存储***及介质 | |
US8156126B2 (en) | Method for the allocation of data on physical media by a file system that eliminates duplicate data | |
US7953721B1 (en) | Integrated search engine devices that support database key dumping and methods of operating same | |
KR20090007926A (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN116737664B (zh) | 一种面向对象的嵌入式数据库高效索引组织方法 | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
CN111338569A (zh) | 一种基于直接映射的对象存储后端优化方法 | |
US11366609B2 (en) | Technique for encoding deferred reference count increments and decrements | |
Zobel et al. | Storage Management for Files of Dynamic Records. | |
Tomasic | Distributed queries and incremental updates in information retrieval systems |
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 |