`
lionlx
  • 浏览: 285857 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)ttserver删除记录的问题

 
阅读更多
转自:http://bbs.linuxtone.org/home.php?mod=space&uid=17551&do=blog&id=3163
用ttserver,存放的数据量太大了,使用的是hash的存储模式,启动参数中对数据文件做过压缩,做过分片,但是目前的database.tch目录下的文件差不多140G了,最近一段时间一直想将该数据文件的大小给减小一些,但一直未能成功。

原本我以为通过删除ttserver中的记录,把对应的key和value删掉就可以把对应的database.tch的大小给降下来,于是我使用的是Tokyo tyrant中的管理命令 tcrmgr ,使用tcrmgr out -port xxxxx localhost key 这条命令,里边的key是筛选出来的一批key,执行完这个命令以后,通过tcrmgr inform -port xxxxx localhost 发现里边的record number确实减少了,但file size的值却没有任何变化,database.tch的大小也没减小,通过晚上搜寻资料发现tcrmgr out这个命令只是完成了一次逻辑上的删除,并没有实际对硬盘上的database.tch内的记录进行物理删除。

我本以为可能是由于在tcrmgr out的操作在内存中完成,没有写回到硬盘中,于是又执行了一次tcrmgr sync -port xxxxx localhost   但是完成以后,数据文件的大小依然没改变,
发现还是需要用tcrmgr optimize -port xxxx localhost来进行操作。
由于out参数是一种标记删除,当你在使用inform进行查询的时候,确实发现数据记录数变小了,但并没有同步清除掉硬盘中database.tch中的数据记录,这就导致了数据文件的大小不发生改变。

由于最开始删除的记录数比较少,当时测试optimize的时候,没有明显的效果,后来删除了将近1000万条记录,再次执行optimize的时候,发现数据文件相比原来减少了40G。
需要注意的是,在执行optimize优化数据文件时,ttserver的库是处于锁定状态的,即无法读写,因此如果你需要执行这条命令时,需要做好准备工作,特别是对线上服务器进行操作时,我在这次优化的过程中使用的方法是,在六台ttserver(从服务器)前加一个代理,然后逐台进行优化,这样不会影响服务。在ttserver(主服务器)方面,做双机互备,然后单台进行优化,此过程的缺点就是耗时过长。


./tcrmgr inform -port 5100 -st 10.10.10.14
starttime=`date "+%s"`;for((i=1;i<1001;i++)); do curl -X PUT http://10.10.10.14:5100/key_$i -d $i; done;endtime=`date "+%s"`;echo $(($endtime-$starttime));
starttime=`date "+%s"`;for((i=1;i<1001;i++)); do curl http://10.10.10.14:5100/key_$i; done;endtime=`date "+%s"`;echo $(($endtime-$starttime));
分享到:
评论

相关推荐

    ttserver

    它支持BDB(Berkeley DB)和HDB(Hash DB)两种数据库类型,广泛应用于日志记录、配置管理、缓存服务等多个领域。 Tokyo Tyrant 是 Tokyo Cabinet 的网络接口,它提供了一个简单易用的服务器端程序,允许远程客户端...

    TTSERVER V2.1.1

    7. **日志记录与审计**:为方便故障排查和审计,软件可能记录所有的远程操作,以便追踪问题源头或检查非法活动。 8. **多语言支持**:考虑到全球用户的需求,TTServer可能提供多种语言界面,包括但不限于中文、英文...

    memcached和TTserver的使用

    【标题】: "深入理解memcached与TTServer的使用" 【描述】: "TTServer作为一款成熟的NoSQL存储系统,已经在各种应用场景中广泛使用。它以其出色的性能、复制功能、小巧的代码库以及对key-value数据存储的良好支持,...

    ttserver-lib包

    tokyocabinet-1.4.45.tar.gz tokyotyrant-1.1.41.tar.gz tokyotyrant-0.11.jar ch-tokyocabinet-java-1.24.0.jar

    TTserver1.1.4

    "TTserver1.1.4" 是一个特定版本的服务器软件,可能是一个数据库服务或某种特定的服务器平台。从给出的信息来看,它可能是Tokyo Tyrant的一个特定版本,因为压缩包中的文件名为"tokyotyrant-1.1.41"。Tokyo Tyrant是...

    ttserver被协助端.rar

    启动ttserver,通常需要进行一系列的配置,如设置服务器端口、配置日志记录、设定安全策略等。这通常通过修改配置文件或使用命令行参数来实现。运行ttserver.exe后,服务会监听指定端口,等待连接请求。 5. 应用...

    ttserver.exe

    主要用于远程协助使用,比QQ远程协助速度更快,更好用一些。 被协助者请运行“ttserver.exe”运行软件之后,随便输入一个验证码,然后点击‘被协助’,并将验证码告知协助方,协助方运行“ttclient.exe”

    基于C++的蘑菇街企业办公即时通信软件TTServer设计源码

    本项目为蘑菇街自主研发的企业级办公即时通信软件TTServer的设计源码,采用C++作为主要开发语言,并涉及Java、C、Shell等多种编程语言。项目包含218个文件,具体为81个Java文件、54个C++源文件、52个头文件、6个...

    TTServer-Docs:蘑菇街TeamTalk TTServer文档

    TTServer-Docs是该软件的官方文档,包含了TTServer的详细配置、使用方法、API接口和常见问题解答等重要信息。 文档结构通常分为多个部分,包括但不限于以下几个方面: 1. **安装指南**:这部分内容会介绍如何在...

    最小的远程控制软件ttvnc2.2

    例如,技术支持人员可以通过ttvnc2.2快速访问并解决客户电脑上的问题,无需亲临现场;远程办公的员工可以如同坐在公司办公一样,便捷地访问公司内部资源,提高工作效率。 总的来说,ttvnc2.2以其小巧的体积、强大的...

    TTServer:蘑菇街一款既是做开源又是做产品的企业办公即时通信软件

    ###项目背景 随着蘑菇街由导购向电商转型,蘑菇街自己的IM也应运而生,IM起初只是用于商家和 买家之间沟通的工具。后面我们问自己,既然已经有了用于客服的IM,为什么不自己 做一个IM,用于公司内部的沟通工具,来...

    关于使用key/value数据库redis和TTSERVER的心得体会

    至于TTSERVER,虽然在描述中没有提及具体细节,通常TTSERVER可能是指文本转语音(Text To Speech,TTS)服务器,它与Redis不同,专注于音频处理和合成。在实际应用中,Redis可能作为存储和缓存TTS请求与结果的数据库...

    远程协助软件-TTVNC

    主要用于远程协助使用,比QQ远程协助速度更快,更好用一些。...若被协助方的‘被协助’按钮为灰色,请去掉后面‘自动连接’的勾,然后退出软件重新运行 ttserver.exe 输入验证码并点击被协助即可。

    远程控制软件被控端下载

    4. **安全性考虑**:远程控制软件的使用必须重视安全问题。被控端可能会暴露于网络安全风险中,例如未授权访问、数据泄露等。因此,使用强大的加密技术(如SSL/TLS)进行数据传输、设置强密码、使用双因素认证等都是...

    远程工具ttvnc

    这款软件的核心特点在于它的便捷性和易用性,使得用户无需复杂的设置,只需输入相同的验证码,即可实现远程帮助他人解决电脑问题。 在远程控制领域,ttvnc提供了基础但至关重要的功能。首先,它允许用户通过互联网...

    远程控制软件 ttvnc软件

    - **远程协助**:当朋友或家人遇到电脑问题时,你可以通过ttvnc远程登录他们的电脑,直接解决技术难题。 - **远程办公**:员工在家办公时,公司IT部门可以通过ttvnc进行设备管理和软件更新。 - **系统管理**:IT...

    https-github.com-mogutt-TTServer

    TeamTalk是一套开源的企业办公即时通讯软件,作为整套系统的组成部分之一,TTServer为TeamTalk 客户端提供用户登录,消息转发及存储等基础服务。 TTServer主要包含了以下几种服务器: LoginServer (C++): 登录服务器...

    ftpserver小工具

    在windows上快速搭建ftp的小工具

Global site tag (gtag.js) - Google Analytics