探秘 Cassandra 数据文件合并优化
前言
Cassandra是一款NoSQL分布式数据库,采用LSM Tree架构。众所周知,LSM有两个重要过程:数据顺序刷入磁盘生成数据文件(SSTable)和 数据文件合并(Compaction)。今天本文主要说一个Compaction过程中的优化。
数据文件合并(Compaction)
首先我们要明白Compaction这个过程到底要做什么事,再来看如何优化。我们先从数据文件(SSTable)说起。
SSTable: Sorted String Table
这个词源自Google BigTable论文,是一个不可修改的数据文件。最初数据来自于用户写入,并且缓存在内存中。当缓存满的时候,会将缓存中的数据刷入磁盘,也就生成了SSTable文件。刷入磁盘的SSTable里的数据是排好序的。比如,用户写入[1, 0, 2, 4]
这么4条数据,
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CV预备(三): Ubuntu18.04下OpenCV3.X环境搭建
CV预备(一): conv2, filter2, imfilter的差别CV预备(二): im2col与col2im 目录 前言 安装 测试 最后 前言 为什么在OpenCV4.X出了n多个版本的时候, 我要来搭建3.X, 无他, 就是我目前的一些工程要调用的库需要3.X, 不然的话, macOS下直接brew install opencv就完事了, 我还写啥? 而且另一方面就是homebrew对老版本的安装真的不是很友好. 安装 首先如果是我, 会用ssh访问Ubuntu, 所以要先安装下ssh. sudo apt install net-tools sudo apt-get install openssh-server 然后补一些必要的库: sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 用wget下载OpenCV3.X, 这里是3.4.7 sudo apt-get install wget wg...
- 下一篇
面试题:4个zookeeper的应用场景,你知道几个?
前言 现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了。那么他可能开始要跟你聊分布式相关的其它问题了。分布式锁这个东西,很常用的,你做 Java 系统开发,分布式系统,可能会有一些场景会用到。最常用的分布式锁就是基于 zookeeper 来实现的。其实说实话,问这个问题,一般就是看看你是否了解 zookeeper,因为 zookeeper 是分布式系统中很常见的一个基础系统。而且问的话常问的就是说 zookeeper 的使用场景是什么?看你知道不知道一些基本的使用场景。但是其实 zookeeper 挖深了自然是可以问的很深很深的。 面试题剖析 大致来说,zookeeper 的使用场景如下,我就举几个简单的,大家能说几个就好了:分布式协调分布式锁元数据/配置信息管理HA高可用性 分布式协调 这个其实是 zookeeper 很经典的一个用法,简单来说,就好比,你 A 系统发送个请求到 mq,然后 B 系统消息消费之后处理了。那 A 系统如何知道 B 系统的处理结果?用 zookeeper 就可以实...
相关文章
文章评论
共有0条评论来说两句吧...