CN103902693A - 一种读优化的内存数据库t树索引结构的方法 - Google Patents

一种读优化的内存数据库t树索引结构的方法 Download PDF

Info

Publication number
CN103902693A
CN103902693A CN201410122539.4A CN201410122539A CN103902693A CN 103902693 A CN103902693 A CN 103902693A CN 201410122539 A CN201410122539 A CN 201410122539A CN 103902693 A CN103902693 A CN 103902693A
Authority
CN
China
Prior art keywords
tree
node
data
built
query
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
Application number
CN201410122539.4A
Other languages
English (en)
Other versions
CN103902693B (zh
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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201410122539.4A priority Critical patent/CN103902693B/zh
Publication of CN103902693A publication Critical patent/CN103902693A/zh
Application granted granted Critical
Publication of CN103902693B publication Critical patent/CN103902693B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Abstract

一种读优化的内存数据库T树索引结构的方法,构造t-T树的数据结构:根据已有的数据,建立T树索引结构,根据T树结构中节点的大小N,对数据进行插入操作,并且保证节点内的数据有序,如果一个节点内的数据满,还要进行分裂操作以保证树的平衡,在构造t-T树过程中,树结构中的内置T树左右子树字段在这一阶段不进行任何操作;在已经建立好的t-T树中进行数据查询操作,查询操作分为单值查询和范围查询,本发明充分利用了T树结构本身所提供的高效数据访问效率,从而在整体上提供了良好的读性能;同时,利用缓存位置敏感算法,通过减少指针的使用来提高缓存的命中率。

Description

一种读优化的内存数据库T树索引结构的方法
技术领域
本发明属于计算机技术领域,具体涉及一种读优化的内存数据库T树索引结构的方法。
背景技术
在数据库系统中,为了加快数据的访问速度,可以建立索引结构,索引结构是一个或多个列(例如,employee表的姓氏(lname)列)的值进行排序的结构。如果按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。常见的磁盘数据库索引有B树索引,B+树索引,T树索引,它们的使用可以显著的减少磁盘I/O数。随着内存价格的降低,内存数据库技术得到了广泛的应用。不同于磁盘数据库系统,内存数据库系统在数据访问时显著的减少或消除了磁盘I/O,提高了数据访问的速度,原来的数据库索引,如B树索引,由于其节点中存在着大量的指针结构,空间利用率不高,Cache命中率也不高,直接引用会降低内存数据库系统的效率。针对这些问题,需要通过修改数据库系统的数据索引来高效利用物理内存空间,提高内存数据库系统的数据访问速度。
Cache是计算机系统的层次存储结构中,介于中央处理器(CPU)和主存储器之间的高速小容量存储器。它具有速度快,容量小的特点。它充分利用了访存局部性原理,用来存储CPU最近访问的内存内容。CPU访问数据时,先在Cache中查找,如果找到则直接传输到CPU中的寄存器中,这称为命中;如果没有找到,那么需要在内存中查找,并且要把查找到的内容重新写入Cache,下次读取时就可以避免内存传输。在内存数据库的应用中,缓存的命中成为了数据库效率的瓶颈,同时在大数据量的访问模式下,存在着许多热点数据,可以将热点数据放入Cache来加快数据访问速度。
在小数据量的查找情况下,AVL树由于其编程简单,而且算法效率高而被广泛使用,但是,面对大数据量的访问,树的高度和Cache命中率成为限制其性能的因素,因而我们需要考虑使用其他数据结构来替代它。
发明内容
为了克服上述现有技术存在的缺点,本发明的目的在于提供一种读优化的内存数据库T树索引结构的方法,充分利用了T树结构本身所提供的高效数据访问效率,从而在整体上提供了良好的读性能;同时,利用缓存位置敏感算法,通过减少指针的使用来提高缓存的命中率。
为了达到上述目的,本发明所采用的技术方案是:
一种读优化的内存数据库T树索引结构的方法,包括以下步骤:
第一步,构造t-T树的数据结构:根据已有的数据,建立T树索引结构,根据T树结构中节点的大小N,对数据进行插入操作,找到第一个不大于当前值的数据的位置,执行插入,有时需要移动某些数据的位置;如果一个节点内的数据满,需新分配节点来存储数据,同时,如果当前节点的左右子树高度差大于等于2,需做树的旋转操作,以保持树的平衡,在构造t-T树过程中,树结构中的内置T树左右子树字段在这一阶段不进行任何操作;
第二步,在已经建立好的t-T树中进行数据查询操作,查询操作分为单值查询和范围查询,
在单值查询中,首先在内置T树中查询,如果内置T树为空,那么在外层T树中查询,把需要查找的值和节点内的最大值、最小值进行比较,若小于最小值,那么在这个节点的左子树中查找;若大于最大值,那么在这个节点的右子树中查找,同时把查找到的结果插入内置T树中;若内置T树不为空,那么在内置T树的节点内查询,在一个节点内,使用二分查找算法来加速查找过程,若在节点内找到,返回查找结果,若没有找到,返回外层T树,在外层T树中进行查找,将查找到的节点插入内置T树中,如果节点的插入导致了内置T树的AVL树平衡条件被破坏,那么需要进行旋转操作来使树结构保持AVL特性;
在范围查询中,进行等价转换,转换成单值查询,当找到第一个满足要求的节点后,再进行递归的调用来访问节点的子树,或者回溯访问节点的父节点,这样就可以遍历所有满足范围查询的节点。
在大数量访问中,被经常访问到的部分数据,通过在T树中内置T树,来提供一种缓冲的效果,减少了数据访问时间。
本发明的有益效果是:
由于本发明引入了一种在T树中嵌套的T树结构,在面对大数据量的有热点数据的访问中,提供了很好的数据缓冲,有效的应对了大数据量的单值查询和范围查询,算法时间复杂度从O(LogNM)降到了O(LogNm),其中m为热点数据总量,N为节点内的关键字个数,同时,面对最坏情况下的访问,时间复杂度回归到O(LogNM),其中M为树结构中关键字总数,算法中使用Cache位置敏感技术,使Cache命中率得到提升,从而减少了数据访问延迟。针对修改操作,可以利用现有的算法进行,不需要任何修改,提高了算法的可操作性。
附图说明:
附图是本发明的t-T树的结构图。
具体实施方式:
下面结合附图对本发明做详细面描述。
一种读优化的内存数据库T树索引结构,包括以下方法:
第一步,参照附图,构造t-T树的数据结构:根据已有的数据,类似于普通的T树索引建立过程,建立T树索引结构,根据T树结构中节点的大小N,对数据进行插入操作,找到第一个不大于当前值的数据的位置,执行插入,有时需要移动某些数据的位置;如果一个节点内的数据满,需新分配节点来存储数据,同时,如果当前节点的左右子树高度差大于等于2,需做树的旋转操作,以保持树的平衡,由于T树中只有左右两个指针域,所以平衡操作相比于B树结构要简单,在构造t-T树过程中,树结构中的内置T树的左右子树字段在这一阶段不进行任何操作;
第二步,在已经建立好的t-T树中进行数据查询操作,查询操作分为单值查询和范围查询,
在单值查询中,首先在内置T树中查询,如果内置T树为空,那么在外层T树中查询,把需要查找的值和节点内的最大值、最小值进行比较,若小于最小值,那么在这个节点的左子树中查找;若大于最大值,那么在这个节点的右子树中查找,同时把查找到的结果插入内置T树中;若内置T树不为空,那么在内置T树的节点内查询,在一个节点内,使用二分查找算法来加速查找过程,若在节点内找到,返回查找结果,若没有找到,返回外层T树,在外层T树中进行查找,将查找到的节点插入内置T树中,如果节点的插入导致了内置T树的AVL树平衡条件被破坏,那么需要进行旋转操作来使树结构保持AVL特性;
在范围查询中,进行等价转换,转换成单值查询,当找到第一个满足要求的节点后,再进行递归的调用来访问节点的子树,或者回溯访问节点的父节点,这样就可以遍历所有满足范围查询的节点。
在大数量访问中,被经常访问到的部分数据,通过在T树中内置T树,来提供一种缓冲的效果,减少了数据访问时间。

Claims (2)

1.一种读优化的内存数据库T树索引结构的方法,其特征在于,包括以下步骤:
第一步,构造t-T树的数据结构:根据已有的数据,建立T树索引结构,根据T树结构中节点的大小N,对数据进行插入操作,找到第一个不大于当前值的数据的位置,执行插入,有时需要移动某些数据的位置;如果一个节点内的数据满,需新分配节点来存储数据,同时,如果当前节点的左右子树高度差大于等于2,需做树的旋转操作,以保持树的平衡,在构造t-T树过程中,树结构中的内置T树左右子树字段在这一阶段不进行任何操作;
第二步,在已经建立好的t-T树中进行数据查询操作,查询操作分为单值查询和范围查询,
在单值查询中,首先在内置T树中查询,如果内置T树为空,那么在外层T树中查询,把需要查找的值和节点内的最大值、最小值进行比较,若小于最小值,那么在这个节点的左子树中查找;若大于最大值,那么在这个节点的右子树中查找,同时把查找到的结果插入内置T树中;若内置T树不为空,那么在内置T树的节点内查询,在一个节点内,使用二分查找算法来加速查找过程,若在节点内找到,返回查找结果,若没有找到,返回外层T树,在外层T树中进行查找,将查找到的节点插入内置T树中,如果节点的插入导致了内置T树的AVL树平衡条件被破坏,那么需要进行旋转操作来使树结构保持AVL特性;
在范围查询中,进行等价转换,转换成单值查询,当找到第一个满足要求的节点后,再进行递归的调用来访问节点的子树,或者回溯访问节点的父节点,这样就可以遍历所有满足范围查询的节点。
2.根据权利要求1所述的一种读优化的内存数据库T树索引结构的方法,其特征在于:在大数量访问中,被经常访问到的部分数据,通过在T树中内置T树,来提供一种缓冲的效果,减少了数据访问时间。
CN201410122539.4A 2014-03-28 2014-03-28 一种读优化的内存数据库t树索引结构的方法 Expired - Fee Related CN103902693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410122539.4A CN103902693B (zh) 2014-03-28 2014-03-28 一种读优化的内存数据库t树索引结构的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410122539.4A CN103902693B (zh) 2014-03-28 2014-03-28 一种读优化的内存数据库t树索引结构的方法

Publications (2)

Publication Number Publication Date
CN103902693A true CN103902693A (zh) 2014-07-02
CN103902693B CN103902693B (zh) 2017-06-20

Family

ID=50994015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410122539.4A Expired - Fee Related CN103902693B (zh) 2014-03-28 2014-03-28 一种读优化的内存数据库t树索引结构的方法

Country Status (1)

Country Link
CN (1) CN103902693B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117417A (zh) * 2015-07-30 2015-12-02 西安交通大学 一种读优化的内存数据库Trie树索引方法
CN107133182A (zh) * 2016-02-29 2017-09-05 北大方正集团有限公司 一种内存管理方法及装置
CN108846133A (zh) * 2018-07-04 2018-11-20 东北大学 基于b-m树的区块链存储结构、b-m树建立算法及查找算法
CN109254962A (zh) * 2017-07-06 2019-01-22 中国移动通信集团浙江有限公司 一种基于t-树的索引优化方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838124A (zh) * 2006-02-20 2006-09-27 南京联创科技股份有限公司 海量数据内存数据库中快速定位的网格+t树索引的方法
CN101055589A (zh) * 2007-05-30 2007-10-17 北京航空航天大学 嵌入式数据库的存储管理方法
CN101587484A (zh) * 2009-06-19 2009-11-25 南京航空航天大学 一种基于T-lt树的主存数据库的索引方法
CN102479189A (zh) * 2010-11-23 2012-05-30 上海宝信软件股份有限公司 一种内存中海量时间戳型数据高速均匀访问的索引方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838124A (zh) * 2006-02-20 2006-09-27 南京联创科技股份有限公司 海量数据内存数据库中快速定位的网格+t树索引的方法
CN101055589A (zh) * 2007-05-30 2007-10-17 北京航空航天大学 嵌入式数据库的存储管理方法
CN101587484A (zh) * 2009-06-19 2009-11-25 南京航空航天大学 一种基于T-lt树的主存数据库的索引方法
CN102479189A (zh) * 2010-11-23 2012-05-30 上海宝信软件股份有限公司 一种内存中海量时间戳型数据高速均匀访问的索引方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117417A (zh) * 2015-07-30 2015-12-02 西安交通大学 一种读优化的内存数据库Trie树索引方法
CN105117417B (zh) * 2015-07-30 2018-04-17 西安交通大学 一种读优化的内存数据库Trie树索引方法
CN107133182A (zh) * 2016-02-29 2017-09-05 北大方正集团有限公司 一种内存管理方法及装置
CN109254962A (zh) * 2017-07-06 2019-01-22 中国移动通信集团浙江有限公司 一种基于t-树的索引优化方法及装置
CN108846133A (zh) * 2018-07-04 2018-11-20 东北大学 基于b-m树的区块链存储结构、b-m树建立算法及查找算法

Also Published As

Publication number Publication date
CN103902693B (zh) 2017-06-20

Similar Documents

Publication Publication Date Title
US9858303B2 (en) In-memory latch-free index structure
US10725987B2 (en) Forced ordering of a dictionary storing row identifier values
CN105354151B (zh) 一种缓存管理方法与设备
US8732139B2 (en) Method and system for dynamically partitioning very large database indices on write-once tables
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和系统
CN102890722B (zh) 应用于时序历史数据库的索引方法
CN105117417A (zh) 一种读优化的内存数据库Trie树索引方法
US20140136510A1 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US11048753B2 (en) Flexible record definitions for semi-structured data in a relational database system
CN103577440A (zh) 一种非关系型数据库中的数据处理方法和装置
CN102024019B (zh) 一种分布式文件系统中基于后缀树的目录组织方法
CN103902702A (zh) 一种数据存储系统和存储方法
CN104090962A (zh) 面向海量分布式数据库的嵌套查询方法
WO2016066109A1 (zh) 数据存储方法和存储设备
CN102629269A (zh) 一种嵌入式数据库的检索及存储方法
CN103902701A (zh) 一种数据存储系统和存储方法
CN103902693A (zh) 一种读优化的内存数据库t树索引结构的方法
CN102737068A (zh) 一种用于对检索数据进行缓存管理的方法与设备
CN101763390A (zh) 基于Berkeley DB的数据库存储系统及方法
Weintraub et al. Needle in a haystack queries in cloud data lakes.
Qian et al. An evaluation of Lucene for keywords search in large-scale short text storage
CN107273443B (zh) 一种基于大数据模型元数据的混合索引方法
Zhang et al. FlameDB: A key-value store with grouped level structure and heterogeneous Bloom filter
CN106934066A (zh) 一种元数据处理方法、装置和存储设备
CN109213760B (zh) 非关系数据存储的高负载业务存储及检索方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170620