美文网首页OpenStack程序员
openstack trove备份删除策略

openstack trove备份删除策略

作者: Jon_Wong | 来源:发表于2018-04-24 14:45 被阅读5次

trove支持增量备份,上层应用封装的时候希望提供的功能更人性化,比如说我删除一个增量备份点15,trove能把依赖备份点15的增量备份点16、17保留,并且能把备份点15合并到16。需求的描述似乎只变更了一句话,但是底层的实现复杂度是指数级增加。有这几个问题:

  • 如果备份点15的数据合并到16,上层应用的封装是否能及时处理相应逻辑?
  • 备份点的数据合并比较耗时,上层应用是轮询状态,还是希望底层能够通知上层修改状态?
  • 由于比较耗时,万一出现异常,上层如何与底层状态同步,并保持一致?
  • 如果底层实现了数据合并,应该在何时合并,不与其他进程抢夺资源?
  • 如果有大量的合并任务,底层的进程如何并行,如何调度,如何控制进程的异常状态?

作为程序员,有时候需要估量一下产品经理的一句话会对系统带来多大的冲击,无论如何都需要充分的评估需求,不要在评审会上打马虎。

回到标题本身,trove的备份删除策略很简单,就是深度递归,删除所有依赖备份点15的children。

    @classmethod
    def delete(cls, context, backup_id):
        """
        update Backup table on deleted flag for given Backup
        :param cls:
        :param context: context containing the tenant id and token
        :param backup_id: Backup uuid
        :return:
        """

        # Recursively delete all children and grandchildren of this backup.
        query = DBBackup.query()
        query = query.filter_by(parent_id=backup_id, deleted=False)
        for child in query.all():
            cls.delete(context, child.id)

        def _delete_resources():
            backup = cls.get_by_id(context, backup_id)
            if backup.is_running:
                msg = _("Backup %s cannot be deleted because it is running.")
                raise exception.UnprocessableEntity(msg % backup_id)
            cls.verify_swift_auth_token(context)
            api.API(context).delete_backup(backup_id)

相关文章

  • openstack trove备份删除策略

    trove支持增量备份,上层应用封装的时候希望提供的功能更人性化,比如说我删除一个增量备份点15,trove能把依...

  • OpenStack的Trove组件详解

    一:简介 一、背景 对于公有云计算平台来说,只有计算、网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放...

  • openstack trove之RDS镜像制作

    自从Tesora被以色列公司收购后,原先tesora的CTO(trove的PTL)出走verizon,trove就...

  • openstack trove支持mysql5.7

    最近在做mysql5.7的产品化预研,碰到一点坑,在此说明一下。社区里面merge了一个patch(https:/...

  • 七,MySQL备份恢复

    1,备份策略设计 备份周期: 备份工具: 备份方式: 逻辑: 物理备份: 备份的策略 数据恢复 数据迁移 2,备份...

  • 2020-05-08开源备份恢复工具

    Freezer freezer是OpenStack社区中一个官方项目,旨在为OpenStack提供数据备份环境的解...

  • (Linux六)Linux数据备份与恢复

    (一)Linux备份策略(完全备份、增量备份和差异备份)详解 常用的备份策略有完全备份和增量备份,而增量备份有可细...

  • MySQL数据备份

    MySQL的两种备份策略 两种备份策略指的是逻辑备份:分别是全量备份和增量备份。除了逻辑备份外,我们还可以选择通过...

  • Error:Could not find org.jetbrai

    Error:Could not find org.jetbrains.trove4j:trove4j:201608...

  • Oracle数据库删除备份

    常规删除,删除过期备份: 直接删除所有归档日志文件,不管是不是已经备份数据库 自己删除备份,不管是不是超期 上面命...

网友评论

    本文标题:openstack trove备份删除策略

    本文链接:https://www.haomeiwen.com/subject/rhljlftx.html