利用SSD扩展数据库缓存及基于云的医疗监测系统
一、利用SSD扩展数据库缓存
- 数据布局
- NVC(Non-Volatile Cache)将页面数据存储在SSD中,元数据以数据结构的形式存储在内存中,并以元数据页面的形式存储在SSD中。在运行时,NVC会写入元数据页面;重启时,会读取这些元数据页面以重新创建数据结构并恢复NVC,然后再进行数据库恢复。元数据页面与数据页面一起存储在SSD中,占用空间不到1%。NVC利用SSD的持久性确保服务器崩溃或重启时的数据持久性。
- 用于管理NVC的数据结构如下:
- 哈希映射(Hash map):根据逻辑页面号在SSD文件中定位页面。
- LRU队列(LRU queue):按NVC读写时间对页面进行排序的队列。
- 脏状态(Dirty status):页面级标志,用于表示页面是否需要写入HDD。
- 页面搜索
- 访问层的页面请求首先会在基于RAM的缓冲区缓存中进行搜索。如果找到页面,则读取缓存副本;如果页面不在缓冲区缓存中,但在NVC中,则从SSD读取到缓冲区缓存;如果页面既不在缓冲区缓存中也不在NVC中,则从HDD读取到缓冲区缓存。
- 以下是页面搜索的代码示例:
1 getpage(LP
超级会员免费看
订阅专栏 解锁全文
2243

被折叠的 条评论
为什么被折叠?



