今天看到一个文章,谈到Berkeley DB与eXtreamDB的性能对比,可惜两者的数据集不同,没多大可比性,以后有时间,我把那个程序修改一下,使用相同的数据集对比下,把结果贴出来给大家看看。我很有信心:Berkeley DB不会输给eXtreamDB. 看了官网才发现,eXtreamDB是如此的与Berkeley DB相似,但是它不是开源产品,所以从使用者的规模来看,我相信无法与Berkeley DB相比。

聪明的公司会发现,现在开源不仅仅是被迫而为,而是一种竞争优势,开源和双license 让Berkeley DB受益匪浅。上OTN你会发现在免费使用Berkeley DB的人非常多,Oracle公司收购了Berkeley DB后,也很支持开源社区,不仅有专门的支持工程师在线回答基础的使用问题,我们很多同事包括我自己都时常上去回答一些免费用户的问题,常常涉及到复杂功能的用法、性能调优、bug报告、feature请求,等等。 这样,我们可以清楚地知道用户需要什么样的产品,当前产品有什么样的长处和短处,于是可以清晰地把握产品的发展方向,保证了每一个Release新出来的产品总是有不少人想要的;这一大批用户偶尔报告的一些bug,特别是出现在一些罕见的平台上面的,或者在极端情况下出现的bug报告,是极其珍贵的,虽然有时候会让组内若干个人忙乎好几天,但是对于产品品质的提升是非常有益的,而且我们都很乐此不疲。

例如9月份AL公司报告的那个bug就属于这种情形。那次,起初用户很着急,因为产品马上要发布,于是我们赶紧研究解决方法,及时给用户提供了解决方法。然后,用户已经有了我们提供的Workaround,没那么着急了,但是我们比他们着急,想要找到问题的症结来解决问题,所以组内的高手纷纷追着用户了解情况,恳请他们仔细描述问题,reproduce bug(因为我们使用相同的机器和系统和配置并没有重现问题),并把bug出现时候的Berkeley DB的各种状态报告结果送给我们,等等。最终我们找到了问题的原因---没有完整地使用Solaris系统的新的版本的多CPU时的并行控制功能---并解决了该问题。

类似这样的例子还有很多,从源代码注释和内部SR历史中,我就曾经注意到好几个这样的例子。有的用户会在阅读源代码的时候发现一些不影响程序正确性的文字性错误并OTN上面给我们指出,也是让我们很高兴而欣慰的,一是有这么认真的用户在关注、使用Berkeley DB,二是我们的源码有不少人有兴趣阅读。当然,这也提醒了我们,每一行代码都要认认真真写,不止关乎正确性、可读性----还有很多人在看着呢,呵呵。

有无数开源用户在真实使用环境和真实用例下的测试的帮助,我们才得以不断地完善产品,使它最贴近和满足实际用户需求。我想这是包括Berkeley DB在内的优秀开源产品可以如此成功的重要原因。

下一篇我会说说我从Berkeley DB源代码中的所学和感受,以及对计算机专业学生、新入行的软件工程师的建议。

下面是那篇文章的链接,有兴趣的可以改一下程序,做个性能测试,把结果贴出来 :)

http://blog.csdn.net/johnlya/archive/2006/05/20/747089.aspx