![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据密集型应用系统设计-读书思考
带鱼兄
爱在新空气,快乐每一天
展开
-
浅析存储引擎(4)-对比B-tree和LSM-tree
浅析日志结构的存储引擎(1)-bitcask浅析日志结构的存储引擎(2)-SSTable和LSM-Tree浅析存储引擎(3)-B-tree一、磁盘碎片率由于B-tree存储引擎按固定页写入,那么通常每一页都会有些空间无法使用。而LSM-tree不是面向页的,并且定期重写SSTable以消除碎片化,所以具有较低的碎片率。二、写入速度LSM-tree通常能够承受比B-tree更高的写入...原创 2020-03-07 20:59:35 · 1678 阅读 · 0 评论 -
浅析存储引擎(3)-B-tree
浅析日志结构的存储引擎(1)-bitcask浅析日志结构的存储引擎(2)-SSTable和LSM-Tree前面两篇文章介绍了比较好理解的日志结构引擎LSM-Tree,但它们不是最常见的索引类型。目前最广泛使用的索引结构是B-tree。像SSTable一样,B-tree维护着按键排序的key-value对,这样可以实现高效的key-value查找和区间查询。一、B-tree的存储...原创 2020-03-07 17:57:28 · 2839 阅读 · 0 评论 -
浅析日志结构的存储引擎(2)-SSTable和LSM-Tree
基于上一篇文章,我们已经知道了日志结构的存储引擎-bitcask的基本原理。在这个基础上,继续讨论SSTable。回顾一下bitcask的key-value,它在段文件中是无序的,假设按key排序,并且要求每个key在每个段中只能出现一次,排好序再写入到段文件中,这种格式称之为SSTable。一、SSTable比bitcask有什么优点?1,由于key在一个段中只出现一次,可以使用类似...原创 2020-03-07 00:02:53 · 877 阅读 · 0 评论 -
浅析日志结构的存储引擎(1)-bitcask
这系列文章主要是讲key-value结构的存储引擎,比如bitcask、sstable、LSM-tree等。不涉及内存型的key-value,比如redis。一、数据写入与查找对于数据写入磁盘,最简单最快的方式就是顺序写入磁盘,用简单追加日志文件的方式,就达到了性能的最高效。假设我们把key-value在文件中的offset也记录下来,那么我们就能从磁盘中查找到这对key-va...原创 2020-03-06 01:01:40 · 975 阅读 · 0 评论 -
行存储和列存储的区别
一、对比行存储和列存储的区别前,我们先来聊下背景。假设我们用mysql做了一个商品订单库order,如下orderid name kind price kg time 1 猪肉 肉类 50 2.0 2020.01.01 2 牛肉 肉类 60 1.0 2020.01.01 3 白菜...原创 2020-03-05 00:51:09 · 4023 阅读 · 0 评论 -
什么是可靠、可扩展、可维护的系统?
一,可靠性的挑战1,人为故障是线上系统故障的首要原因,应该怎么避免1.1简化设计,易于测试1.2充分测试,覆盖场景1.3快速回滚,降低损失1.4完善监控1.5规范流程,这点最重要2,软件故障2.1简单架构,降低复杂度带来的不可控2.2选择稳定的软件,包括开源2.3要有自动恢复机制,比如限流,进程自动拉起3,硬件故障3.1多机服务,但...原创 2020-02-23 00:33:13 · 3234 阅读 · 0 评论