【问题标题】:Cassandra: concurrent snapshot and clear snapshot?Cassandra:并发快照和清除快照?
【发布时间】:2019-09-13 11:13:50
【问题描述】:

我有一个每日 cron 作业 [1],它拍摄 cassandra 的快照,并将其上传到 s3 存储桶。之后,快照将被删除。

但是,还有一个管道作业可以拍摄 cassandra 的快照,我无法修改。该作业完成后不会删除快照,它依赖于另一个每日 cron 作业 [2] 来删除所有快照(基本上调用 nodetool clearsnapshot)。

我现在担心的是,每天的 cron 作业 [2] 可能会删除我的快照,因此我的 cron 作业 [1] 将无法将它们上传到 s3 存储桶中。如果我的另一份工作的nodetool snapshotnodetool clearsnapshot 同时发生,会发生什么?有没有办法要求在我的 cron 工作 [1] 之后进行每日的 cron 工作 [2]?

【问题讨论】:

    标签: cassandra cron


    【解决方案1】:

    nodetool snapshot 具有标记快照的功能。解决此问题的一种方法是与其他进程的所有者妥协,因此每次拍摄快照时,都会对其进行正确标记。

    您的备份过程应该类似于:

    nodetool snapshot -t backup
    ... upload to s3 ...
    nodetool clearsnapshot -t backup
    

    另一个管道可以有自己的标签:

    nodetool snapshot -t pipeline
    

    并且 crontab 应该包含管道的标签

    nodetool clearsnapshot -t pipeline
    

    如果没有机会更改管道以包含标记,您可以限制 cron 作业的执行,以便在执行 clearsnapshot 之前验证没有备份进程正在运行(例如查找 PID)。

    【讨论】:

    • 谢谢!标记方法似乎很干净!我会先试试。再次感谢您指出这一点!
    • 很高兴它对您有所帮助
    猜你喜欢
    • 2017-04-25
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2015-10-30
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多