swift/etc
Samuel Merritt 7f636a5572 Allow smaller segments in static large objects
The addition of range support for SLO segments (commit 25d5e68)
required the range size to be at least the SLO minimum segment size
(default 1 MiB). However, if you're doing something like assembling a
video of short clips out of a larger one, then you might not need a
full 1 MiB.

The reason for the 1 MiB restriction was to protect Swift from
resource overconsumption. It takes CPU, RAM, and internal bandwidth to
connect to an object server, so it's much cheaper to serve a 10 GiB
SLO if it has 10 MiB segments than if it has 10 B segments.

Instead of a strict limit, now we apply ratelimiting to small
segments. The threshold for "small" is configurable and defaults to 1
MiB. SLO segments may now be as small as 1 byte.

If a client makes SLOs as before, it'll still be able to download the
objects as fast as Swift can serve them. However, a SLO with a lot of
small ranges or segments will be slowed down to avoid resource
overconsumption. This is similar to how DLOs work, except that DLOs
ratelimit *every* segment, not just small ones.

UpgradeImpact

For operators: if your cluster has enabled ratelimiting for SLO, you
will want to set rate_limit_under_size to a large number prior to
upgrade. This will preserve your existing behavior of ratelimiting all
SLO segments. 5368709123 is a good value, as that's 1 greater than the
default max object size. Alternately, hold down the 9 key until you
get bored.

If your cluster has not enabled ratelimiting for SLO (the default), no
action is needed.

Change-Id: Id1ff7742308ed816038a5c44ec548afa26612b95
2015-12-09 10:09:13 -08:00
..
account-server.conf-sample Fix missing *-replicator conf sections in deployment guide 2015-10-23 14:58:38 +01:00
container-reconciler.conf-sample Swift configuration parameter audit 2014-08-06 11:12:14 +10:00
container-server.conf-sample Fix missing *-replicator conf sections in deployment guide 2015-10-23 14:58:38 +01:00
container-sync-realms.conf-sample Fix Container Sync example 2015-07-08 16:37:31 -07:00
dispersion.conf-sample Support keystone v3 domains in swift-dispersion 2015-07-24 13:40:24 -05:00
drive-audit.conf-sample Missing log_name option added 2015-11-15 11:26:06 +01:00
internal-client.conf-sample Update container sync to use internal client 2015-04-14 00:52:17 -07:00
memcache.conf-sample Make more memcache options configurable 2015-01-14 11:16:32 -05:00
mime.types-sample PEP 8 compliance and small modification to mime.types file 2010-11-23 19:26:02 -06:00
object-expirer.conf-sample Fix some spelling typo in comments 2015-08-07 22:21:37 +08:00
object-server.conf-sample Allows to configure the rsync modules where the replicators will send data 2015-09-07 08:00:18 +02:00
proxy-server.conf-sample Allow smaller segments in static large objects 2015-12-09 10:09:13 -08:00
rsyncd.conf-sample Allows to configure the rsync modules where the replicators will send data 2015-09-07 08:00:18 +02:00
swift-rsyslog.conf-sample Add sample rsyslog.conf. 2013-06-25 10:24:26 +08:00
swift.conf-sample Add extra_header_count to document and config. 2015-08-05 22:09:40 +08:00