如何避免缓慢的TokuMX启动?

时间:2015-03-15 14:53:07

标签: tokumx

我们运行TokuMX副本集(2个实例+仲裁器),大约120GB数据(在磁盘上)和大量索引。

自从升级到TokuMX 2.0后,我们注意到重启SECONDARY实例总是需要很长时间。在切换到正常模式之前,数据库一直停留在STARTUP2 1h +。当服务器处于STARTUP2时,它会以连续的CPU负载运行 - 我们假设它正在重建其索引,即使它之前已正常关闭。

虽然这很烦人,但PRIMARY可用时却没有造成停机。但是最近在扩展维护期间我们需要重启两个实例。 我们首先停止了SECONDARY,然后是PRIMARY,然后以相反的顺序启动它们。但是这导致了完整的1h +启动时间,因此副本集目前无法使用。

在没有等待这么长时间的情况下无法重启可能被击落的副本集,这是我们不愿意冒的风险。

有没有办法在启动时避免(可能的)完整索引重建?

2 个答案:

答案 0 :(得分:1)

@Chris - 我们现在正在重新审视您的机票。它可能在不经意间过早关闭。

@Benjamin:你可能希望在https://groups.google.com/forum/#!forum/tokumx-user上发布这个帖子,其中有更多的TokuMX用户和Tokutek支持团队会看到它。

答案 1 :(得分:1)

这是TokuMX中的一个错误,它导致它在启动时加载并迭代整个oplog,即使oplog已经被大部分(或完全)复制了。我在本地的TokuMX版本中定位并解决了这个问题。拉取请求位于:https://github.com/Tokutek/mongo/pull/1230

这使我的节点启动时间从几小时减少到<5秒。