程序核心或强制终止时 LevelDB 数据损坏?
LevelDB data broken when program core or force killed?
我们的游戏服务器使用 LevelDB 作为数据缓存。
最近,我们发现了一个严重的问题:
当服务器死锁时,我们kill是使用kill -9
,LevelDB中的一些数据被破坏了。
所以,我有两个疑问:
- 为什么数据坏了?我确定我的数据已写回 LevelDB?
- 有办法修复损坏的 LevelDB 吗?
关于第一个问题:
- 使用 WriteBatch-es(又名原子操作)
- 使用同步写入
阅读 this 文章(原子更新和同步写入部分)。好像你不做。
关于第二个问题:使用备份 :D 始终使用备份!
我们的游戏服务器使用 LevelDB 作为数据缓存。
最近,我们发现了一个严重的问题:
当服务器死锁时,我们kill是使用kill -9
,LevelDB中的一些数据被破坏了。
所以,我有两个疑问:
- 为什么数据坏了?我确定我的数据已写回 LevelDB?
- 有办法修复损坏的 LevelDB 吗?
关于第一个问题:
- 使用 WriteBatch-es(又名原子操作)
- 使用同步写入
阅读 this 文章(原子更新和同步写入部分)。好像你不做。
关于第二个问题:使用备份 :D 始终使用备份!