2012年(27)
分类: SQLite/嵌入式数据库
2012-03-28 23:47:21
SQLite实现过程中,模块性比较强,基本上所有的模块都提供了一个对外的接口,SQLite对该模块做了一个实现,如果使用者对这个模块不满意,可以按照自己的意愿重新对该模块进行编写。SQLite的缓存模块就是一个典型的例子。内存管理也是这样实现的,SQLite提供了五种内存管理的实现,以供使用者选择。
SQLite缓存替换算法是LRU(Least Recently Used,最近最少使用算法)。实现比较简单,主要是由两部分组成:
所以,在内存中对页的操作至少需要四个指针,两个实现hash表的后续链表,两个实现LRU链表。
具体的缓存如下图: