Tag Archives: Database

数据库与用户体验

简要概括一下在 2010 数据库技术大会 上分享的这个关于”数据库与用户体验”的话题。

关于数据库与用户体验,在这个分享中我谈到了如下三点:

  • 响应速度(Response Time)
  • 可用性(Usability and Availability)
  • 数据交互策略(Data Interactive Policy)

其中响应速度(或者是响应时间,英文用了Time)这一部分,首先强调了一下面向最终用户的响应时间对用户体验的重要性。”慢”终归不是好事情。建议技术人员应该了解 Web 架构中各个组件之间的性能数据,并且能够建立端到端的性能数据分析。额外强调了一下延迟(Latency)的意义以及对于用户体验和架构扩展的重要性。这一部分最后提出了三个问题,意在希望能建立起一个具备基本性能度量能力的Web环境,我真的不知道有多少人仔细考虑过这样的问题。

对于可用性,用 PPT 中的这三句话即可概括:

  • 不具备可用性则没有意义
  • 好的可用性 != 好的用户体验
  • 差的可用性 =糟糕的用户体验

这里有必要再次强调一下第一句,很多 DBA 认为只看好自己的一亩三分地即可,对系统中的其它环节采取旁观态度,窃认为这是不可取的。补充一句:产品设计者实际上也应该注意过度设计带来的可用性风险。

第三部分看似篇幅挺大,但除了分析一个具体的案例之外,其实没说什么有价值的东西。至于 BASE 、CAP 这些内容,其实都是老生常谈的内容。费了不少口舌,如果要提炼出几个词的话,可能就是”权衡”与”取舍”,当然,这个要建立在一定的实践之上的。

必须要承认,这个话题因为比较跨界,也有我偏颇或考虑不够周详的地方。希望以后在能有更多的朋友加入到这一话题的讨论中来,我更想听听大家的看法。用户体验是个大话题,我这样的门外汉也来掺和似乎有些过分啊…

(现场用的 PPT 有几页展示效果不够好,在 Web 上看应该还成)

EOF

数据库技术大会以及我的演讲主题

今天晚上和几个同事飞赴北京,参加明天开始的 2010 数据库技术大会

在明天(4月2号)下午我将做一个演讲,题目有点偏,关于”数据库与用户体验“。我相信在此之前,没有谁会做这样的话题,所以这个话题在做数据库的技术人员眼里有点陌生或是有点忽悠。我的出发点是这样的:可能绝大多数 DBA 都会认为自己的工作和用户体验(User Experience) 是风马牛不相及的事情。实际情况并非如此,DBA 很多关键的工作都会和用户体验相关联,理解到其中的细微之处,能让 DBA 在技术团队发挥更大的作用,创造更大的价值。希望我的演讲到时候会对一些有困惑的朋友真的有帮助。

应主办方要求,演讲时间将控制在 45 分钟左右,所用的 PPT 几经修改已经定稿。在会后我将尽快分享到 SlideShare 上,并将做一个简洁一点的描述,核心的内容可能用较短的篇幅即可说清。

这次会议,阿里巴巴集团旗下各家子公司去了不少同事,当然,都是带着演讲主题去的,我对他们即将分享的技术话题也很期待。

另外,支付宝当前的 DB 团队仍然需要资深 DBA。如果有哪位朋友有意向来杭州发展,在会场我们不妨沟通一下。

EOF

最近事情比较多,这里更新较少。再过一段时间,我会有机会做更多的总结,与朋友们分享一些心得。

此文作者:, 位于 Database 分类 标签: on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

2009年数据库技术领域回顾

简要回顾一下 2009 年数据库技术领域。过去的一年,差不多也可以说是过度的一年,数据库技术以及数据存储产品等都都或多或少发生一些方向上的转变。

Oracle 收购 Sun,MySQL 前途未卜

Oracle 收购 Sun 可谓一波三折。在获得美国司法部门的批准后,欧盟委员会又开始调查,Oracle 随后抛出一个”十条保证”,眼看着欧盟就要点头,没想到 MySQL 创始人 Michael Widenius(Monty) 则在这个当口不失时机的搞出来一个”拯救 MySQL”的抵制活动,让 Oracle 头疼不已。Monty 这人多少也有点上纲上线,现在已经将 MySQL 的命运和 “Internet Free”这个大话题绑在一起了。

没有人会相信 Oracle 会善待 MySQL,谁会干放虎归山的事情呢? 换了你也会把 MySQL 雪藏起来,毕竟商业公司就要逐利。但是,也很难说一旦收购完成后 ,MySQL 会在短期内消失,基于 MySQL 众多开源分支以及解决方案也都发展的不错,我相信最终决定权还是在用户的手里。就算没有 MySQL,也没准儿会有 YourSQL 出来的…

尽管口水战还在进行,MySQL 的开发者倒是没闲着,在年底发布了 5.5 第二个里程碑版本,原来站点上的 6.0 系列的信息全部撤掉。5.5 更像一个集成版本,将不少第三方贡献的功能改进(比如 Google 的 Patch)融合了进来。

而 Oracle 这一年在产品上的一个标志性事件是推出了 Exadata 存储第二版,与第一个版本不同的是,这一个版本在 OLTP 方面增强了许多。从这个版本开始,Oracle 正式拥有自己的存储硬件(第一版是和 HP 合作的产物)。RDBMS 上,除了发布 11g 第二版之外,也在做功能上的调整,这一次,面向的是数据中心。

NoSQL 的兴起

