swift/swift/obj
Tim Burke 2a6dfae2f3 Allow direct and internal clients to use the replication network
A new header `X-Backend-Use-Replication-Network` is added; if true, use
the replication network instead of the client-data-path network.

Several background daemons are updated to use the replication network:

  * account-reaper
  * container-reconciler
  * container-sharder
  * container-sync
  * object-expirer

Note that if container-sync is being used to sync data within the same
cluster, the replication network will only be used when communicating
with the "source" container; the "destination" traffic will continue to
use the configured realm endpoint.

The direct and internal client APIs still default to using the
client-data-path network; this maintains backwards compatibility for
external tools written against them.

UpgradeImpact
=============

Until recently, servers configured with

  replication_server = true

would only handle REPLICATE (and, in the case of object servers, SSYNC)
requests, and would respond 405 Method Not Allowed to other requests.
When upgrading from Swift 2.25.0 or earlier, remove the config option
and restart services prior to upgrade to avoid a flood of background
daemon errors in logs.

Note that some background daemons find work by querying Swift rather
than walking local drives that should be available on the replication
network:

  * container-reconciler
  * object-expirer

Previosuly these may have been configured without access to the
replication network; ensure they have access before upgrading.

Closes-Bug: #1883302
Related-Bug: #1446873
Related-Change: Ica2b41a52d11cb10c94fa8ad780a201318c4fc87
Change-Id: Ieef534bf5d5fb53602e875b51c15ef565882fbff
2020-08-04 21:22:04 +00:00
..
__init__.py Initial commit of Swift code 2010-07-12 17:03:45 -05:00
auditor.py Change object_audit_location_generator() to yield for a single policy. 2018-03-22 03:02:35 +00:00
diskfile.py obj: _finalize_durable may succeed even when data file is missing 2020-04-24 15:39:37 -07:00
expirer.py Allow direct and internal clients to use the replication network 2020-08-04 21:22:04 +00:00
mem_diskfile.py py3: port proxy/test_mem_server.py 2019-05-08 17:47:40 -07:00
mem_server.py Per-policy DiskFile classes 2015-04-14 00:52:16 -07:00
reconstructor.py Optimize obj replicator/reconstructor healthchecks 2020-04-01 08:03:32 -04:00
replicator.py Stop syncing empty suffixes list 2020-07-16 13:13:04 -07:00
server.py New Object Versioning mode 2020-01-24 17:39:56 -08:00
ssync_receiver.py Fix SSYNC/missing_check is blocking 2020-03-28 18:37:52 -04:00
ssync_sender.py py3: port ssync 2019-06-05 13:26:18 -07:00
updater.py Merge "object-updater: Ignore ENOENT when trying to unlink stale pending files" 2020-05-17 05:08:59 +00:00