swift/bin
gholt a80c720af5 Object replication ssync (an rsync alternative)
For this commit, ssync is just a direct replacement for how
we use rsync. Assuming we switch over to ssync completely
someday and drop rsync, we will then be able to improve the
algorithms even further (removing local objects as we
successfully transfer each one rather than waiting for whole
partitions, using an index.db with hash-trees, etc., etc.)

For easier review, this commit can be thought of in distinct
parts:

1)  New global_conf_callback functionality for allowing
    services to perform setup code before workers, etc. are
    launched. (This is then used by ssync in the object
    server to create a cross-worker semaphore to restrict
    concurrent incoming replication.)

2)  A bit of shifting of items up from object server and
    replicator to diskfile or DEFAULT conf sections for
    better sharing of the same settings. conn_timeout,
    node_timeout, client_timeout, network_chunk_size,
    disk_chunk_size.

3)  Modifications to the object server and replicator to
    optionally use ssync in place of rsync. This is done in
    a generic enough way that switching to FutureSync should
    be easy someday.

4)  The biggest part, and (at least for now) completely
    optional part, are the new ssync_sender and
    ssync_receiver files. Nice and isolated for easier
    testing and visibility into test coverage, etc.

All the usual logging, statsd, recon, etc. instrumentation
is still there when using ssync, just as it is when using
rsync.

Beyond the essential error and exceptional condition
logging, I have not added any additional instrumentation at
this time. Unless there is something someone finds super
pressing to have added to the logging, I think such
additions would be better as separate change reviews.

FOR NOW, IT IS NOT RECOMMENDED TO USE SSYNC ON PRODUCTION
CLUSTERS. Some of us will be in a limited fashion to look
for any subtle issues, tuning, etc. but generally ssync is
an experimental feature. In its current implementation it is
probably going to be a bit slower than rsync, but if all
goes according to plan it will end up much faster.

There are no comparisions yet between ssync and rsync other
than some raw virtual machine testing I've done to show it
should compete well enough once we can put it in use in the
real world.

If you Tweet, Google+, or whatever, be sure to indicate it's
experimental. It'd be best to keep it out of deployment
guides, howtos, etc. until we all figure out if we like it,
find it to be stable, etc.

Change-Id: If003dcc6f4109e2d2a42f4873a0779110fff16d6
2013-11-07 16:52:01 +00:00
..
swift-account-audit Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-account-auditor Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-account-reaper Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-account-replicator Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-account-server Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-bench Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-bench-client Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-config Add missing copyright license headers 2013-08-07 17:50:32 -03:00
swift-container-auditor Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-container-replicator Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-container-server Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-container-sync Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-container-updater Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-dispersion-populate Merge "Faster swift-dispersion-populate" 2013-10-22 17:55:59 +00:00
swift-dispersion-report Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-drive-audit Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-form-signature Add missing copyright license headers 2013-08-07 17:50:32 -03:00
swift-get-nodes Revert "Refactor common/utils methods to common/ondisk" 2013-10-07 17:18:09 -04:00
swift-init Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-object-auditor Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-object-expirer Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-object-info Revert "Refactor common/utils methods to common/ondisk" 2013-10-07 17:18:09 -04:00
swift-object-replicator Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-object-server Object replication ssync (an rsync alternative) 2013-11-07 16:52:01 +00:00
swift-object-updater Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-oldies Add missing copyright license headers 2013-08-07 17:50:32 -03:00
swift-orphans Add missing copyright license headers 2013-08-07 17:50:32 -03:00
swift-proxy-server Change OpenStack LLC to Foundation 2013-09-20 01:02:31 +08:00
swift-recon Add missing copyright license headers 2013-08-07 17:50:32 -03:00
swift-recon-cron Add missing copyright license headers 2013-08-07 17:50:32 -03:00
swift-ring-builder Merge "Change OpenStack LLC to Foundation" 2013-10-07 16:09:37 +00:00
swift-temp-url Add missing copyright license headers 2013-08-07 17:50:32 -03:00