0

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

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

虽然这很烦人,但由于 PRIMARY 可用,它不会导致停机。但最近在延长维护期间,我们需要重新启动两个实例。我们先停止 SECONDARY,然后是 PRIMARY,然后以相反的顺序启动它们。但这导致两者都占用了完整的 1 小时以上的启动时间,因此此时副本集不可用。

如果不等待这么长时间就无法重新启动可能已关闭的副本集,这是我们不愿承担的风险。

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

4

2 回答 2

1

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

@Benjamin:您可能想在https://groups.google.com/forum/#!forum/tokumx-user上发布此内容,更多 TokuMX 用户和 Tokutek 支持团队将会看到它。

于 2015-03-17T19:14:21.657 回答
1

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

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

于 2015-06-19T09:19:14.793 回答