我最近在两个不同地方提出HandlerSocket的相关问题,***个问题都是:为什么HandlerSocket没有像期待的那样流行?
尽管HandlerSocket技术是那么优秀,但是它的普及速度远没有达到人们期望的那样迅速。笔者认为有如下五个因素:
1. Bugs, Bugs, Bugs
直到今年年初HandlerSocket仍然存在一些被人认为是生死攸关的bug,虽然这些问题已得到了修复,遗憾的是这并未被大家所知晓。
写操作并没有淘汰查询缓存——如果执行了写操作通过HandlerSocket,由于没有失效查询缓存, 那么你可能从MySQL读到旧的数据。
不支持自动递增——插入时无法从自增列上自动获得增量值
2. 系统软件发行
许多公司和组织只是简单地使用系统提供给他们的默认配置,就像在MySQL的标准发行版中,MyISAM的使用期最长一样:只是因为它是默认选项。即使在今天,仍有大量的公司在使用MySQL 5.1版本时,依旧没有应用InnoDB引擎,原因就是这不是默认选项。如果人们都不愿意被要求去修改my.cnf文件添加几行以使Innodb生效的话,就更不要期望他们会编译HandlerSocket插件了.
这即将被Percona Server改变,系统将默认包含了HandlerSocket插件,而且它只需要几个步骤就可以轻松安装。希望我们会看到HandlerSocket包含在MySQL社区中的其他版本。
3. 没有发布
有没有真正的发布或发布计划时间表。虽然有积极的开发,错误修复,而且文档也在正在完善,但这并不意味着别人知道错误已经被修复,有更新的可用代码。
4. 缺乏典型应用
这是经典的鸡和蛋问题,人们往往需要看到成功的案例或知名公司的代言才会决定引进一项新技术。一般来说,工程师们更容易记住有良好的文档的某个特定技术的用例。
5. 缺乏基准测试
***,基准测试工作不够完善。还没有人花时间去展示其在各种不同数据集上的工作情况;因为知道HandlerSocket的亮点,所以现有的工作几乎完全集中于主键查询,但人们很想知道对于其他用例执行的结果如何;另外,当基准测试仅仅是由一个对这个产品感兴趣的一方完成的话,内在的不信任感会油然而生;***,还需要有不同的更广泛行业和公司的,各式各样不同的基准进行完备。
总结
我们相信这些“问题“***会伴随HandlerSocket的成熟而自然地消失。更多的人会发布基准和用例。随着公司升级Percona-Server的安装,HandlerSocket就可以被便捷地使用。***,因为代码逐渐成熟,社区不断发展,我们会看到更多的第三方的参与,它们会带来更多的错误报告,功能需求和补丁。我对HandlerSocket非常感兴趣,并且非常看好它的未来。
原文链接:http://www.mysqlperformanceblog.com/2011/03/28/whats-up-with-handlersocket/
【编辑推荐】