Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jewel: rgw: multisite: fixes for meta sync across periods #15556

Merged
merged 14 commits into from Sep 12, 2017

Commits on Jun 6, 2017

  1. rgw: add empty_on_enoent flag to RGWSimpleRadosReadCR

    RGWSimpleRadosReadCR won't currently fail with ENOENT, but instead
    passes an empty object to handle_data(). add an empty_on_enoent flag to
    the constructor, defaulting to true, to make this behavior optional for
    callers that do want to fail on ENOENT
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit c5c95e7)
    cbodley committed Jun 6, 2017
    Copy the full SHA
    1c344e2 View commit details
    Browse the repository at this point in the history
  2. rgw: add == and != operators for period history cursor

    RGWMetaSyncCR was using operator== but it always returned true!
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 09c847f)
    cbodley committed Jun 6, 2017
    Copy the full SHA
    c19c720 View commit details
    Browse the repository at this point in the history
  3. rgw: fix marker comparison to detect end of mdlog period

    Fixes: http://tracker.ceph.com/issues/18639
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 7c23713)
    cbodley committed Jun 6, 2017
    Copy the full SHA
    67011e5 View commit details
    Browse the repository at this point in the history
  4. rgw: clean up RGWInitDataSyncStatusCoroutine

    RGWInitDataSyncStatusCoroutine operates on a given rgw_data_sync_status
    pointer, which saves us from having to read it back from rados
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 69be410)
    
    Conflicts:
    	src/rgw/rgw_data_sync.cc: rgw_pool, rgw_raw_obj
    cbodley committed Jun 6, 2017
    Copy the full SHA
    2373687 View commit details
    Browse the repository at this point in the history
  5. rgw: RGWBackoffControlCR only retries until success

    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit a898fb7)
    cbodley committed Jun 6, 2017
    Copy the full SHA
    013d349 View commit details
    Browse the repository at this point in the history
  6. rgw: store realm epoch with sync status markers

    sync status markers can't be compared between periods, so we need to
    record the current period's realm epoch with its markers. when the
    rgw_meta_sync_info.realm_epoch is more recent than the marker's
    realm_epoch, we must treat the marker as empty
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 574ff5f)
    
    Conflicts:
    	src/rgw/rgw_sync.cc: rgw_pool
    cbodley committed Jun 6, 2017
    Copy the full SHA
    ac9045a View commit details
    Browse the repository at this point in the history
  7. rgw: change metadata read_sync_status interface

    makes the same change to read_sync_status() in RGWMetaSyncStatusManager,
    needed to support multiple concurrent readers for the rest interface
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 0372df2)
    cbodley committed Jun 6, 2017
    Copy the full SHA
    0ab8e0a View commit details
    Browse the repository at this point in the history
  8. rgw: use RGWShardCollectCR for RGWReadSyncStatusCoroutine

    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit a4bf014)
    
    Conflicts:
    	src/rgw/rgw_sync.cc: rgw_pool, rgw_raw_obj
    cbodley committed Jun 6, 2017
    Copy the full SHA
    a9830db View commit details
    Browse the repository at this point in the history
  9. rgw: period commit uses sync status markers

    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit bb49e2f)
    
    Conflicts:
    	src/rgw/rgw_rados.cc: RGWPeriod::update removed
    cbodley committed Jun 6, 2017
    Copy the full SHA
    81ced03 View commit details
    Browse the repository at this point in the history
  10. rgw: require --yes-i-really-mean-it to promote zone with stale metadata

    if a zone is promoted to master before it has a chance to sync from the
    previous master zone, any metadata entries after its sync position will
    be lost
    
    print an error if 'period commit' is trying to promote a zone that is
    more than one period behind the current master, and only allow the
    commit to proceed if the --yes-i-really-mean-it flag is provided
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 721e3d6)
    cbodley committed Jun 6, 2017
    Copy the full SHA
    48d596d View commit details
    Browse the repository at this point in the history
  11. rgw: remove rgw_realm_reconfigure_delay

    when the master zone is changed, this config variable was increasing the
    window of time where the old master zone would continue to handle
    requests to modify metadata. those changes would not be reflected by the
    new metadata master zone, and would be lost to the cluster
    
    it was an attempt to optimize for the unlikely case of multiple period
    changes in a short period of time, but the logic in reload() handles this
    case correctly as is
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit f422d4f)
    cbodley committed Jun 6, 2017
    Copy the full SHA
    cb95722 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2017

  1. test/rgw: meta checkpoint compares realm epoch

    avoid marker comparisons between different periods
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 20df35a)
    cbodley committed Jun 7, 2017
    Copy the full SHA
    7c19e37 View commit details
    Browse the repository at this point in the history
  2. test/rgw: fixes for test_multi_period_incremental_sync()

    test was only creating objects in subsequent periods, which wasn't
    adding any entries to the mdlog. this wasn't correctly testing
    incremental metadata sync across periods
    
    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 2976fd3)
    cbodley committed Jun 7, 2017
    Copy the full SHA
    97ffe49 View commit details
    Browse the repository at this point in the history
  3. test/rgw: wait for realm reload after set_master_zone

    Signed-off-by: Casey Bodley <cbodley@redhat.com>
    (cherry picked from commit 5cc99db)
    cbodley committed Jun 7, 2017
    Copy the full SHA
    7966b84 View commit details
    Browse the repository at this point in the history