全球旧事资料 分类
置作为该项的最新版本。复制器将会检测到该墓碑文件并确保将它从整个系统中移除。

更新服务(Updater):当对象由于高负载或者系统故障等原因而无法立即更新时,任务将会被序列化到在本地文件系统中进行排队,以便服务恢复后进行异步更新;例如成功创建对象后容器服务器没有及时更新对象列表,这个时候容器的更新操作就会进入排队中,更新服务会在系统恢复正常后扫描队列并进行相应的更新处理。
第8页共14页
fOpe
StackSwift学习笔记

审计服务(Auditor):在本地服务器上会反复地爬取来检查对象,容器和账户的完整性,如果发现比特级的错误,文件将被隔离,并复制其他的副本以覆盖本地损坏的副本;其他类型的错误(比如在任何一个容器服务器中都找不到所需的对象列表)会被记录到日志中。

账户清理服务(Accou
tReaper):移除被标记为删除的账户,删除其所包含的所有容器和对象。删除账号的过程是相当直接的。对于每个账号中的容器,每个对象先被删除然后容器被删除。任何失败的删除请求将不会阻止整个过程,但是将会导致整个过程最终失败(例如,如果一个对象的删除超时,容器将不能被删除,因此账号也不能被删除)。整个处理过程即使遭遇失败也继续执行,这样它不会因为一个麻烦的问题而中止恢复集群空间。账号收割器将会继续不断地尝试删除账号直到它最终变为空,此时数据库在db_replicator中回收处理,最终移除这个数据库文件。
第9页共14页
fOpe
StackSwift学习笔记
图4Swift系统架构Swift支持的所有操作可以总结为下表:表1SwiftRESTfulAPI总结
第10页共14页
fOpe
StackSwift学习笔记
资源类型
账户
URL
accou
t
GET
获取容器列表
PUT

POST

DELETE

HEAD
获取账户元数据
容器
accou
tco
tai
er
获取对象列表
创建容器
更新容器元数据
删除容器
获取容器元数据
对象
accou
tco
tai
erobject
获取对象内容和元数据
创建、更新或拷贝对象
更新对象元数据
删除对象
获取对象元数据
43
Ri
g的数据结构Ri
g的数据结构由三个顶层域构成,其中:ListofDevices,表示集群中设备的列表,在Ri
g类内部被称为devs;Partitio
Assig
me
tList,用于存放每个replica与device间映射关系,在Ri
g类内部被称为_replica2part2dev_id;Partitio
ShiftValue,表示计算数据hash的移位量,在Ri
g类内部称为_part_shift。使用pytho
读取etcswiftobjectri
ggz存放的数据,可以获得以
devs、part_shift、replica2part2dev_id为key的dict类数据。44Swift存储结构在StorageNode上运行着Li
ux系r
好听全球资料 返回顶部