闪存数据库日志技术

1,095 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,095
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

闪存数据库日志技术

  1. 1. 闪存数据库日志技术<br />2011-04-22<br />
  2. 2. 大纲<br />闪存的基本结构及特性<br />研究动机及相关工作<br />基于地址的日志技术——HV-Logging<br />基于链表的日志技术——LB-Logging<br />总结<br />
  3. 3. 闪存的优越性及广泛应用<br />能量消耗小<br />小巧轻便<br />闪存<br />读写速度快<br />高抗震性<br />非易失性<br />无机械延迟<br />
  4. 4. 闪存的基本结构<br /><ul><li>闪存芯片组成
  5. 5. 1 芯片 = 若干块
  6. 6. 1 块 = 64 页
  7. 7. 闪存特性
  8. 8. 读写速度不一致
  9. 9. 重写之前先擦除
  10. 10. 没有机械延迟
  11. 11. 有限擦除次数</li></ul>2K Bytes<br />64 Bytes<br />页寄存器<br />
  12. 12. 闪存特性<br />5<br /><ul><li>闪存的随机访问与连续访问的速度差异</li></li></ul><li>闪存特性<br /><ul><li>闪存中的读写速度不对称</li></ul>6<br />
  13. 13. 闪存特性<br /><ul><li>在闪存中,重写之前必须先擦除</li></ul>7<br /><ul><li>闪存中常采取异地更新的方式来避免频繁的擦除操作</li></ul>Disk<br />Flash<br />异地更新<br />
  14. 14. 大纲<br />闪存的基本结构及特性<br />研究动机及相关工作<br />基于地址的日志技术——HV-Logging<br />基于链表的日志技术——LB-Logging<br />总结<br />
  15. 15. 闪存数据库面临的挑战<br />数据文件<br />日志文件<br />闪存<br />磁盘<br />索引文件<br />元数据文件<br />闪存数据库<br />传统数据库<br />
  16. 16. 研究动机<br /><ul><li>将Undo日志直接应用在闪存数据库中存在的问题</li></ul>Undo日志<br />A.v1<br />HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  17. 17. 研究动机<br /><ul><li>将Undo日志直接应用在闪存数据库中存在的问题</li></ul>Undo日志<br />A.v1<br />A.v2<br />HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  18. 18. 研究动机<br /><ul><li>将Undo日志直接应用在闪存数据库中存在的问题</li></ul>Undo日志<br />A.v1<br />A.v2<br />A.v1<br />HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  19. 19. 相关工作—IPL <br />in-memory<br />data page<br />(8KB)<br />数据库缓冲区<br />in-memory<br />log sector (512B)<br />Erase unit (Block): 128KB<br />闪存<br />15 data pages<br /> (8KB each)<br />……<br />log area (8KB): <br />16 sectors<br />……<br />….<br />….<br />….<br />S. W. Lee, and B. Moon. Design of Flash-Based DBMS: An In-Page Logging Approach. SIGMOD 2007<br />
  20. 20. 相关工作—FlashLogging<br />……<br />Worker<br />Worker<br />Worker<br />Request queue<br />日志缓冲区<br />LSN:Log Sequence Number<br />Shimin Chen. FlashLogging: Exploiting Flash Devices for Synchronous Logging Performance. SIGMOD'09.<br />
  21. 21. 闪存数据库中日志设计思路<br /><ul><li>读速度比写速度快
  22. 22. 考虑用较多的读操作来减少写操作</li></ul>读写速度不一致<br />将日志文件由顺序结构转变成链表结构<br /><ul><li>随机和连续访问速度相似
  23. 23. 可以用随机读来代替连续读</li></ul>无机械延迟<br />对数据的历史版本地址记日志<br /><ul><li>闪存要求重写之前擦除
  24. 24. 利用天然存在的历史版本的数据</li></ul>异地更新<br /><ul><li>闪存寿命有限,不可无限制的擦除
  25. 25. 尽量减少写操作,间接减少擦除</li></ul>擦除次数有限<br />
  26. 26. 大纲<br />闪存的基本结构及特性<br />研究动机及相关工作<br />基于地址的日志技术——HV-Logging<br />基于链表的日志技术——LB-Logging<br />总结<br />
  27. 27. HV-Logging的主要思想<br />日志文件记录版本地址信息而取代值信息<br /><ul><li> 随着事务不断地对数据库进行操作,日志管理器按顺序不断加入新的日志记录;
  28. 28. 如果一个事务的提交日志写入日志文件中,则会对该事务的所有旧版本数据标识为垃圾数据,等待FTL层的回收;
  29. 29. 恢复时,恢复管理器从日志文件的尾部向头部扫描,并且逐一按照数据历史版本的地址进行恢复</li></ul>HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  30. 30. 闪存擦除次数<br />有限<br />日志量大<br />事务回滚率低<br />日志快速失效<br />日志文件的存储<br />日志文件本身并不适合于使用闪存存储<br />大量的擦除操作<br />降低了闪存的使用寿命<br />
  31. 31. 日志文件<br />存在磁盘上<br />以延长闪存寿命<br />数据文件<br />存在闪存上<br />以利用闪存的高速<br />读取特性<br />日志文件的存储<br />从整体上提高数据库性能!<br />
  32. 32. 实验及结果分析<br /><ul><li>TPCC上的模拟实验
  33. 33. 利用TPCC标准规定的操作验证,HV-Logging可以减少一定数量的写操作,从而间接减少擦除操作,延长闪存使用寿命
  34. 34. Berkeley DB上的真实实验
  35. 35. 将HV-Logging实现在Berkeley DB中,与传统数据库的Undo Log进行恢复时间的比较,验证HV-Logging可以大大缩短恢复时间</li></ul>HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  36. 36. 实验结果-TPCC <br />3000次<br />HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  37. 37. 实验结果-TPCC<br />33000次<br />HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  38. 38. 实验结果-BDB <br />2~3倍<br />HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  39. 39. 实验结果-BDB <br />8倍<br />HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  40. 40. 大纲<br />闪存的基本结构及特性<br />研究动机及相关工作<br />基于地址的日志技术——HV-Logging<br />基于链表的日志技术——LB-Logging<br />总结<br />
  41. 41. LB-Logging的主要思想<br />将日志文件由顺序结构转变成链表结构<br /><ul><li> 随着事务不断地对数据库进行操作,日志管理器将日志以链表的形式存放在内存中;
  42. 42. 如果一个事务提交,则该事务的日志将一次性的全部写出到闪存中
  43. 43. 恢复时,恢复管理器从日志文件的链表结构中,准确找到该事务的所有日志,并逐一进行重做(redo)</li></ul>HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  44. 44. LB-Logging的主要思想<br />将日志文件由顺序结构转变成链表结构<br /><ul><li> 随着事务不断地对数据库进行操作,日志管理器将日志以链表的形式存放在内存中;
  45. 45. 如果一个事务提交,则该事务的日志将一次性的全部写出到闪存中
  46. 46. 恢复时,恢复管理器从日志文件的链表结构中,准确找到该事务的所有日志,并逐一进行重做(redo)</li></ul>HV-recovery:A High Efficient Recovery Technique for Flash-based Database <br />
  47. 47. LB-Logging的检查点合并算法<br />得到日志文件中第一条日志记录<br />复制到已申请好的干净的空闲空间中<br />得到下一条日志记录<br />如果申请的新日志块已写满,就再申请一块<br />日志记录扫描完毕,退出循环<br />擦除旧的日志记录<br />
  48. 48. 实验设计<br />实验平台:(SSD/HDD)+Berkeley DB<br />对比试验:ARIES、HV-Logging、LB-Logging<br />测试指标:恢复时间<br />测试因子:单个事务更新次数<br />单个数据更新次数<br />
  49. 49. 实验结果-事务更新数(1)<br />
  50. 50. 实验结果-事务更新数(2)<br />
  51. 51. 实验结果-数据更新次数<br />
  52. 52. 大纲<br />闪存的基本结构及特性<br />研究动机及相关工作<br />基于地址的日志技术——HV-Logging<br />基于链表的日志技术——LB-Logging<br />总结<br />
  53. 53. 总结<br />我们分析了闪存数据库中日志设计的问题,提出了一些新的解决方案。<br />一种是对闪存中天然存在的数据的历史版本来进行管理和利用的日志及恢复方法HV-Logging,来改进undo日志的性能,提高恢复效率。<br />一种是使用链表结构取代原有的顺序结构进行日志记录的LB-Logging,来改进redo日志的性能,进一步的提高恢复效率。<br />通过和开源数据库Oracle Berkeley DB的比较,实验结果表明我们的设计都比原来的方法有更高的恢复效率,充分说明了其优越性。<br />
  54. 54. Thank you!<br />

×