什么是空间放大、读取放大、写入放大
6.合并和压缩操作
压缩是合并多个SSTable并优化其存储的过程,包括将多个SSTable的数据合并和重写到数量较少的新SSTable中,消除冗余数据,提高读写性能。
因此,空间放大、读取放大和写入放大等术语通常用来描述其性能特征的不同方面。
空间放大(Space amplification) 指的是用于存储数据的实际磁盘空间与逻辑数据大小之间的比率。例如,如果一个数据库需要2MB的磁盘空间来存储逻辑键值对,而逻辑键值对只占用1MB,那么空间放大率就是2。这表明存储利用效率低下,占用的磁盘空间大于逻辑数据大小。空间放大率越高,表明存储利用效率越低,即数据库占用的磁盘空间大于逻辑数据大小的比率越大。导致空间放大的因素主要是已删除或更新的键仍占用磁盘空间。RocksDB中的压缩功能可以通过合并SST文件和丢弃不必要的键来减少空间放大。
读取放大(Read amplification) 衡量的是逻辑读取操作所需的I/O操作次数。在一次读取操作中,RocksDB需要搜索多个SST文件来查找特定的键值,访问SST文件数量会导致读取放大,读取放大的增加会影响系统的读取性能。
写入放大(Write amplification) 是指写入存储的字节数与写入数据库的字节数之间的比率,量化了存储系统为适应用户写操作而产生的额外I/O操作。写入放大率反映了数据写入底层存储的效率,写入放大率过高会增加存储设备的磨损,影响系统性能。
https://zhuanlan.zhihu.com/p/691089627
原文地址:https://blog.csdn.net/JH_Zhai/article/details/143507306
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!