序三
2005年夏天,我在IBM多伦多实验室认识王涛,作为“前辈”,在他加入IBM后我有幸成为他的指导者(mentor),与他共同工作过一段时间。
与王涛的最初接触中,他就给我留下了很深的印象。作为刚刚从大学毕业的新人,他对计算机技术与概念的领悟之快令人惊讶,很多基本的原理只需要简单解释一遍,他就可以从中推论出许多相对复杂的内部实现机制与设计初衷。同时,王涛是我见过最有天赋的C程序员之一,尽管技术支持的工作不需要亲自书写代码,但是我们需要阅读并理解大量可能隐藏着设计缺陷的代码,并从中找出发生问题的部分。王涛可以从DB2众多模块的复杂逻辑中找到隐藏极深的bug,并在最短时间内提出有效的解决方案。
王涛于2011年初加入了DB2三线高级问题诊断小组(Advanced Problem Determination,APD),该小组在全球只有不到15人,由世界各地顶尖的DB2问题分析专家组成(亚太地区4人,分别在日本、韩国与澳大利亚),算是IBM DB2领域的“最后一道防线”。该小组负责分析世界各地最为紧急与复杂的问题。当DB2引擎的开发人员无法判定问题出现的模块,或者需要帮助理清复杂问题的思路时,通常会寻求高级问题诊断小组的帮助。而很多时候,作为提供问题解决方案的技术负责人,王涛需要协调各个不同模块与产品之间的开发人员,精确定位每一个模块各自所需研究的方向。
在短短的几年中,我欣喜地看到王涛从一个大学毕业的新人一步步成长为DB2世界级顶尖的专家,成功地为无数家全球顶尖企业解决过各种各样的疑难杂症,其中包括美国国防部与军方、波音、可口可乐、雀巢、SAP、HP、丰业银行、中国电信、美洲银行、汇丰银行、三星等知名机构与企业。
如今我作为数据库性能架构师,同样在不断寻找着市面上理论与实践并重的资料。王涛与徐明伟合写的这一本书在高层面用简单的语言阐述了许多DB2中苦涩难懂的模块,又能够结合王涛在多年的技术支持生涯中解决的经典案例,为读者带来实际的问题分析思路。
在阅读本书后,我个人的感觉是,本书并没有像很多其他的资料一样,如同“参考手册”般用严谨并枯燥的语言尝试覆盖每一个模块的所有细枝末节(比如各种参数与语法的使用),而是着重于最重要的“概念”的剖析,以及阐述“为什么”一个产品或者应用需要这样或者那样的设计。
客观地讲,本书并不是一种“随用随查”类型的参考资料。由于作者使用了大量的篇幅进行原理的剖析与案例的讲解,并没有在细节的知识点上做过多的纠缠。读者在需要某些特定的知识点时,可以参考IBM的信息中心得到语法信息。本书的目的是为了给读者一个高层面的理解,知道每一个模块“为什么这样设计”,以及对不同类型问题“应该如何思考”的启发。在读者阅读案例时,我建议并不要过于专注每一个案例的解决方法,而是要理清问题诊断的思路。同样现象的问题可能会有100种不同的原因,而作者在本书中并没有尝试列出所有可能发生问题的方面,而是给出一系列一步步的思考过程,让读者在日常工作中尽量能够做到真正的“问题诊断”,而不是“凭经验尝试”。
相信本书能够为真正希望了解DB2的读者打开一扇大门,在知道不同语法命令的同时,能够深入地理解产品本身的设计思路与问题诊断的思考过程,成为您在成长道路上的一个朋友。
唐迅(数据库性能架构师)
2011年5月于多伦多