缓存系统

缓存对于一个数据库读性能的影响十分巨大,倘若leveldb的每一次读取都会发生一次磁盘的IO,那么其整体效率将会非常低下。

Leveldb中使用了一种基于LRUCache的缓存机制,用于缓存:

  • 已打开的sstable文件对象和相关元数据;
  • sstable中的dataBlock的内容;

使得在发生读取热数据时,尽量在cache中命中,避免IO读取。在介绍如何缓存、利用这些数据之前,我们首先介绍一下leveldb使用的cache是如何实现的。