发明名称 一种高效的NAND闪存数据库系统的缓存管理方法
摘要 一种高效的NAND闪存数据库系统的缓存管理方法,数据库缓冲区由三个链表管理,三个链表都是根据最近最少使用原则来组织存储数据对应的逻辑页号,三个链表分别为冷干净队列链表LCC、冷脏页队列链表LDC、混合队列链表LM,当CPU处理数据库系统上的数据I/O操作请求时,首先检查此数据是否在数据库缓冲区中,如果数据在缓冲区中命中,则将该数据在对应的队列链表上的节点调整到混合队列链表LM的头部MRU,设置它的有效冷热标识位为热标识;然后检查混合链表LM长度是否已经超过预定的阈值,启动相应操作;如果数据未在缓冲区命中,则检查缓冲区是否有空余位置,本发明能够获得较高的命中率,以及整体的存储系统性能,特别适用于对实时性要求较高的场景。
申请公布号 CN103984736A 申请公布日期 2014.08.13
申请号 CN201410216063.0 申请日期 2014.05.21
申请人 西安交通大学;深圳信息职业技术学院 发明人 崔金华;伍卫国;王寅峰;段章峰
分类号 G06F17/30(2006.01)I;G06F12/08(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 西安智大知识产权代理事务所 61215 代理人 贺建斌
主权项 一种高效的NAND闪存数据库系统的缓存管理方法,其特征在于,包括以下步骤:第一步,数据库缓冲区由三个链表管理,三个链表都是根据最近最少使用原则来组织存储数据对应的逻辑页号,三个链表分别为冷干净队列链表LCC、冷脏页队列链表LDC、混合队列链表LM,冷干净队列链表LCC上存储的是被访问一次或者没有被访问的冷干净数据信息;冷脏页队列链表LDC上存储的是被访问一次或者没有被访问的是冷脏数据信息;冷干净队列链表LCC和冷脏页队列链表LDC都属于冷区;混合队列链表LM上存储的是至少被访问两次的数据信息,包括热干净数据和热脏数据,属于热区;第二步,当CPU处理数据库系统上的数据I/O操作请求时,首先检查此数据是否在数据库缓冲区中,先启动三个线程同时在三个链表上查找该数据,如果数据在缓冲区中命中,则将该数据在对应的队列链表上的节点调整到混合队列链表LM的头部MRU,设置它的有效冷热标识位为热标识;然后检查混合链表LM长度是否已经超过预定的阈值,如果超过预定的阈值,则先执行LRU‑WSR算法移除一个热区节点到冷区中,然后判断数据I/O操作;否则直接判断数据I/O操作类型,当数据I/O操作类型为输入操作,启动I/O操作返回缓冲区中的此数据;当数据I/O操作类型为输出操作,启动I/O操作更新缓冲区中数据;第三步,如果数据未在缓冲区命中,则检查缓冲区是否有空余位置,如果缓存区有空余位置,则启动I/O操作将数据读入缓冲区中的冷干净队列链表LCC的头部MRU;第四步,如果缓冲区中无空余位置,则从缓冲区中三个链表上选择一个链表的一个节点作为被替换节点从链表上删除,首先检查冷干净队列链表LCC长度是否超过预定的下限比例阈值,如果超过此阈值,则从冷干净队列链表LCC的尾部选择一个节点作为被替换节点从链表上删除,然后启动I/O操作将数据读入缓冲区中的冷干净队列链表LCC的头部MRU;第五步,如果冷干净队列链表LCC长度低于预定的下限比例阈值,则从冷脏页队列链表LDC和混合队列链表LM中按照概率替换机制选择一个节点作为被替换节点从链表上删除,计算替换概率来决定替换是否为冷脏数据,如果是替换冷脏数据,则从冷脏页队列链表LDC的尾部上选择一个节点作为被替换节点从链表上删除,然后将被替换节点对应的冷脏数据写回闪存存储区中,再启动I/O操作将数据读入缓冲区中的冷干净队列链表LCC的头部MRU;否则从混合队列链表LM的尾部开始向前选择出第一个热干净页节点作为被替换节点从链表上删除,然后启动I/O操作将数据读入缓冲区中的冷干净队列链表LCC的头部MRU。
地址 710049 陕西省西安市咸宁路28号