NBN完成5G毫米波远程传输实验
读取速度快是因为它使用了LSM树型结构,因为磁盘寻址耗时远远大于磁盘顺序读取的时间,HBase的架构设计导致我们可以将磁盘寻址次数控制在性能允许范围内。 LSM 树原理把一棵大树拆分成N棵小树,它首先写入内存中,随着小树越来越大,内存中的小树会flush到磁盘中,磁盘中的树定期可以做merge操作来合并成一棵大树,以优化读性能。 4.3.1查询举例
5 HBase Flush 5.1 Flush 对于用户来说数据写到 MemStore 中就算OK,但对于底层代码来说只有数据刷到硬盘中才算彻底搞定了!因为数据是要写入到WAL(Hlog)中再写入到MemStore中的,flush有如下几个时机。
5.2 StoreFile Compaction 由于 MemStore 每次刷写都会生成一个新的 HFile,且同一个字段的不同版本(timestamp) 和不同类型(Put/Delete)有可能会分布在不同的 HFile 中,因此查询时需要遍历所有的 HFile。为了减少 HFile 的个数跟清理掉过期和删除的数据,会进行 StoreFile Compaction。 Compaction 分为两种,分别是 Minor Compaction 和 Major Compaction。
今天天气不错,我们来分享一个能让你技术获得增强的主题: 开发中间件。 很多同学听到这个主题,可能会说我们是小公司,没有机会开发中间件。 那你就错了,我们这里说的中间件,并不一定是那些如dubbo之类很牛逼的开源组件,而是,你们公司内部自己使用的公共组件。 首先,我们要刻意培养这方面的能力,其次,我们要掌握一定的套路来快速地开发一款健壮的公共组件。 下面,我们就从这两个方面分享一下我的心得。 我举个例子,有的公司可能就只有一个大的单体应用,有的公司可能有很多小项目,有的公司可能是很牛逼的微服务,这些项目无疑来说都是完全不同的,但是,他们肯定也有一些共同点,比如,他们都需要打印日志,所以,你是不是可以把日志这么一个非常简单的东西拿出来做成一个日志框架呢? 日志这个东西看似比较简单,你们公司可能用的还是spring自己启动时候的日志,但是,它其实也有很多可能性,或者说可变性,比如,日志切分,滚动日志,异步打印日志,打印到远程,聚合日志,日志脱敏显示(手机号不显示全),日志可追踪,等等,你看看,我就随便说说,就能说出这么多日志相关的内容,所以,它是很适合做成公共组件的嘛。 这样,公司一旦有新的规范需要修改日志的时候,就只需要修改这个公共组件就可以了,所有项目升级个jar包就完事了,节省了大量的工时,同时,别人依赖你,你的影响力也就提升上去了,你就是你们公司日志这块的专家了,别人遇到问题都得来请教你,是不是很爽。
即使你是单体应用,也应该培养这样的能力,保不准你哪天就走了,这个日志组件是不是可以带到下一家公司,是不是可以让你更快速地搭建新项目,是不是可以让你在新的公司建立影响力。 (编辑:南通站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |