| 摘要 | 第5-7页 |
| ABSTRACT | 第7-8页 |
| 第1章 绪论 | 第11-21页 |
| 1.1 数据存储趋势 | 第11-13页 |
| 1.1.1 海量数据存储 | 第11-12页 |
| 1.1.2 非结构化数据存储 | 第12页 |
| 1.1.3 小文件存储 | 第12-13页 |
| 1.2 关系型数据库面临的挑战 | 第13-14页 |
| 1.2.1 可扩展性问题 | 第13页 |
| 1.2.2 非结构化数据存储问题 | 第13-14页 |
| 1.3 KV数据库系统概述 | 第14-18页 |
| 1.3.1 KV数据库简介 | 第14-16页 |
| 1.3.2 KV数据库的分类 | 第16-17页 |
| 1.3.3 相关研究工作 | 第17-18页 |
| 1.4 本文的主要研究工作 | 第18-20页 |
| 1.5 本文的组织 | 第20-21页 |
| 第2章 基于LSM-tree的KV数据库的写性能优化 | 第21-45页 |
| 2.1 引言 | 第21-24页 |
| 2.2 LSM-tree写放大问题描述 | 第24-33页 |
| 2.2.1 LSM-tree介绍 | 第24-26页 |
| 2.2.2 基于LSM-tree的KV数据库实现 | 第26-31页 |
| 2.2.3 传统解决方案及存在的不足 | 第31-33页 |
| 2.3 GLS的结构设计 | 第33-37页 |
| 2.3.1 GLS的主要思想 | 第33页 |
| 2.3.2 GLS结构设计 | 第33-36页 |
| 2.3.3 写放大分析 | 第36-37页 |
| 2.4 GLS的系统实现以及实验评估 | 第37-44页 |
| 2.4.1 FlameDB的实现细节 | 第37-39页 |
| 2.4.2 实验评估 | 第39-44页 |
| 2.5 本章小结 | 第44-45页 |
| 第3章 KV数据库中的布隆过滤器优化 | 第45-73页 |
| 3.1 引言 | 第45-47页 |
| 3.2 布隆过滤器在KV数据库分配方案的问题描述 | 第47-52页 |
| 3.2.1 传统解决方案 | 第47页 |
| 3.2.2 布隆过滤器介绍 | 第47-50页 |
| 3.2.3 优化布隆过滤器分配方案的动机 | 第50-52页 |
| 3.3 基于分层异构的布隆过滤器设计 | 第52-64页 |
| 3.3.1 均匀读请求下LeveIDB各层数据访问情况统计 | 第52-53页 |
| 3.3.2 HOBF读性能分析 | 第53-55页 |
| 3.3.3 HEBF设计 | 第55-60页 |
| 3.3.4 HEBF的系统实现以及实验评估 | 第60-64页 |
| 3.4 通用布隆过滤器设计 | 第64-71页 |
| 3.4.1 UOBF的主要思想 | 第65页 |
| 3.4.2 UOBF设计 | 第65-69页 |
| 3.4.3 UOBF的性能评估 | 第69-71页 |
| 3.5 本章小结 | 第71-73页 |
| 第4章 KV数据库在数据频繁更新场景中的性能优化 | 第73-89页 |
| 4.1 引言 | 第73-74页 |
| 4.2 KV数据库中数据频繁更新的问题描述 | 第74-77页 |
| 4.2.1 KV数据库中数据的更新流程 | 第75页 |
| 4.2.2 更新操作引起的写放大和空间放大 | 第75-77页 |
| 4.3 DedupKV原型系统设计 | 第77-81页 |
| 4.3.1 Hot Cache模块设计 | 第78-79页 |
| 4.3.2 DedupCompaction模块设计 | 第79-81页 |
| 4.4 DedupKV的实验评估 | 第81-86页 |
| 4.4.1 Hot Cache性能测试 | 第81-83页 |
| 4.4.2 DedupCompaction性能测试 | 第83-85页 |
| 4.4.3 DedupKV整体性能测试 | 第85-86页 |
| 4.5 本章小结 | 第86-89页 |
| 第5章 总结 | 第89-93页 |
| 5.1 本文的研究内容和成果 | 第89-90页 |
| 5.2 进一步的工作 | 第90-93页 |
| 参考文献 | 第93-99页 |
| 致谢 | 第99-101页 |
| 在读期间发表的学术论文与取得的研究成果 | 第101页 |