2010年,我有幸因公出差前往东京。在为期五周的时间里,我与NEC一个部门的顶尖团队合作。这项任务由我和亚历克谢·M.共同负责。
亚历克谢,感谢你在旅途中的支持与联络。你提前带了备用的3G手机和旅游SIM卡,非常周到。ありがとうございます!(arigatou gozaimashita!)
我的任务是搭建两套经过NEC优化的服务器配置,均安装了Oracle数据库:
- 4台刀片服务器并行运行,组成RAC(Real Application Cluster)集群;
- 4台刀片服务器通过特殊总线连接,作为一个整体运行(Single Oracle Instance)。
测试被优化以支持并发请求,我们预期在最新硬件上,第一套RAC配置将展现出令人印象深刻的性能。
在东京府中市(东京都)的数据中心,部门主管是一位白发苍苍的日本人,他亲自为服务器接线,不允许团队任何人靠近。双方都高度重视这项工作,因此我们倾尽全力,力求做到最好。
我们首先测试了第二套配置。测试结果令人满意(具体数字已记不清),我们重复测试多次,随后将服务器切换至RAC集群模式。
日子一天天过去,但测试结果始终显示RAC配置远逊于单实例配置。莫斯科的同事们多次修改测试脚本,但始终无法接近第二套配置的性能水平。我们并未分享这些结果。
我们的日本同事注意到了我们的尴尬。在出差第32天,我主动承担起测试责任,决定向他们的管理层坦诚承认:根据我们的测试数据,RAC配置的性能远逊于单实例配置。无论我们如何优化RHEL/ext3内核或文件系统,性能均无改善。
那位年长的日本人礼貌地听完了我的报告,就在服务器旁,他叫来了其他同事,要求他们重复我刚才的陈述。大家一同微笑。他说道:
- “这些结果正是我们所期待的。公司对标准服务器进行了改造,使其处理器和内存协同工作。我们一直期待你们在高负载下的测试结果,我们自己没有条件进行这样的验证。因此,我们非常满意,新服务器完全达到了我们的预期。谢谢!”
那一刻,我如释重负!我所代表的公司对我的内心感受毫不在意,甚至对我的“认输”表现也无所谓。但事实证明,有时“失败”恰恰是“预期的结果”。
部门主管和他的助手兼朋友邀请我和亚历克谢到数据中心对面的私人餐厅共进午餐。我认为,他们邀请我们品尝他们盘中的食物,是表达最高敬意与款待的体现。
日本人从不滥用其职位权力。虽然出口处的闸机是敞开的,我们仍等了三分钟,直到下午两点整才一起离开。
这趟出差是我经历过的最令人难忘的一次。与当时日本人的交流,让我内心豁然开朗。起初,我期待在成田机场看到飞碟,后来又在街头寻找它们。结果却只遇见了丰田皇冠出租车和棱角分明的汽车,普通的拖拉机和卡车。成田特快在雨天时速度仅约40公里/小时。而地铁则精确到秒,每条线路的列车都发出独特的声音。日本人是铁路的狂热爱好者。在“JR”这个词里,远比“中国铁路”(RZD)蕴含更丰富的文化内涵。> 在工作方面,我了解到一种方法,它曾带领工业走向稳定。如今情况可能已发生变化,人们说丰田已不是从前的丰田。但正是从那里诞生了“先培养优秀的员工,再制造优质产品”的理念,日本企业由此开启了“精益生产”(Lean)模式。许多该理念的要素同样适用于软件开发。这里同样有流水线和人。我希望将“精益”与“现地现物”(Gemba)的理念融入我的工作中,我即将开始一个系列文章,分享这些理念在实践中的应用经验。
最后:
