我想知道即将到来的 SSD 技术如何影响(大多数系统)编程。出现了很多问题,但这里有一些最明显的问题:
- 磁盘访问速度是否可以考虑接近内存速度?
- 如果不是,它只是一种临时状态,还是有一些根本原因导致 SSD 永远不会像 RAM 一样快?
- B-Trees(及其表亲)仍然相关吗?
- 如果是这样,是否对 SSD 的 B-Trees(B+-Trees、R-Trees 等)进行了任何调整或修改?如果没有,是否还有其他为 SSD 设计的数据结构?
我想知道即将到来的 SSD 技术如何影响(大多数系统)编程。出现了很多问题,但这里有一些最明显的问题:
SSD 确实消除了读取的寻道时间问题,但在它们上高效写入却非常棘手。我们一直在对这些问题进行一些研究,同时寻找将 SSD 用于 Acunu 存储核心的最佳方式。
你可能会觉得这些很有趣:
虽然 SSD 的寻道时间比 HDD 的要好一两个数量级,但与 RAM 相比,这些时间仍然很重要。这意味着与寻道时间相关的问题并没有那么糟糕,但它们仍然存在。吞吐量仍然远低于 RAM。除了存储技术,连接也很重要。RAM 在物理上非常靠近主板上的 CPU 和其他组件,并使用特殊的总线。大容量存储设备没有这个优势。存在电池支持的 RAM 模块包,它们可以作为超快的 HDD 替代品,但如果它们通过 SATA、SCSI 或其他典型磁盘接口连接,仍然比系统 RAM 慢。
这意味着 B 树仍然很重要,为了获得高性能,您仍然需要注意 RAM 中的内容和永久存储中的内容。由于整个架构和物理限制(非易失性写入可能总是比易失性写入慢),我认为这个差距可能会变得更小,但我怀疑在任何可预见的未来它会完全消失。即使您查看“RAM”,您实际上也没有单一的速度,而是几个级别越来越快(但更小且更昂贵)的缓存。因此,至少存在一些差异。
一个因素很容易想到......
由于使磁头在相距较远的磁道之间移动的相对成本较高,因此将硬盘驱动器视为磁带驱动器的趋势越来越明显。这导致人们努力优化数据访问模式,以便磁头可以在表面上平稳移动,而不是随机搜索。
SSD 实际上消除了寻道损失,因此我们可以不必过多担心磁盘上的数据布局。(更准确地说,由于磨损均衡问题,我们有不同的担忧)。
我在 SSD 和 RamDisk 上测试了构建时间,SSD 快了一点。我的同事用完全不同的设置实现了相同的结果——HDD 上的构建时间为 9 分钟,RamDisk 上的构建时间为 3 分钟 30 秒,SSD 上的构建时间为 3 分钟 0 秒。