至于详细情况,作者会再写其它文章。很期待。
No duplicate cache
我们使用memcached的时候,数据会同时缓存到innodb的buffer pool与memcached中。handlersocket
算是重复的cache吧。
HandlerSocket自身没有缓存,它完全听从InnoDB storage engine。
No data inconsistency
缓存的一大问题就是数据何时过期。
HandlerSocket没有缓存,也就不存在这种问题。
Crash-safe
InnoDB还是相当可靠的。
innodb-flush-log-at-trx-commit=1 加上这句就更保险了。
最多会丢失死机前1秒内的数据。
SQL can be used from mysql clients
我们仍然可以使用SQL语句进行复杂的查询。
确实方便很多啊。
All operational benefits from MySQL
HandlerSocket作为插件运行于mysql内部,所以mysql的操作,比如SQL, 热备份,主从,Nagios监视等等,都是支持的。
通过 show global status, show engine innodb status , show processlist 这些都可以看到HandlerSocket的状态。
No need to modify/rebuild MySQL
无需改动mysql的源代码或者重新编译mysql。
线上的环境可以直接使用HandlerSocket。
Independent from storage engines
理论上讲,HandlerSocket支持任何的存储引擎,比如myisam,memory?
不过目前只在mysql5.1 5.5 InnoDB的环境下进行过测试和应用。
缺点与注意事项Need to learn HandlerSocket APIs
目前只有C++和PERL库可用。以后肯定会有php扩展出现。
No security
就像其它的NoSQL数据一样,HandlerSocket没有任何安全方面的功能。比如权限控制之类的。
HandlerSocket的工作线程使用system权限,所以你的应用可以存取所有的表。
当然可以使用防火墙来限制访问。
No benefit for HDD bound workloads
如果你的内存不够大,内存要与硬盘交换数据,那么HandlerSocket的优势就体现不出来了。
我们在服务器上使用HandlerSocket,将绝大多数的数据装入内存。
DeNA在生产中使用HandlerSocket
DeNA公司已经在生产环境上使用HandlerSocket了。
结果令人满意!
有了HandlerSocket可以省掉很大一批memcached服务器与mysql从服务器。
而且带宽占用也得到了缓解。我们很满意这个结果。
HandlerSocket插件是开源的,随意尝试. 如果你能给我们反馈,我们将非常感激。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27117-7.html
是一条
马云的确是真心话呀