Tag Archives: SSD

2008年数据库技术领域掠影

此为《程序员》杂志投稿。应该刊登在 2009 年第二期。

“预测”不是件容易的事儿,”回顾”就好操作的多。2008 年发生了很多大事,相比之下,数据库技术领域的这些事儿多少有些微不足道。

0) Sun 收购 MySQL

2008 年初第一笔业界大并购,在上一波.com 大潮中 Sun 赚得盆满钵满,在这一波 Web 2.0 大潮中,Sun 还要做 Web 2.0 中的这个”点”(Dot)? 我个人对此并不看好

这是今年数据库领域的最大的事件,但也仅此而已,一年下来,MySQL 联合创始人 David Axmark 都因为”痛恨每天都要遵守的各种制度”从而离开了 Sun ,而到目前为止也没看到 Sun 针对 MySQL有什么新东西拿出来,倒是狂推预装了各项软件的硬件盒子。前不久发布的 MySQL 5.1 GA 质量更无法让人满意,很多 MySQL 旧将纷纷抱怨,连著名的 MySQL Performance Blog 也不失时机的抛出”MySQL 质量将不再如昔“的论断,大浇冷水。

1) Amazon 推出 SimpleDB

云计算喊了一整年, Amazon 也没闲着,不停地推出新服务。SimpleDB 服务让Jeff Bezos 把手伸向数据库服务,现在仍看不到该服务有大行其道的趋势,但是”提供数据索引与查询的核心数据库功能的 Web 服务” 无疑会逐渐吸引更多潜在的用户。到了年底,Amazon 干脆打出了在一段时间内 SimpleDB 免费的服务来招徕用户,用心良苦。

最近若干分析家下了论断 “未来网络产业将仅剩亚马逊与 Google 两强相争”,的确,Amazon 的技术实力不容小视,在 2009 年相信有更多精彩。

2) 主流存储厂商试水 SSD

让人没料到的是 EMC 作为业界存储领头羊,会率先推出支持 固态硬盘(Solid-State Drives, SSD) 的存储设备,Sun 、HP 等厂商也都不甘落后,纷纷宣布将拥抱 SSD。确实,SSD 的某些特性表现是如此抢眼,很多 DBA 都等着它来解决或者缓解 I/O 问题呢,毕竟这是近年来能看到的最大的硬件领域的突破。”钱能解决的问题就不是技术问题”,可惜,目前光有钱,买回来的 SSD 可能还是解决不了问题。SSD 的可擦写次数问题仍然让很多用户心下狐疑。

相信2009 年会是 SSD 爆发的一年,主流存储厂商都会纷纷推出支持 SSD 的产品。假以时日,SSD 应该不负众望。

3) Oracle 联手 HP 进军硬件领域

今年 Oracle 整体在 DB 方面实在没什么亮点,如果非要说有,那么在 Open World 上亮相的 Exadata Storage Server 倒是值得一提。

微软和 IBM 这一年来尽管都有升级产品推出,但实际上也就是升级产品推出而已,仍看不出什么新生机。其实很多用户已经非常厌倦不停地增加新功能的软件新版本,每发布一个版本不失时机的宣布打破什么 TPC-C 记录之类的事情已经难以引起用户兴奋。如何在廉价硬件上实现大规模平滑扩展是所有的数据库厂商必须要面对的问题。

4)面向列存储的数据库技术

面向列的数据库(Column-Oriented Database)这不是什么新技术,但是非常适合某些数据分析或者统计类的应用需求。常见的RDBMS 都是面向行(Row-Oriented Database)存储的,在对某一列汇总计算的时候几乎不可避免的要进行额外的 I/O 寻址扫描,而面向列存储的DB 能够连续进行 I/O 操作,减少了 I/O 开销,从而达到数量级上的性能提升。

其实在 Google BigTable / Hadoop HBase 中很早就看到这一思想的运用,在过去这一年中,列存储数据库也更多的引起了重视。

5) GreenPlum= MapReduce + SQL

MapReduce ,让很多面向数据分析的 DBA 还是挺眼馋的,GreenPlum 的出现把 MapReduce 和 SQL 有机的衔接起来,给海量数据分析能力带来了新的可能。年末的时候, GreenPlum 又宣布进军中国市场,不知道用户实际接受程度如何。

