`
hankesi2000
  • 浏览: 97110 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tokyo Cabinet & Tyrant 多服务器节点master-master部署思考

阅读更多
Tokyo Cabinet & Tyrant支持master-slaver和master-master两种分布式方式的部署,但是由于master-slaver在master宕机后需要重新手动设置master,这种冷启动的方式不是特别好;而且master-slaver的方式基本上是用来处理多读少写的操作,对于读写比例不大的我们的项目,感觉更适合使用master-master的方式。

假设有两台机器作为分布式中的两个master服务器,取名为TT1和TT2,假设IP为10.10.13.11和10.10.13.12。

安装完TC和TT后,直接运行TTserver,脚本为:

TT1:
mkdir ulog
ttserver -port 1977 -ulog ulog -sid 1 -mhost 10.10.13.12 -mport 1978 -rts 1.rts casket-1.tch


TT2:
mkdir ulog
ttserver -port 1978 -ulog ulog -sid 2 -mhost 10.10.13.11 -mport 1977 -rts 2.rts casket-2.tch

启动后,日志显示如
2010-06-02T10:12:11+08:00       INFO    connected: 10.10.13.12:60330
2010-06-02T10:12:11+08:00       INFO    doing repl command
2010-06-02T10:12:11+08:00       INFO    replicating to sid=2 after 1275379364260424
2010-06-02T10:12:12+08:00       INFO    replicating from sid=2 (10.10.13.11:1977) after 1275443629795059

启动完成后,master-master方式的TTserver就可以运行了。根据TT的自动复制策略,写入到TT1上的数据会被复制到TT2上去,反之亦然。

一些参数说明,具体参考http://1978th.net/tokyotyrant/spex.html
-ulog path : specify the update log directory.
-sid num : specify the server ID.
-mhost name : specify the host name of the replication master server.
-mport num : specify the port number of the replication master server.
-rts path : specify the replication time stamp file.
".tch", the database will be a hash database.


需要注意的是,如果TT1宕机并且持久化文件casket-1.tch丢失,重启后可能有数据无法从TT2上同步的问题,原因是rts的时间戳设置的太大了,修改1.rts中的值为0,则会从TT2上获取所有的数据。新加入的节点,首次创建时其rts中的值默认为0,所以会同步到所有的数据。

TTmaster-master的介绍并不多,只找到了双机做master的情况,而且他们之间的复制是互为master-slaver的复制方式。并且单个节点只能与一个节点作master-slaver,这样的话,暂时只能为环状方式的复制;而且只要其中一个节点坏掉,都会有数据过期的可能。robbin大哥说的没错,TT&TC确实不是用来作为分布式数据库存在的。

综合TT和master-slaver和master-master方式,完全可以做到mysql的双机做master,然后每个master后面挂slaver的方式了,不需要额外的代码。

真正作为服务器运行的话,还需要加入一些额外的参数,如持久化文件的压缩,曾经有同事在作测试时发现文件大小一直增加的情况,加入压缩的参数情况得到好转。
0
1
分享到:
评论

相关推荐

    tokyo cabinet tyrant研究资料

    Tokyo Tyrant 则是 Tokyo Cabinet 的网络服务器版本,它为Tokyo Cabinet提供了一个简单的网络接口,使得Tokyo Cabinet可以通过网络进行分布式操作。Tokyo Tyrant支持多种协议,如TCP和Unix域套接字,可以作为客户端/...

    LS(LG)产电MASTER-K系列KGL-WIN(3.6)编程软件.rar

    LS(LG)产电MASTER-K系列KGL-WIN(3.6)编程软件是一款专为LG产电MASTER-K系列PLC(可编程逻辑控制器)设计的编程和配置工具。这款软件支持用户对PLC进行程序编写、调试以及系统配置,以实现自动化控制系统的高效运行...

    Tokyo Cabinet Key:Value数据库及其扩展应用

    总结来说,Tokyo Cabinet和Tokyo Tyrant是针对高并发和大数据量需求的Key-Value数据库解决方案,通过调整参数如MMAP内存大小和bucket数组数量,可以在保持高效性能的同时,适应不断增长的数据规模。对于寻求优化...

    Tokyo-Cabinet.tar.gz

    Tokyo-Cabinet是一款高效、轻量级且功能强大的键值对存储系统,它由日本的Hirata Takashi开发。这个系统提供了多种数据库引擎,包括BDB-like(Berkeley DB风格)的TDB(Tokyo Database)和哈希表型的HDB(Hash ...

    C#版Tokyo Tyrant客户端

    4. 集群支持:如果Tokyo Tyrant配置为集群模式,客户端应能处理多台服务器间的负载均衡和故障切换。 5. 键值对操作:Tokyo Tyrant基于键值对存储,C#客户端应提供方法来处理键值对,例如通过键来定位值,或者通过键...

    PHP tokyo cabinet扩展

    尝试开发PHP的扩展,仅用于学习。目前仅能够在windows下编译通过。 Linux下的tokyo cabinet API与Windows与差别,写的时候是在windows下,准备在linux下编译时才发现tokyo cabinet API在Unix下与Windows下是不一样的

    tokyocabinet-lua-1.10.tar.gz_TOKYO_Tokyo Cabinet

    Tokyo cabinet C 库的Lua绑定接口。 Tokyo cabinet 是一个管理数据库的库。该数据库是一个单一的数据文件,每个记录为关键字和值。每个关键字和值是可变长度的字节序。二进制数据和字符串都可作为关键字或值。每个...

    tokyocabinet-java-1.24.tar.gz_TOKYO_Tokyo Cabinet java_tokyocabi

    Tokyo cabinet C 库代码的Java绑定接口。 Tokyo cabinet 是一个管理数据库的库。该数据库是一个单一的数据文件,每个记录为关键字和值。每个关键字和值是可变长度的字节序。二进制数据和字符串都可作为关键字或值。...

    memcached,mongdb,redis,Tokyo Tyrant的安装和使用

    4. **Tokyo Tyrant**:Tokyo Tyrant是Tokyo Cabinet的一个网络服务器接口,Tokyo Cabinet则是一个键值存储系统,提供了高效的数据存储。Tokyo Tyrant可以用于数据缓存、日志记录、搜索索引等。安装过程包括下载源码...

    tokyo-cabinet-cookbook:安装 Tokyo Cabinet 并为 ROMA 设置

    东京橱柜食谱 使用 Chef 安装东京橱柜。 支持的平台 支持以下平台: ...在节点的run_list包含tokyo-cabinet : { " run_list " : [ " recipe[tokyo-cabinet::default] " ] } 作者 作者:坂锐( )

    tokyoCabint及tokyoTyrant简介

    Tokyo Tyrant是Tokyo Cabinet的一个网络服务器版本,它基于Tokyo Cabinet提供了一个轻量级的键值对数据库服务。Tokyo Tyrant的主要特性包括: 1. **网络接口**:Tokyo Tyrant可以通过TCP/IP协议对外提供服务,允许...

    Tokyo Cabinet-开源

    **东京内阁(Tokyo Cabinet)**是一款高效的开源数据库库,它源于QDBM并在此基础上进行了优化和提升。作为QDBM的升级版本,东京内阁在性能方面有着显著的改进,尤其在处理大量数据时,其速度表现更加出色,无需依赖...

    no关系型数据库,nosql

    Tokyo Cabinet具有高性能和多种存储引擎选择,Tokyo Tyrant则通过热备份、update log和异步复制提高可用性,并允许通过Lua脚本进行原子性操作。 3. MongoDB:MongoDB是一个面向文档的数据库,支持无固定规格的JSON...

    BNRPersistence:一组使用Tokyo Cabinet来保存和加载Objective-C对象的类

    BNR持久性亚伦·希勒加斯(Aaron Hillegass) 2010年7月9日经过几年的抱怨,Core Data可能会变得更好,我认为我应该编写一个...安装首先,您需要下载Tokyo Cabinet: : (有一个sourceforge页面,但是最新的版本似乎

    tokyocabinet-1.4.45.tar.gz

    3. **分布式系统**:在分布式系统中,Tokyo Cabinet可以作为节点间的临时数据存储,提供快速的数据交换。 4. **数据分析**:对于需要快速读取和分析大量非结构化数据的项目,Tokyo Cabinet是一个理想的选择。 总之...

    ttserver

    Tokyo Tyrant 是 Tokyo Cabinet 的网络接口,它提供了一个简单易用的服务器端程序,允许远程客户端通过TCP/IP协议进行数据操作。"tokyocabinet-1.4.27.tar" 是 Tokyo Cabinet 的源代码压缩包,版本号为1.4.27。这个...

    TTserver1.1.4

    2. **轻量级**:Tokyo Tyrant设计小巧,占用资源少,适合部署在各种硬件环境中,包括嵌入式设备和服务器。 3. **高性能**:其性能优秀,读写速度极快,尤其在处理大量小数据时,表现突出。 4. **多种数据类型支持*...

    tokyocabinet-1.4.47.tar.gz

    Tokyo Cabinet虽然不再更新,但它有一个类似项目Tokyo Tyrant,提供了更高级的功能,如网络服务器接口。社区仍然活跃,开发者可以通过文档和论坛获取帮助。 总的来说,Tokyo Cabinet是一款强大的键值存储系统,凭借...

    Microlog Cabinet Manager 2003

    Microlog Cabinet Manager 2003 is a utility for opening and creating Microsoft CAB compressed files. CAB is a file compression format used by Microsoft to distribute many of their products, including ...

Global site tag (gtag.js) - Google Analytics