我的编程空间,编程开发者的网络收藏夹
学习永远不晚

LSM的存储以及定位

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

LSM的存储以及定位

这篇文章主要讲解了“LSM的存储以及定位”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LSM的存储以及定位”吧!

  1.  LSM的存储

主要思想是将直接修改树形结构,改为分几个层级来完成。当完成第一个层级时就反馈完成,其他交由后台来处理。

流程是先写入memory table,之后merge到低级别的sstable,最后merge到高级别的sstable。

如下是Hbase的大体结构:

LSM的存储以及定位

    2. 定位

Trailer–这一段是定长的。保存了每一段的偏移量,读取一个HFile时,会首先 读取Trailer,Trailer保存了每个段的起始位置(段的Magic Number用来做安全check),然后,DataBlock Index会被读取到内存中,这样,当检索某个key时,不需要扫描整个HFile,而只需从内存中找到key所在的block,通过一次磁盘io将整个 block读取到内存中,再找到需要的key。DataBlock Index采用LRU机制淘汰。

首先,能快速找到行所在的region(分区),假设表有10亿条记录,占空间1TB,   分列成了500个region,  1个region占2个G. 最多读取2G的记录,就能找到对应记录; 

其次,是按列存储的,其实是列族,假设分为3个列族,每个列族就是666M, 如果要查询的东西在其中1个列族上,1个列族包含1个或者多个HStoreFile,假设一个HStoreFile是128M, 该列族包含5个HStoreFile在磁盘上. 剩下的在内存中。

再次,是排好序了的,你要的记录有可能在最前面,也有可能在最后面,假设在中间,我们只需遍历2.5个HStoreFile共300M

最后,每个HStoreFile(HFile的封装),是以键值对(key-value)方式存储,只要遍历一个个数据块中的key的位置,并判断符合条件可以了。 一般key是有限的长度,假设跟value是1:19(忽略HFile上其它块),最终只需要15M就可获取的对应的记录,按照磁盘的访问100M/S,只需0.15秒。 加上块缓存机制(LRU原则),会取得更高的效率。

感谢各位的阅读,以上就是“LSM的存储以及定位”的内容了,经过本文的学习后,相信大家对LSM的存储以及定位这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

LSM的存储以及定位

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

超融合、软件定义存储、分布式存储以及Server SAN的区别与联系

一时让人眼花缭乱的技术概念存储设备一直作为计算机系统的重要组成部分,过去很长一段时间,用户习惯于使用 SAN 存储作为保存企业关键业务数据的不二选择。基于 SAN 存储为核心的三层式基础架构(服务器-存储网络-存储设备),成为企业中最常用的
2023-06-04

Windows 8 地理位置定位以及定位器状态监测

在Windows8中,定位器不一定随时可用,所以我们在使用定位器时最好先检查一下定位器的状态。 状态可以从Geolocator中的属性LocationStatus获得。定位器状态是枚举类型PositionStatus,共有6种状态:Read
2022-06-04

如何定位Oracle Ora文件的存储路径?

如何定位Oracle Ora文件的存储路径?在Oracle数据库中,ORA文件是一种用于记录数据库实例运行状况的日志文件,对于数据库管理员而言,了解ORA文件的存储路径是非常重要的。有时候,我们需要手动查找ORA文件的位置,以便审查某些特
如何定位Oracle Ora文件的存储路径?
2024-03-08

php中图的概念以及存储的方法

这篇文章主要讲解了“php中图的概念以及存储的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中图的概念以及存储的方法”吧!随着学习的深入,我们的知识也在不断的扩展丰富。树结构有没有
2023-06-20

Android获取系统储存以及内存信息的方法(二)

Android获取储存信息以及内存信息可以用adb命令查看。adb查看系统内存信息以及储存信息:命令:adb shell cat /proc/meminfo 代码: private static final String FILENAME_
2023-05-30

3)js的基础语法使用以及css定位

Css 定位:background-position: 20px 40px;  (1)相对定位:      如果仅仅对当前盒子设置相对定位,那么他与原来的盒子没有任何变化      只有一个作用:  父相子绝,不适用相对定位来做压盖现象  
2023-01-31

java存储以及java对象创建的流程(详解)

java存储:1)寄存器:这是最快的存储区,位于处理器的内部。但是寄存器的数量有限,所以寄存器根据需求进行分配。我们不能直接进行操作。2)堆栈:位于通用RAM中,可以通过堆栈指针从处理器那里获取直接支持。堆栈指针往下移动,则分配新的内存。网
2023-05-31

rabbitmq数据存储的位置在哪

RabbitMQ的数据存储位置取决于您的操作系统和安装方式。一般情况下,RabbitMQ的数据存储在以下位置:Windows: C:\Users\\AppData\Roaming\RabbitMQ\dbLinux: /var/lib/ra
2023-10-23

MySQL的InnoDB存储引擎与HBase的LSM树在数据写入性能上的对比

MySQL的InnoDB存储引擎与HBase的LSM树在数据写入性能上各有优势,适用于不同的使用场景。以下是对两者在数据写入性能上的对比:写入性能对比MySQL InnoDB:InnoDB使用B+树作为其索引结构,适合读多写少的场景。对于
MySQL的InnoDB存储引擎与HBase的LSM树在数据写入性能上的对比
2024-10-22

如何更改Win10相机文件储存位置以便查找

Win10系统上有个Metro风格的相机应用,它与我们安装摄像头后在我的电脑里面看到的那个可不一样。有的用户在拍照完后,找不到自己拍摄的编程照片,而有的用户则想改变相机文件的储存位置。这篇教程将帮助大家解决这些问题。一、Win10相机文件储
2023-06-09

学习路由器的组件存储器以及CPU两者

  中央处理器,是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。在这一篇教程里面,小编就主要和大家简单的介绍一下:学习路由器的组件存储器以及CPU两者。  尽管路由器类型以及型号是多种多样的,但是每
学习路由器的组件存储器以及CPU两者
2024-04-18

创建存储函数、删除存储函数及 存储函数与存储过程的区别

之前,我们列举不少mysql自带的函数,但是有些时候自带函数并不能很好满足我们的需求,此时就需要自定义存储函数了,存储函数与存储过程有些类似,简单来说就是封装一段sql代码,完成一种特定的功能,并返回结果。其语法如下:CREATE FUNCTION 函数([参
创建存储函数、删除存储函数及 存储函数与存储过程的区别
2022-02-07

浅谈MySql 视图、触发器以及存储过程

视图什么是视图?视图的作用是什么? 视图(view)是一种虚拟存在的表,是一个逻辑表,它本身是不包含数据的。作为一个select语句保存在数据字典中的。 通过视图,可以展现基表(用来创建视图的表叫做基表base table)的部分数据,说白
2022-05-18

编程热搜

目录