这是今年数据库领域最有趣的话题。NoSQL 的由来大约是这样的:当时还效力于 Last.FM 的 Johan Oskarsson (现在已经投靠 Twitter 了)组织了一个技术会议,话题是关于”open source, distributed, non relational databases”,为了方便一点,想出来一个 “NoSQL” 的术语。然后由 Rackspace 的 Eric Evans 引用,进而流传开来(refer)。NoSQL 在基于 Key-value 的存储解决方案上提倡去 SQL 化,尤其避免表连接,并且通过一些变通的办法提供 RDBMS 的 ACID 功能(如果需要的话)。

NoSQL 的理念能够短时间内被技术圈所接受,离不开基本的理论支撑:最终一致性BASECAP 这三大基石;一方面是基于 Key-Value 的数据存储解决方案更加成熟,

所谓 NoSQL ,是针对当前对关系型数据库的过度依赖与运用而言,不要将其当成万能药,也没必要过于激进的推行 NoSQL 的模式。在我看来,NoSQL 是针对争夺应用模式上的一种理念上的运用。对多数企业来说,仍属屠龙之技,没必要照搬解决方案。至于传统的 RDBMS 是不是已经走向末路,我认为不尽然。RDBMS 依然尤其广泛的应用场景,而NoSQL如果要有更大的作为也要有来自商业上的更大支持才会有所突破。

SSD 被更多企业接受

Jim Gray 在 2006 年的那句名言:Tape is Dead,Disk is Tape,Flash is Disk,RAM Locality is King ,现在正在被现实所验证。2009 这一年,用户已经开始进一步试水 SSD 产品,包括 MySpace、Last.FM 等网站已经开始在关键应用上部属 SSD(refer: 1, 2)。而国内也有很多企业对 SSD 进行尝试性的使用,这其中包括阿里巴巴、优酷。

更多的存储厂商已经在高端存储中兼容 SSD ,除了去年的 EMC 尝鲜之外,现在 IBM、HDS 、NetApp 都加入了这一阵营。

随着 SSD 的价格迅速下降,很多存储厂商已经开始调整硬件架构,现在有个看似可行的趋势是在 Cache 层与磁盘层之间多构建一个 SSD 存储层,在成本与性能之间做一个折衷。

在去年年底的回顾中,我曾大言不惭的说”相信2009 年会是 SSD 爆发的一年”,总体来看,2009 年对 SSD 的部属还谈不上”爆发”。中规中矩而已。

Amazon EC2 对 MySQL 企业版的支持

尽管我不愿意谈云计算,不过 Amazon 这一年在云计算方面还是做了很大的突破,Amazon EC2 上面现在已经可以跑 MySQL 企业版了,采取按照增长付费 (‘Pay-as-we-Grow’) 的模式让初创公司有更多的选择,这比 SimpleDB 可以说是前进了一大步。 这种模式在国内是否可行,考虑到当前内容审查的问题,还有待商榷。

国内 Key-Value 产品

这一年来国内对 Key-Value 产品的研究与运用和国外基本没太大的距离,豆瓣网先作出了不错的表率,发布了 BeansDB 存储系统,这是一个豆瓣风格的 Dynamo 实现,采用类似 Memcached 的去中心化结构。而最近得到的消息说人人网也要将其内部使用的存储系统 Nuclear 开源。相信在新的一年可供参考的 Key-Value 会层出不穷。

其它方面

Hadoop 过去一年中没有太大的变化,上了一点规模的网站都在用,快成了 Web 数据分布式计划的标准组件了。Doug Cutting 出走 Yahoo! 还是带来了一定的影响 ,不知道今后 Yahoo! 在 Hadoop 方面的支持力度会如何。至于面向列的 DB 发展情况,在过去的一年中进展不大。SQL Server 和 DB2 等方面似乎没什么可圈可点的大事,倒是 PostgreSQL 因为 MySQL 的不确定性而取得了不小的增长。

有一点要补充的是,假以时日,Open Data 或许也将成为一个趋势。

当然,这份回顾有浓郁的个人色彩,有不同意见请留言探讨吧。

EOF

本文发表在《程序员》杂志,不过这里的有些许更新。本文写作时,Oracle 收购 Sun 还没有尘埃落定,现在看起来,一切都变化太快。

Oracle 数据库版本调查与分析

据我所知,很多第三方公司给客户实施的时候,选择的 Oracle 版本 都是非常随意的。数据库软件的版本选择多少是有点技术含量在里面的,毕竟数据库这东西要升级并非易事。这里小范围调查一下大家都在用 Oracle RDBMS 的哪个版本,然后把分析数据和大家分享一下。或许会对新手 DBA 有一定的参考价值。

点击访问在线调查 (如果你不能访问这个 URL,需要动动脑子想想为什么)。

统计数据:

Oracle_version_chart.png

出乎我的意料,9.2.0.8 这个版本现在用的人并不是特别多了(没有我预期的多),而10.2.0.4 这个版本现在看起来像是不少用户的选择,这其实也侧面说明着很多用户升级到 11g 还需要一段时间。版本的分散意味着 Oracle 升级的难度的确不小。

不少明显质量不够稳定的版本也有用户在用(比如,10gR1),看来第三方实施的弊端的确不小。Oracle 一般发布的Release 1 其实多少都会有一些问题–否则也不会有后续的 PatchSet 发布了,要知道每个 PatchSet 都是包含几百个 Bug Fix 的。一般来说,在线 OLTP 恐怕少有人用 R1 的版本。

现在收集到大约 100 多份样本,相信还是有点参考价值的。

有的 DBA 对于统计所用的 URL 可访问性有疑问,这侧面验证了我另一个想法:Oracle DBA 对 Web 的熟悉整体上不如 MySQL DBA

EOF