日期:2014-05-16 浏览次数:20471 次
Tokyo Cabinet 是日本人 平林幹雄 开发的一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍, 反正是相当的快。
?
而Tokyo Tyrant(翻译成中文是:东京暴君)则是在Tokyo Cabinet上封装了网络应用接口,用于提供网络服务等一系列功能, 支持memcached协议和http协议 。因此我们可以方便地使用memcached java客户端直接访问,唯一需要注意的是,tt是持久化的,并且value只支持String类型。
?
接触TT还不到一年,之前使用的是memcachedb,memcachedb在高并发写入和读取的时候性能并不太理想,于是尝试了下TT。在同等硬件条件下,tt性能比memcachedb提升还是非常明显的 , 千万级的数据量下面达到了读写4k+/s。
?
一些优化总结:
1. 硬盘读写速度要快,我们采用的是SAS硬盘,15000转的。
2. 通过bnum和xmsiz参数来把硬盘数据缓存或映射到内存加快IO,rcnum来指定缓存最近访问的记录数。条件允许的话,xmsiz的值大于数据库文件大小。
3. 相应地,内存要够大。
4. 每天做完全备份, 通过tt提供的工具。
?
tt的应用场景:
1. 存储版本信息,存储实时浏览次数等小颗粒实时动态数据
2. 作为持久化缓存,用于减轻关系型数据库负载。
?
tt的集群方式:
1. 参考memcached集群方式,由客户端实现集群。
2. 采用主从模式的集群方式,1台master,多台slave,方便水平扩展。
?
每种方式都有优点和缺点,主从模式受限于master的承受能力,只能扩展读,写就不能无限扩展。
客户端集群方式伸缩性不好,加减机器都比较难,一旦某一台服务down了,会导致局部数据失效 ,因此可能需要针对每一各节点做热备(互为主从方式)。
技术上没有十全十美的方案,最简单的才是最合适,如何选择就看实际应用场景了。
?
?
?