2019独角兽企业重金招聘Python工程师标准>>>

翻译Swift官方文档 Account Reaper介绍,Swift中acconut的删除使用了那些策略和方法,看了这篇文档相信会有帮助。

The Account Reaper 账户收割器

账户收割器在后台移除被删除账户的数据。

一个账户被被标记为删除通过一个reseller发出的DELETE请求在账户的存储URL。这个简单的将值DELETE放到表account_stat中的状态栏在账户数据库中(和副本),指明这个账户的数据应该在稍后被删除。

通常下不会设置保留时间和复原。假设reseller实现了这些特性,只要调用DELETE在账户上一次就真的会得到账户的数据被移除。然而,为了保护Swift集群账户从一个不正常的或者是错误的删除请求。你可以设置delay_reaping值在[account-reaper]部分在account-erver.conf去延迟真是的数据删除。在这时,这没有时间的工具删除一个账户;必须直接更新账户数据库副本,设置状态栏位空字符串,然后更新put_timestamp 大于delete_timestamp。(在TODO列表正在写一个工具去执行这项任务,较好的通过一个ReST 调用)。

账户收割器运行在每一个账户服务器然后不定期的扫描服务器内被标记为删除的的账户数据库。它只会触发账户,服务器是主要的节点,为了让账户服务器不是所有的都尝试去做同样的工作在同一个时刻。使用多个服务器删除一个账户可能提升删除的速度。但是需要协调他们不去重复劳动。数据删除时的速度并没有过多的担心,因为大账户没有被频繁的删除。

账号的删除过程是相等直接的。账户中的每一个容器,每一个对象被删除然后容器被删除。所有删除请求失败不会停止整个的删除过程,但是会导正这个那个过程最终失败(例如,如果一个对象删除超时,容器将不会被删除,因此账户也不会被删除)。整个处理过程既是失败也要继续执行,以便于它不会因为麻烦的问题而打断恢复集群空间。账户收割器将持续的尝试删除账户直到最终变成空,数据库在db_replicator中收回,最终移除数据库文件。

History

起初,一个简单的完全通过外部调用来删除账户的方法被考虑,因为它不需要改变这个系统。所有的数据将会被简单的删除在同一种方式,在真实的用户,通过公用的ReST的API,然而,负面的是它将使用代理资源和记录所有的信息,尽管可能不需要那么做。因此,它需要一个专用的服务器或者是两台,只是为了发起删除的请求。

一个完全自下而上的途径也被考虑,对象和容器的服务器将不定期的扫描数据,它们掌握和检查是否账户已经被删除了,如果是这样的话,就移除数据。好处是对回收的速度没有影响在代理和日志,但是坏处将近100%的扫描导致没有目的的活动造成大量的I/O负载。

一个容器服务器中心途径也被考虑过,账户务器可以标记所有的容器来为删除,然后容器服务器将删除对象在每一个容器和它们自己。这对于有大量账户的容器很有益处,但是有负面的是由相当大的负载峰值。这个过程可能将会慢下来去缓和这个负载峰值,但是快速回收的益处将消失然后会留下更复杂的过程。因此,扫描所有被标记为删除的容器当大多数的不会被视为是浪费的。 db_replicator可以做这份工作同时执行它的复制扫描,但是它将不得不产生和记录删除过程,啃起来不必要的复复杂性。

最后,账户服务器中心法看起来是最佳的。

转载于:https://my.oschina.net/zhouxingxing/blog/70033

OpenStack Swift Account Reaper相关推荐

  1. Openstack Swift 原理、架构与 API 介绍

    OpenStack Swift 开源项目提供了弹性可伸缩.高可用的分布式对象存储服务,适合存储大规模非结构化数据.本文将深入介绍 Swift 的基本设计原理.对称式的系统架构和 RESTful API ...

  2. OpenStack Swift源码安装

    1.安装拓扑 2.准备环境(所有节点) 2.1 由于本次安装选择的Ubuntu Server 12.04,需要安装以下必需软件包: apt-get install build-essential gi ...

  3. 理解 OpenStack Swift (2):架构、原理及功能 [Architecture, Implementation and Features]...

    本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...

  4. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 四

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  5. 【转载】OpenStack Swift学习笔记

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:崔炳华      原文地址:http://blog.csdn.net/i_ch ...

  6. 理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]

    本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...

  7. OpenStack Swift Architecture

    2019独角兽企业重金招聘Python工程师标准>>> Introducing Swift These days, when data needs to be instantly a ...

  8. OpenStack Swift学习笔记

    1       概述 OpenStack Object Storage(Swift)是OpenStack开源云计算项目的子项目之一.Swift的目的是使用普通硬件来构建冗余的.可扩展的分布式对象存储集 ...

  9. OpenStack Swift集群部署流程与简单使用

    之前介绍了<OpenStack Swift All In One安装部署流程与简单使用>,那么接下来就说一说Swift集群部署吧. 1. 简介 本文档详细描述了使用两台PC部署一个小型Sw ...

最新文章

  1. 全球芯片行业现状分析:大家都在依赖美国 未来如何破局?
  2. boost::callable_traits添加成员指针的测试程序
  3. java 队列和堆栈_Java中的堆栈和队列
  4. todolist作业效果
  5. 面向对象,面向服务,面向组件三种编程模式有什么区别
  6. alert 返回页面 刷新_页面生命周期:DOMContentLoaded,load,beforeunload,unload
  7. 【PHP】安装wampserver3.1.19后apache无法启动问题
  8. [蓝桥杯]试题 基础练习 龟兔赛跑预测
  9. Servlet教程第5讲笔记
  10. Java学习笔记(2)----散列集/线性表/队列/集合/图(Set,List,Queue,Collection,Map)
  11. 指纹模式识别算法源码及其测试和应用方法
  12. android 代码混淆原理,Android 代码混淆
  13. html语言文档格式,HTML文档基本格式介绍,HTML基本标记介绍?
  14. 美通社企业新闻汇总 | 2019.1.3
  15. Python Flask Web 框架入门
  16. buid和version之间的区别
  17. 抖音企业号seo排名优化账号矩阵系统
  18. oracle修改clob值,oracle 修改 clob字段,查询clob字段
  19. Android Studio的报错提示:SSL peer shut down incorrectly
  20. 杭电考研计算机多少分及格,2020考研:杭电计算机好考吗?分数线是多少?

热门文章

  1. 【微信小程序】 解决“enablePullDownRefresh“: true下拉刷新还是不起作用
  2. java 泛型转换_Java泛型—类型转换
  3. Django学习(三)——MVC架构
  4. 金蝶K/3插件 - 单个单据显示
  5. Spring整合Schedule定时任务详解
  6. “听相声的可以出去了,我们是来卖货的。”
  7. iOS中的文件管理操作
  8. 目录-Aspen plus教程
  9. 奇点来临,GPT-4发布!ChatGPT大升级!太太太太强了,见证历史!
  10. Could not autowire. No beans of 'Mapper' type found.