b树/b+树、时间轮、跳表、LSM-Tree

这篇具有很好参考价值的文章主要介绍了b树/b+树、时间轮、跳表、LSM-Tree。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

b树、b+树:关系型数据库核心存储结构

1、为什么磁盘数据存储结构用B+树、而不用红黑树

b树/b+树、时间轮、跳表、LSM-Tree,b树,lsm-tree,数据结构

 磁盘每次读取不是读一个节点、是返回一页数据。

红黑树每次遍历一个节点排除一半数据。

B树通常映射相邻的磁盘页数据。4K

mysql索引一个节点隐射16k故而映射4倍,故可以存储更多信息。

红黑树相对平衡,平衡黑节点故搜索时间复杂度不稳定。而B+树绝对平衡搜索稳定,数据都在叶子节点方便范围查询,遍历。

B+树高度更低,层次越到磁盘io次数就越多。如何降低:减少次数,化为顺序IO。

时间轮:海量定时任务检测

多线程环境下定时器设计

定时器:

1、以时间序来组织 按照过期时间排序数据结构。

如使用:红黑树 nginx、workfllow

                最小堆  libuv、go  :当前时间与最小过期节点比较

2、以执行序来组织

两个结构:

a、指针数组

b、时间指针

一个规则:

时间指针按照最小时间精度移动

1s size = 16  一秒移动一次,添加过期时间移动到哪,就把链表数据都取出来执行。

b树/b+树、时间轮、跳表、LSM-Tree,b树,lsm-tree,数据结构

由于时间精度和最大时间范围 

多层级时间轮:支持更大时间范围

 比如:钟表秒针精确存储,分针时针稀疏存储

每个小时,都会有时针层级的任务映射到分针层级...

b树/b+树、时间轮、跳表、LSM-Tree,b树,lsm-tree,数据结构

 多线程 加锁 并发度

红黑树 时间复杂度logN时间越长,等待时间越长。

1、时间轮O(1)时间短

2、加锁粒度 

跳表:高并发有序存储 redis

概率型数据结构logN  二分查找 每次比较排除一半节点

多层级有序链表  

b树/b+树、时间轮、跳表、LSM-Tree,b树,lsm-tree,数据结构文章来源地址https://www.toymoban.com/news/detail-679285.html

到了这里,关于b树/b+树、时间轮、跳表、LSM-Tree的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LSM(Log-Structured Merge Tree)

    LSM Tree 全称 日志结构合并树 ( Log-Structured Merge Tree )。对于存储介质为 磁盘 或 固态盘 的数据库,长期以来主流使用 B+树 这种索引结构来实现快速数据查找。当数据量不太大时,B+树读写性能表现非常好。但是在海量数据情况下,B+树越来越高,由于B+树更新和删除数据时需

    2024年02月13日
    浏览(40)
  • 高级数据结构与算法 | 布谷鸟过滤器(Cuckoo Filter):原理、实现、LSM Tree 优化

    如果对布隆过滤器不太了解,可以看看往期博客:海量数据处理(一) :位图与布隆过滤器的概念以及实现 布隆过滤器 局限 对于需要处理海量数据的时候,如果我们需要快速判断一条记录是否,通常会使用过滤器来进行验证,而其中最常见的就是布隆过滤器(Bloom Filter)—

    2024年02月19日
    浏览(52)
  • 【AI大模型】GPT4 - ChatGPT - Sage - Claude - 文心一言 - 科大讯飞 - ChatGLM130B - AquilaChat7B 写代码能力测评:LSM Tree 算法

    实现一个基本的 LSM Tree(Log-Structured Merge-Tree)算法需要考虑以下几个组件: Memtable:存储内存中的数据,可以用一个简单的键值对数据结构表示,例如 Go 中的 map[string]string 。 SSTable:一个不可变的、排好序的键值对数组,存储在磁盘上。 合并策略:一种方

    2024年02月12日
    浏览(51)
  • 【AI大模型】Google Bard (PaLM2) 大模型写代码能力实测: LSM Tree, DAG Scheduler, AI大模型加持自然语言零代码平台设计(福利O:文末附PaLM2访问链接)

    写在前面:如果你还不了解Google Palm2, 可以阅读下面这篇文章了解一下: https://blog.google/technology/ai/google-palm-2-ai-large-language-model/ Building on this work, today we’re introducing PaLM 2, our next generation language model. PaLM 2 is a state-of-the-art language model with improved multilingual, reasoning and coding capab

    2024年02月13日
    浏览(56)
  • Linux 安全 - LSM机制

    在这两篇文章中介绍了 Linux 安全机制 Credentials : Linux 安全 - SUID机制 Linux 安全 - Capabilities机制 接下来这篇文章介绍 Linux 中LSM安全凭证机制。 Linux系统也会有大量的软件漏洞,通过有效使用访问控制是减轻软件漏洞的重要方法之一。 Linux安全模块(LSM)通过提供一个通用的安

    2024年02月04日
    浏览(32)
  • Linux 安全 - LSM源码分析

    这篇文章介绍了LSM相关知识:Linux 安全 - LSM机制,接下来源码分析LSM模块。 (1) DAC(Discretionary Access Control)基于访问控制是一种根据主体或组的身份限制对对象访问的手段。DAC使用用户和组权限,实现访问控制。DAC的一个问题是其基本操作是可传递的。一个特权用户可以创

    2024年02月07日
    浏览(36)
  • HBase学习六:LSM树算法

    HBase是基于LSM树架构实现的,天生适合写多读少的应用场景。 LSM树本质上和B+树一样,是一种磁盘数据的索引结构。但和B+树不同的是,LSM树的索引对写入请求更友好。因为无论是何种写入请求,LSM树都会将写入操作处理为一次顺序写,而HDFS擅长的正是顺序写(且HDFS不支持随

    2024年01月18日
    浏览(33)
  • 从BST到LSM的进阶之路

    相信大家之前都了解过很多种 数据结构 ,我之前总是两两的,也就是从局部上去进行比较,没有从整体上进行这些树的发展脉络进行梳理,因此经常看完没多久就忘了。看来确实是需要从本源出发,不仅要知其然还要知其所以然,了解清楚前因后果,不仅可以方便我们记忆

    2024年02月05日
    浏览(53)
  • LSM零知识学习二、Linux内核中的安全模块

    接前一篇文章:LSM零知识学习一、概念与框架机制 本文内容参考: 《Linux内核安全模块深入剖析》 李志 机械工业出版社 Linux LSM(Linux Security Modules) Hook Technology_weixin_30929011的博客-CSDN博客 Linux Security Module Usage — The Linux Kernel documentation 前文已提到,LSM的全称为Linux Security Mod

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包