论文部分内容阅读
键值(Key-Value,KV)存储广泛部署在嵌入式系统和企业级系统中。如今,大多数KV系统都使用日志结构合并树(Log-Structured Merge Tree,LSM树)模型。LSM树可以消除对存储设备的随机写入,并且保证可接受的读取性能。作为新兴的存储介质,三维闪存已成为取代硬盘驱动器的主流技术。与硬盘和传统的平面闪存不同,三维闪存容易受到温度影响,高温会导致电荷损失和闪存的稳定性下降。LSM树最初是为具有硬盘驱动器的存储设备设计的。当LSM树应用在三维闪存上时,LSM树将随机写操作转换成顺序写,而对闪存的连续物理地址访问会带来严重的温度问题,这将影响到三维闪存中数据的完整性。本文提出了TLSM,一种基于LSM树的三维闪存温度感知的持久性数据管理方案。TLSM在应用程序层提供了LSM树优化,在固件层提供了将持久性数据分配给三维闪存的地址管理。在应用程序层面,TLSM提供了一种新的LSM树优化策略。针对LSM树中的SSTable文件,TLSM将数据和索引分离。分离策略消除了LSM树在数据压缩时不必要的更新和写入,从而减少了LSM树写入到三维闪存中的数据量。在闪存转换层,TLSM提出了一种新的地址分配算法和一种新的磨损均衡算法。TLSM将三维闪存的物理区域分块,然后把逻辑上连续的地址分配到物理上分散的位置。磨损均衡算法可以使数据平均地分布在整个闪存单元中。感知温度的物理区域分配和磨损均衡可以把数据重新分配给温度相对较低的物理块,同时保证数据的均匀分布。这种跨层优化设计可以有效地应对温度问题,确保三维闪存中LSM树的数据完整性。我们将提出的TLSM与Level DB和Wisc Key进行了比较。Level DB是一个非常高效的基于LSM树的KV存储数据库。Wisc Key优化了Level DB的写性能,可以有效地减少I/O放大,减少压缩过程中的写入数据量。我们使用一组典型的测试数据集论证了所提出方案的可行性。我们比较了峰值温度和平均温度、不可纠正的错误比特数、系统响应时间、垃圾回收开销、写/读放大、数据合并操作在总操作中的比率等几组性能指标。多组实验表明,与现有的方案相比,TLSM可以显著增强数据完整性并减少写放大。与Level DB和Wisc Key相比,TLSM可以使峰值温度分别降低52.99%和39.61%,平均温度分别降低53.22%和10.10%。这种跨层设计可以解决三维闪存上LSM树的温度问题,而不会带来额外的空间和时间开销。