SSD旧文引发新讨论,技术需要不断尝试才能不断优化

在微博上,PPTV的网站运维总监诸超分享了一篇来自网站Hellodb的旧博文,作者是淘宝数据库团队负责人张瑞(微博账号:HelloDBA)。文章标题是:《我对技术方向的一些反思》。在这篇写于10年的文章中,张瑞分享了关于SSD、可扩展数据库架构、Oracle和MySQL、小型机和存储、NoSQL和Database、DBA能力和技术发展趋势等多方面的话题。

最引起诸超兴趣的,是张瑞关于SSD的思考,而且网友也对此提出了他们的见解。

文中,张瑞指出了自己选择SSD的目的和遇到的问题:

我们曾经使用了一批SSD的PC,用来做数据库的服务器,用来提高数据库服务器的IO能力。

如果将SSD作为主存储,存在一些问题:

  • SSD的稳定性还不够好,我们碰到了一些SSD盘损坏和SSD与机器不兼容的情况发生。
  • SSD的容量盘都比较小,考虑到稳定性的问题,如果做RAID会进一步损失容量,性价比不高。
  • SSD属于NAND类型的flash,写操作不仅会产生“磨损”,而且随着碎片的不断增加,写操作的性能会不断下降。

张瑞认为:

SSD并不太适合作为数据库的主存储,写操作并不是SSD的特长,而且作为主存储的代价过高。SSD更加适合作为内存和磁盘之间的一层cache,降低读操作的延迟时间,我们将其称为flash cache。

将SSD和Flash卡配置在PC服务器上,与普通SAS或者SATA磁盘混插,采用数据库flash cache技术,可以达到一个非常理想的性能,代价又不是特别高。我们也在考虑采用MySQL的flash cache架构。但是,如果你采用大型的存储设备,比如EMC和HDS,存储的cache实际上已经起到了一个二级缓存的作用,就没有太多必要使用SSD或者Flash卡了。

使用SSD还可以解决写操作的响应延迟,比如Oracle数据库的redo,因为每次commit都必须物理写入到磁盘上,所以将redo放在SSD上,可以提高写的响应延迟,但是不必将数据文件放在SSD上,因为它们并不是必须被写入的。要注意的是,SSD可能出现随着大量的写操作性能下降的情况。在我们的测试中,SLC的写能力比较稳定,而MLC的写能力会出现下降的情况。

张瑞的结论是:

SSD一定有光明的未来,取代磁盘只是个时间问题,只是我们还需要等待技术更加成熟,价格更加便宜。

绿茶饮士在看过后指出:

说来说去就是SSD虽然性能还行,就是性价比还不够高,如果再考虑高可用成本就更高了。还是从架构方面解决吧,实现热点功能,把SSD用于那些最需要加速的少数热点数据,其他冷门数据还是用SATA吧。人尽其才,物尽其用。

诸超的回复是:

其实不止SSD;关于MySQL和Oracle选型,其实讲的很好的;不过后来淘宝走了彻底的去O的路;关于NOSQL和关系数据库的,都讲的不错;关于SSD的,redo 放SSD其实我不赞同。

绿茶饮士提到:其实fusion io也就是在SSD上嵌入了热点功能和存储单元健康检查容错功能。

他还指出SSD和Fusion IO在接口和存储单元上的区别:

接口不同,存储介质应该差不多,也有写寿命问题,不过他们控制器的算法让每个存储单元的磨损几率尽量相同,再就是在存储单元级实现了RAID,RAID几就不太清楚了,应该是RAID5。而且健康检查会做得比较深度,有问题就标坏块。容量会越用越小。

在那篇文章的结尾部分,张瑞对技术发展趋势提出了自己的看法:

虽然现在的发展趋势是分布式架构,但是说不定过几年又会出现超级计算机,从而又走向集中式的道路。我们要做的是能够看到3年内技术发展的一个方向,适应技术发展的潮流,并不断调整目标,在解决问题的过程中不断优化。问题和技术都是不断发展的,试图设计一个完美的解决方案是不现实的,在一个问题被解决后,一定会有新的问题冒出来。

选择简单但是不完美的技术解决问题,先做!然后再不断优化。如果不去尝试,我们永远也不知道下一步要做什么,总是停留在对技术方案本身优劣的讨论上,是没有意义的。

人总是在不断反思,不断否定自我的过程中进步的,技术发展也是一样。

最新更新:

在诸超这篇微博的评论中,原作者张瑞现身,指出:

现在很多情况已经发生了变化。

让我们关注HelloDB网站,共同期待他继续分享11、12这两年的思考成果。 

你可能感兴趣的:(SSD旧文引发新讨论,技术需要不断尝试才能不断优化)