Page MenuHomePhabricator

Implement a replication strategy for Swift
Closed, ResolvedPublic

Description

Do we use affinity features with a global cluster or stick with swiftrepl? The later is too slow to be real-time...I guess SyncFileBackend could be used to (with a --locking flag added).

Current solution planned is:
a) Use multiwrite backend to both DCs (eqiad sync, codfw post-send and async)
b) Use local read affinity
c) Run swift-repl to repair any lost writes in the background (due to failures)

Event Timeline

aaron claimed this task.
aaron raised the priority of this task from to Medium.
aaron updated the task description. (Show Details)
aaron added subscribers: Krenair, PleaseStand, gerritbot and 3 others.

no affinity features at the moment, we run swiftrepl in an ad-hoc fashion, I looked into container replication and setup an initial trial but got stuck with some containers not replicating and never had a chance to look into why

on the context of swift and multi region and what that entails, see also https://bugs.launchpad.net/swift/+bug/1462527

aaron renamed this task from Figure out a replication strategy for Swift to Implement a replication strategy for Swift.Jan 20 2016, 11:59 PM
aaron updated the task description. (Show Details)

Change 266609 had a related patch set uploaded (by Aaron Schulz):
Enable deferred writes to codfw swift cluster

https://gerrit.wikimedia.org/r/266609

Change 266609 merged by jenkins-bot:
Enable deferred writes to codfw swift cluster

https://gerrit.wikimedia.org/r/266609

Change 272611 had a related patch set uploaded (by Filippo Giunchedi):
Enable async secondary swift writes for non-"big" wikis

https://gerrit.wikimedia.org/r/272611

Change 272611 merged by jenkins-bot:
Enable async secondary swift writes for non-"big" wikis

https://gerrit.wikimedia.org/r/272611

Change 273561 had a related patch set uploaded (by Aaron Schulz):
Allow FSFile objects for src in FileBackend::do*Operations

https://gerrit.wikimedia.org/r/273561

tentative schedule to enable async replication on the remaining wikis (modulo resolution/writeup of https://phabricator.wikimedia.org/T128096)

Change 268080 had a related patch set uploaded (by Filippo Giunchedi):
swift: switch to codfw imagescalers

https://gerrit.wikimedia.org/r/268080

Change 273561 merged by jenkins-bot:
Allow FSFile objects for src in FileBackend::do*Operations

https://gerrit.wikimedia.org/r/273561

Change 274796 had a related patch set uploaded (by Aaron Schulz):
[WIP] Make UploadBase use TempFSFile to wrap the temporary file

https://gerrit.wikimedia.org/r/274796

Change 274796 merged by jenkins-bot:
Make UploadBase use TempFSFile to wrap the temporary file

https://gerrit.wikimedia.org/r/274796

aaron raised the priority of this task from Medium to High.Mar 17 2016, 10:57 PM

Change 268080 merged by Filippo Giunchedi:
swift: switch to codfw imagescalers

https://gerrit.wikimedia.org/r/268080