swift/doc/source
Darrell Bishop 1107f24179 Seamlessly reload servers with SIGUSR1
Swift servers can now be seamlessly reloaded by sending them a SIGUSR1
(instead of a SIGHUP).  The server forks off a synchronized child to
wait to close the old listen socket(s) until the new server has started
up and bound its listen socket(s).  The new server is exec'ed from the
old one so its PID doesn't change.  This makes Systemd happier, so a
ReloadExec= stanza can now be used.

The seamless part means that incoming connections will alwyas get
accepted either by the old server or the new one.  This eliminates
client-perceived "downtime" during server reloads, while allowing the
server to fully reload, re-reading configuration, becoming a fresh
Python interpreter instance, etc.  The SO_REUSEPORT socket option has
already been getting used, so nothing had to change there.

This patch also includes a non-invasive fix for a current eventlet bug;
see https://github.com/eventlet/eventlet/pull/590
That bug prevents a SIGHUP "reload" from properly servicing existing
requests before old worker processes close sockets and exit.  The
existing probtests missed this, but the new ones, in this patch, caught
it.

New probe tests cover both old SIGHUP "reload" behavior as well as the
new SIGUSR1 seamless reload behavior.

Change-Id: I3e5229d2fb04be67e53533ff65b0870038accbb7
2019-11-07 10:15:26 -08:00
..
_extra added .htaccess redirect file for docs 2017-07-27 14:06:51 -07:00
admin Fixing broken links 2019-08-16 11:45:52 +00:00
api Update api-ref location 2019-07-22 19:17:55 +02:00
images Add container sharding documentation 2018-05-18 18:48:22 +01:00
install Update auth_url in install docs 2019-07-11 15:03:16 +08:00
ops_runbook Replace Chinese punctuation with English punctuation 2018-01-25 05:33:04 +00:00
account.rst Alphabetized items under other sections in source documentation 2014-02-21 10:59:29 -07:00
admin_guide.rst Seamlessly reload servers with SIGUSR1 2019-11-07 10:15:26 -08:00
apache_deployment_guide.rst change default ports for servers 2016-04-29 14:47:38 -04:00
associated_projects.rst update 1space url in associated projects 2018-09-26 11:55:38 -04:00
conf.py PDF Documentation Build tox target 2019-10-01 15:47:11 -07:00
container.rst Add container sharding documentation 2018-05-18 18:48:22 +01:00
cors.rst docs: Fix then/than grammar 2019-10-17 09:52:50 -07:00
crossdomain.rst Fix misspellings in swift 2014-02-20 16:15:48 +08:00
db.rst Initial commit of Swift code 2010-07-12 17:03:45 -05:00
deployment_guide.rst Remove nobarrier option 2019-06-18 14:47:39 +01:00
development_auth.rst Merge "Fix incorrect kwarg in auth middleware example" 2015-12-18 22:04:47 +00:00
development_guidelines.rst Update doc building instructions in Development Guidelines 2018-07-06 07:40:52 +00:00
development_middleware.rst Fix the example webhook middleware 2018-06-20 10:49:30 +01:00
development_ondisk_backends.rst Fix six typos on swift documentation 2015-07-24 17:11:49 +09:00
development_saio.rst Remove nobarrier option 2019-06-18 14:47:39 +01:00
first_contribution_swift.rst Merge "Fixing broken links" 2019-08-16 12:21:57 +00:00
getting_started.rst py3: Update Getting Started docs 2019-08-29 16:55:27 -07:00
howto_installmultinode.rst Fix the incorrect reference links 2018-02-26 15:49:10 +08:00
index.rst PDF Documentation Build tox target 2019-10-01 15:47:11 -07:00
logs.rst Make log format for requests configurable 2019-05-02 17:43:25 -06:00
middleware.rst Fix a few Sphinx warnings 2019-06-03 22:01:13 -05:00
misc.rst Add Storage Policy Documentation 2014-06-19 10:18:34 -07:00
object.rst Clarify usage of replicator and reconstructor override options 2017-07-26 12:53:46 +01:00
overview_acl.rst PDF Documentation Build tox target 2019-10-01 15:47:11 -07:00
overview_architecture.rst Add container sharding documentation 2018-05-18 18:48:22 +01:00
overview_auth.rst Update auth_url in install docs 2019-07-11 15:03:16 +08:00
overview_backing_store.rst Fix indentation in overview_backin_store.rst 2018-05-02 16:24:27 +02:00
overview_container_sharding.rst Fix typo in sharding docs 2018-06-13 04:44:44 +00:00
overview_container_sync.rst Symlink implementation. 2017-12-13 21:26:12 +00:00
overview_encryption.rst Update api-ref location 2019-07-22 19:17:55 +02:00
overview_erasure_code.rst fix ec overview doc formatting 2019-08-14 18:00:50 +02:00
overview_expiring_objects.rst Enable to configure object-expirer in object-server.conf 2019-05-04 15:45:02 +00:00
overview_global_cluster.rst Write-affinity aware object deletion 2017-06-27 22:42:02 +12:00
overview_large_objects.rst Allow DLO manifest to be updated when using post-as-copy 2016-08-21 00:09:09 -05:00
overview_policies.rst Fixing target for cross-ref 'get_data_dir' 2019-02-13 17:47:50 +00:00
overview_reaper.rst Fixed inconsistent naming conventions 2016-07-07 21:40:21 +00:00
overview_replication.rst Fixed inconsistent naming conventions 2016-07-07 21:40:21 +00:00
overview_ring.rst PDF Documentation Build tox target 2019-10-01 15:47:11 -07:00
policies_saio.rst Mirror X-Trans-Id to X-Openstack-Request-Id 2016-10-30 20:02:39 -07:00
proxy.rst Alphabetized items under other sections in source documentation 2014-02-21 10:59:29 -07:00
ratelimit.rst Fixed inconsistent naming conventions 2016-07-07 21:40:21 +00:00
replication_network.rst Allows to configure the rsync modules where the replicators will send data 2015-09-07 08:00:18 +02:00
ring_background.rst Add "historical document" note to ring background docs 2018-11-02 17:21:19 +00:00
ring_partpower.rst Add support to increase object ring partition power 2017-06-15 15:08:48 -07:00
ring.rst Fix a few Sphinx warnings 2019-06-03 22:01:13 -05:00
s3_compat.rst Added S3 compatibility information to docs 2018-05-31 13:19:25 -07:00
test-cors.html move cors-test-page to literal include 2014-03-17 21:09:22 -07:00