论文部分内容阅读
闪存是一种非易失的存储设备,内部没有机械读写装置,因此具有抗震性强、功耗低、噪音小、体积小、随机读取速度快等优点。近年来,随着电子技术的飞跃发展,闪存的容量得到了极大的提升,闪存已成为存储系统中的首选存储介质,被广泛应用到各种嵌入式系统、移动设备以及企业级的计算环境中。闪存具有很多与磁盘不同的特性,如:闪存以页为最小的读写(或编程)单位、以块为最小的擦除单位、不对称的读写操作(写操作的时间远大于读操作)、重写前需要擦除(闪存在重写同一存储位置的数据之前需要执行擦除操作)、每个闪存块具有有限的擦除次数等。这些特性使得传统的基于磁盘设计的数据管理方法直接应用到闪存系统时的性能很差,不能充分发挥闪存本身的优良特性。因此,从闪存自身的特性出发,研究闪存存储系统的存储管理及索引技术等问题具有重要理论意义和实际应用前景。论文主要围绕闪存存储系统中的存储管理、I/O请求调度和索引管理等问题进行研究。闪存的存储管理是其他应用程序的基础,对闪存系统的整体性能具有决定性的作用。首先,针对MLC闪存所出现的编程限制以及可靠性问题,综合考虑NOR闪存和NAND闪存的差别,提出一种自适应的管理粒度可变的闪存存储管理方法,在提高读写(I/O)性能的同时较好地兼顾了MLC闪存可靠性差的问题。整个物理空间被组织成一个二叉搜索树的形式,并将一些关键数据存储在NOR闪存中,充分利用NOR闪存支持以字或字节存取以及NAND闪存容量大的特点来提高整个闪存存储系统的存取性能。同时,针对现有闪存存储系统中I/O请求调度方式没有充分考虑闪存本身特性的问题,提出了一种基于闪存存储系统的I/O请求调度策略,提高了闪存存储系统的I/O性能。并且将写请求动态地分配到适合的闪存chip(或bank)中,确保各个chip具有均衡的擦除次数及容量利用率(capacity utilization)。其次,索引是提高数据存取性能的关键技术之一,针对现有的基于闪存的B+树实现只适用于写操作频繁的运行环境,提出一种易于实现且能适应不同运行环境的索引结构。它根据不同的闪存设备和工作负载对结点的存储结构进行动态调节以减少闪存页面的读取次数,从而提高了读取结点的性能。最后,提出一种基于闪存的多维数据空间中的多维索引结构:F-KDB。F-KDB采用日志形式表示结点的更新提高了索引更新的性能,同时动态地调节结点存储结构,在不损害结点更新性能的基础上提高了F-KDB的查询性能。