顺便说一下,GreenPlum 背后的大东家是 Sun。

6) 从 Drizzle 到 Percona XtraDB 存储引擎

MySQL 的生命力不在大公司手中,而是来自开源技术、Web 2.0 网站的需求上。Drizzle 这个”精简 MySQL” 版本的出现多少证明了这一点。Percona XtraDB 存储引擎的推出也值得 MySQL DBA 惊喜。

除此之外,DRBD、MySQL Proxy 与 Memcached 等 MySQL 相关组件的灵活搭配与定制,给用户解决超大规模应用上带来了更大的可能。数据库市场不可能不受经济危机的影响,商业数据库厂商日子要吃紧是可以想见的事情。

7)Hadoop 的生命力

Yahoo! 公司在 2008 年表现不佳,但是 Yahoo! 支持的 Hadoop 项目可是左右逢源,再一次让我们认识到开放带来的生命力。Facebook、Amazon、AOL、阿里巴巴等公司(当然也包括 Yahoo!)都在纷纷构建 Hadoop 集群来解决大规模数据处理与分析问题!。期待在 2009 年 Doug Cutting,这位 Hadoop 项目的带头人不要被 Google 挖角。

N)2009 年会怎么样? 谁知道呢。

EOF

后记:这算是 2008 年末的时候数据库技术小观察吧。因为投稿的缘故,现在才发出来。在过去这短时间里,自己一些观点可能也有所变化。如有时间,再做补充或者修订。请注意该文的时效性。

补充:对于 SSD,最近一件重要的事件是 Steve Wozniak 加入了 SSD 厂商 Fusion-IO

Google 对数据中心的影响

传闻 Google 从 Intel 订购芯片,要求更具耐热性,要求 CPU 能在超出标准工作温度 5 摄氏度情况下运行。这样可以大量节省空调制冷带来的电力费用。

最近的另一个消息是 Google 在号召厂商采用 12V 电源的主板。节省功耗。

空间和电力是 IDC 头疼的两个地方,对于节省空间,Google 的服务器设计趋势是在一块主板上设两个服务器 ,有些类似硬件上的虚拟化。

Google 的这些举措其实也是其他上了规模的公司要走的路,肯定也会对 IDC 产生及其深远的影响。昨天和朋友在聊省电的事情,我当时能想到的也就是低功耗硬件, 比如低功耗 CPU、采用SSD、硬盘自动降速等几个有限的方式,倒是没想到更耐热的 CPU 这一点,而面向 IDC 的硬件集成这也是个很好的参考。

参考资料:

EOF

关于 SSD 的闲言碎语

前不久写给《程序员》的一篇文章里,个人预测在 2009 年,SSD (Solid-State Drive,固态盘) 在企业级市场能大展拳脚。上周参加了 EMC 的一个会议,提及了 SSD ,EMC 存储产品对 SSD 的引入也有一年了,做点 SSD 的科普知识应该是有必要的。

Wear Leveling

很多人对 SSD 的误解是:既然你可擦写次数有限制,比如 200 万次,那么不是没几天不久坏掉了,怎么说使用寿命还比物理硬盘长呢?

Wear Leveling 是有效提升 SSD 的 MTBF (Mean Time Between Failures)的一种技术手段。我们都知道木桶原理,对 SSD 硬盘也是这样,如果不停的对某个 Cell 擦写,那肯定很快就报废。 Wear Leveling 的基本思想就是利用算法保持所有的可擦写单位的次数是近似均匀的,这样就把写次数均匀的分散到各个 Cell 上。

Wear Leveling 翻译似乎还没有统一,有翻做均匀磨损、磨损分级、换位写入等。

对 Wear Leveling 粗略一点的描述大致是:假设更新某个数据块,假定8KB ,而可擦写块(erase block)是 256 KB,那么定位到当前数据位置后,将找个没写过或者写过次数更少的可擦写数据块写入,并不是对原来的位置反复更新。Wear Leveling 算法的效率直接影响 SSD 的寿命。

而 8K 到 256 KB 这个过程实际上是加大了 I/O 操作,称之为 Write Amplification (写放大)。当然 SSD 厂家另有其他技术尽量减少写的频率。

为什么 SSD 写入速度相对较慢?

