本文通过从物理空间上对于读写操作进行分离,来减少读写干扰从而提高读性能。
目录
- introduction
- This work
- access characteristic guided SSD partitioning
- 1.overview
- 2.Read and Write Data Placement
- 3.Read and Write Data Migration
- 4. Workload based Partitioning
- limitation discussion
introduction
?SSD的使用越发宽泛。但是当前先进的SSD(高密度且阵列成本低)却遇到了读性能降落的情况。其原因以及解决方案有许多,例如:
- 低可靠性招致的读延迟。
可以使用更加强力的ECC(error correction codes) - 写操作导致的对读取的干扰。(由于write操作的延迟是read操作的10x-60x,因此可能阻塞读操作)
- 优先调度read request使得读写干扰最小化。但是并不能完全避免读写干扰。
- 通过冗余来优化读写干扰。
最简单的想法就是在不同的片上保存多个读数据的备份,当某个片发生读写干扰,可以直接从另一个片上进行访问。不过这样就需要额外的存储空间,同时额外的写操作本身就可能带来更多的干扰。
?基于下面的两个观测结果:
-
许多servr workload 的访问模式为:read主要发生在read-only data,write主要发生在write-only data;这里设定对于data page的访问如果95%都为读或者写,就称为read-only/write-only。
-
读写干扰为当前先进SSD的主要矛盾。下图说明了读写干扰对于读性能的影响,可以看到对于写密集的测试工作负载,是否有干扰对于性能的影响越大。
本文提出了an access characteristic guided SSD partitioning scheme 将读写操作进行分离。
This work
本文的主要工作在于:
- Identified read and write interference which has been critical issue for read performance in the state-of-the-art SSDs;
- Introduced an access characteristic guided SSD partitioning scheme to optimize the read and write interference;
- Proposed a set of data placement schemes and a workload based partitioning scheme to realize the SSD partitioning scheme;
- Implemented and evaluated the proposed schemes. Experiments show significant performance improvement over the current solutions.
access characteristic guided SSD partitioning
1.overview
- 基本思想
1.根据沟道将SSD分为read area和write area。
2.基于数据的访问特性,将write data和read data放置到不同的区域。 - 挑战
1.许多请求需要交叉访问。即没办法完全将读写分离,毕竟写入的数据也可能需要读出,反之亦然。
2.将沟道进行分离之后,对于单纯的读或者写会减少可用的并行单元。
2.Read and Write Data Placement
在SSD被分为read-only和write-only两个区域之后,数据将根据他们的访问模式分配到不同的区域。
?如果数据最近主要被write操作访问,并且当前的操作是write,就将其放在write area;
?如果数据最近主要被read操作访问,并且当前的操作是read,就将其放在read area;
?这就要求额外的历史文件来记录最近的操作。
3.Read and Write Data Migration
许多数据并非是read-only或者是write-only,因此基于上一点的placement机制,增补了数据的迁移机制。
- 两个方向
1.from read area to write area
如果数据被放置在read area之后,它接受到了许多写操作(例如update),就应该迁移到write area;需要注意如果这种迁移后,数据又被频繁read,会在write area制造read,而在write area的read会受到更大的干扰。
2.from write area to read area
如果数据被放置在write area之后,它接受到了许多读操作,就应该迁移到read area;引入了额外的写,如果这种迁移是不对的(之后数据又需要被更新),就会在read area引入写操作。 - 两个阈值
1.Once data are read consecutively by Tr times at write area, they are migrated
2.Once data are written consecutively by Tw times at read area, they are migrated.
4. Workload based Partitioning
- 2个问题
- 终究有一小部分请求无法被分区,在write area的读操作就会面临非常严重的干扰。
- 由于在物理上进行了分隔,导致可用的并行性减少。
- 基于workload的机制
- 如果2,3两点的机制没能解决分隔,写区域就要分配更多的channel来缓解在写区域对于读请求的干扰。
- 如果工作负载对于并行性较为敏感,读区域就要分配更多的channel来缓解减少的并行性。
limitation discussion
1.对于大部分的请求,分离是好的。但是对于部分工作负载,很多请求是读写交叉的,无法进行分离。
2. 如果负载对于并行度高度敏感,分区并不能提高性能因为分区牺牲了并行度。
3. 写区域仍有许多读请求,会造成更多的干扰。会导致这样的read有很大的尾延迟。
4.wear leveling under partition
[1]2020-DACAccess Characteristic Guided Partition for Read Performance Improvement on Solid State Drives