【问题标题】:Apache Ignite 2.9.0 Recover from lost partitionsApache Ignite 2.9.0 从丢失的分区中恢复
【发布时间】:2021-04-16 12:49:54
【问题描述】:

我们已经使用 Azure 中的 kubernetes 和 4 个节点设置了一个具有本机持久性的 apache ignite 2.9.0 集群。为了更新一些缓存配置,我们重新启动了所有的 ignite 节点。重启后,在一个特定的表上运行任何 sql 查询 - 导致 2 个 ignite 节点重启,之后我们看到丢失分区异常。

如果我们尝试重新启动所有节点以从丢失的分区中恢复,那么它很好,直到我们对该表运行任何 sql 查询,之后 2 个节点重新启动并且我们得到丢失分区异常。 无论如何我们可以从丢失的分区中恢复并克服这个问题吗?我们还想了解它发生的原因?我们找不到与此相关的任何日志。

【问题讨论】:

    标签: azure kubernetes ignite partition


    【解决方案1】:

    当所有分区所有者离开网格时,该分区就被认为是丢失了,您可能会认为这是一个特殊的内部标记。根据 PartitionLossPolicy,Ignite 可能会忽略这一事实并允许缓存操作或禁止它们以保护数据一致性。

    如果您使用本机持久性,那么很可能没有物理数据丢失,您只需告诉 Ignite 您已了解情况,现在所有数据都已到位并且可以安全地移除“丢失”标记从分区。

    我认为最简单的处理方法是在 pod 中使用控制脚本:

    control.sh --cache reset_lost_partitions cacheName1,cacheName2,...
    

    更多详情: https://ignite.apache.org/docs/latest/configuring-caches/partition-loss-policy#handling-partition-loss

    【讨论】:

    • 感谢您的回复!我忘了提到我之前和现在都试过了,但我仍然遇到了丢失分区异常
    猜你喜欢
    • 2016-06-15
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多