用一句话解释:擦写块(erase block)比较大。

很明显这样做的目的是减少擦写次数,提升 SSD 寿命。但也影响了数据写入速度。

为什么 SSD 容量是 2 的幂次? 比如 32GB,64GB

这个我也不甚了了,猜测是因为 erase block 多数是 2 的幂次的缘故。物理硬盘的尺寸由来我也不甚清楚。

SSD 的擦写次数是不是致命的瓶颈 ?

这个问题太容易给用户带来疑惑。个人认为要依赖应用的特点和设计。对于合适类型的数据,基本不是问题。但对于某些特定的数据类型,那可能是灾难(比如数据库的 Redo Log)。

SSD 会给数据库应用的银弹么?

是曙光,但不会是银弹。对于密集写入的数据库应用来说,SSD 可能不会带来更多的好处。但是对于密集读的应用,那是有可能带来数量级上的性能提升。在未来若干年内,好的数据库应用仍然严重依赖于设计人员的能力和数据库管理员的优化技巧。

此外,还要期待数据库厂商针对 SSD 进行软件级别的优化。

是否从现在选择 SSD ?

典型的废话答案应该是:这取决于你的具体情况。

要看性价比,EMC 最早引入的 SSD ,性能是普通硬盘的 30 倍,价格大约也是 30 倍。而现在,在企业级市场,SSD 已经降到大约 10 倍普通硬盘的价格。如果再低一些,那绝对是比较有吸引力的。

EOF

其中观点仅供参考。SSD 有风险,玩家谨慎操作。而这篇文章中的有些观念有实效性,细节也可能不够准确。

Note: 这里的 SSD ,是说面向企业应用而不是面向个人消费品的。

再增加一个图:
SSD vs. HDD.png

关于 EMC 高端存储支持 SSD

EMC_logo_large.gif

这几天存储行业比较大的一个新闻是 EMC 宣布在高端 Symmetrix 产品支持 SSD (固态盘, Solid State Drive),注意是基于闪存(FLASH)的固态盘。不到半年前,和一些存储厂商的朋友提及 SSD 仍有人不知为何物,现在似乎一夜之间 SSD 到处都是了。EMC 虽身为市场的领先者,也敢于吃螃蟹,来者不善。

STEC.jpg

EMC 这次采用的 SSD 是 STEC 公司 Zeus-IOPS 产品线的产品。这一型号号称随机读操作的 IOPS 能达到 52000 个,采用 SLC (single-layer cell ),写也可以达到 17000 个 IOPS。只从这个数字看,单块 SSD 的性能是机械硬盘的 30 倍还多。在可靠性上,SETC 据说实现了 ECC 机制.

现有的机械硬盘的虽说在单位容量上还在不停的增加,但是性能基本上是到了瓶颈,即使用于高端存储的高速硬盘,IOPS 的能力基本上也就是 150 个左右。而 SSD 单块就能提供几万个 IOPS ,且耗电量极小,平均故障间隔时间(MTBF)又是普通硬盘的10倍之多, 这对以期得到高 IOPS 的 DBA 来说, 简直是银弹。

但是(什么都怕这个”但是”),但是 SSD 的有它固有的缺点。其中一个就是可擦写次数(这个在几个新闻稿里面可算是一笔带过的),尤其是基于 Flash 的 SSD。传统磁盘虽然有它的缺陷,但是可擦写次数几乎是无限次的。

听听来自竞争对手的声音或许也能让我们多点心眼。HDS 的 CTO Hu Yoshida 在 Blog 上撰文,提出了他对 SSD 能否被市场接受的三点疑问:

  • 1) 价格因素:SSD 大约是普通磁盘驱动器的 30 倍.
  • 2) 磁盘供应商多数是初创公司,主流磁盘生产厂家并没有上阵呢.
  • 3) Flash SSD 可擦写次数有限.

如果说前两条只是竞争对手的 FUD 的话,那么最后一条还是会令 EMC 销售很头疼,如何让客户消除这个疑虑是有些难度的。STEC 官方的技术参数是可擦写次数能达到 200 万次。这样看的话,在高端存储上用 SSD 还是有比较合适的应用场景:在 EMC 提倡的 “智能分层存储” 前提下由 SSD 提供密集读的操作能力。

EOF