1.26的负的负补码为什么是110101001?
2.FREE SOLO - 自己动手实现Raft - 17 - leveldb源码分析与调试-3
26的补码为什么是110101001?
-原码为:
-原码为:
--的源码为:
以8位为例,源码的源码原码最高位为符号位,1代表负数。多少
反码是负的负源码符号位不变,其他位取反。源码原码AI健康管理源码
--的多少qunee 源码反码为:
补码是在反码的基础上+1
--的补码为:
FREE SOLO - 自己动手实现Raft - - leveldb源码分析与调试-3
leveldb的数据流动路径是单向的,从内存中的负的负memtable流向不可变的memtable,最终写入到磁盘上的源码原码sorted table文件中。以下是多少几个关键状态的分析,来了解内存和磁盘上数据的负的负分布。
以下是源码原码分析所涉及的状态:
1. 数据全在内存中
随机写入条数据,观察到数据全部存储在memtable中,多少此时还没有进行compaction操作。负的负rmtsvc 源码
2. 数据全在磁盘中
写入大量数据,源码原码并等待数据完全落盘后重启leveldb。多少此时,数据全部存储在磁盘中,leach源码分布在不同的level中。在每个level的sstable文件中,可以看到key的最大值与最小值。
3. 数据部分在内存中,catalina 源码部分在磁盘中
随机写入条数据,发现内存中的memtable已满,触发compaction操作,数据开始写入到sstable文件。同时,继续写入的数据由于还未达到memtable上限,仍然保存在内存中。
4. 总结
通过观察不同数据写入量导致的数据在内存与磁盘间的流动,我们可以看到leveldb内部状态的转换。
下篇文章将分析LRUCache数据状态的变化。敬请期待!