beansdb icon indicating copy to clipboard operation
beansdb copied to clipboard

从0.6升级到0.7.1.4 有些数据丢失

Open LukeGoooo opened this issue 7 years ago • 10 comments

数据量有1000G,有的data超过了4000M,没有错误日志 stats信息

STAT pid 30217 STAT uptime 5132 STAT time 1496715386 STAT version 0.7.1.4 STAT pointer_size 64 STAT rusage_user 35.517600 STAT rusage_system 55.968491 STAT rusage_maxrss 858868 STAT item_buf_size 4096 STAT curr_connections 1633 STAT total_connections 106287 STAT connection_structures 1645 STAT cmd_get 136505 STAT cmd_set 2753 STAT cmd_delete 0 STAT slow_cmd 80 STAT get_hits 24410 STAT get_misses 112096 STAT curr_items 2710 STAT total_items 11249364 STAT avail_space 800291680256 STAT total_space 1072578422016 STAT bytes_read 460723098 STAT bytes_written 3962555515 STAT threads 16

LukeGoooo avatar Jun 06 '17 02:06 LukeGoooo

@LukeGoooo

  1. 麻烦先把数据备份一下。
  2. 把 GC 关掉以免丢失更多数据
  3. data 文件超过 4000M 这个知道原因吗?如果调查到一些原因麻烦贴一下。

我们会研究这个问题,豆瓣内部已经启用了新版本的 beansdb,不过因为文档周边工具不完善的原因所以暂时还没开源出来,这个版本的 beansdb 已经在豆瓣弃用,所以我们不能直接在线上复现问题。

ariesdevil avatar Jun 06 '17 02:06 ariesdevil

你是自己研究还是线上在用?

ariesdevil avatar Jun 06 '17 02:06 ariesdevil

线上升级的,但是我还原回0.6版本 进程会无故关掉

LukeGoooo avatar Jun 06 '17 02:06 LukeGoooo

新上传的文件是可以的 之前的数据会丢失

LukeGoooo avatar Jun 06 '17 02:06 LukeGoooo

@LukeGoooo 0.6 到 0.7 有修改 HTree 结构,需要删掉 hint 和 htree。

麻烦回答下下面几个问题:

  1. 你升级的时候是怎么操作的?
  2. 你说的数据丢失具体是什么意思?

zzl0 avatar Jun 06 '17 02:06 zzl0

1:升级用0.7.1.4的文件直接替换掉0.6然后重启

2:文件丢失,是请求数据有些数据是可以get得到,有些get不到(之前存在的)

LukeGoooo avatar Jun 06 '17 02:06 LukeGoooo

@LukeGoooo 如 @zzl0 所说,

如果这期间没有做过GC, 删除 data 文件以外各种索引文件后重启,数据有可能找回来

删索引后可以选择用 0.6 重启,0.7 理论上应该也可以。 0.7 在豆瓣稳定性运行的时间比较短,后来就重写了,0.6存在一些 bug 但还多少不太严重。

如果允许,重启后先不要接受新数据, 观察一下数据是否正确。

“还原回0.6版本 进程会无故关掉” 可能是因为格式不兼容。

没有log 是因为没有加 zlog 依赖?

如果有多个点,之间有用同步脚本同步,先停下同步。

youngsofun avatar Jun 06 '17 03:06 youngsofun

@LukeGoooo 请问你们是哪个公司?以后做大的操作(比如升级版本)之前可以和 Douban 讨论一下,0.7 版本至少运行了半年时间,比较稳定。如 @youngsofun 所说随后豆瓣用 Golang 重写了 BeansDB,优化了内存以及可维护性等,如果有兴趣也可以和 @youngsofun @ariesdevil 交流下。

zzl0 avatar Jun 06 '17 03:06 zzl0

好的 刚好我也会golang 有交流方式吗 thx

LukeGoooo avatar Jun 06 '17 03:06 LukeGoooo

@LukeGoooo go 版本已经很稳定,希望今年能开出去,但希望把工具链完善一下,所以并不会很快开源,至少目前还没有排进日程。

我邮件 [email protected]

youngsofun avatar Jun 06 '17 04:06 youngsofun