Project

General

Profile

Bug #18292

multisite: improved consistency model for requests forwarded to meta master

Added by Casey Bodley about 6 years ago. Updated about 3 years ago.

Status:
New
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
jewel, kraken
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

When a metadata request (such as bucket a operation) is sent to a non-master zone, the request is forwarded to the metadata master zone. On a successful reply from the master, we return that to the client. But this only guarantees that the metadata update has been applied on the master - it's not applied on the non-master zone until metadata sync fetches the update. This leaves a window between responding to the client and fetching the updated metadata where the changes are not visible to clients of the non-master zone.

The issue came up in http://tracker.ceph.com/issues/18003 with respect to bucket versioning changes, and was fixed by writing the change locally after getting a successful reply from the master. This could lead to races between the write and other metadata updates synced from the master. It could also lead to inconsistencies in the metadata itself, like the mtime for example.

The non-master zone should probably just read the updated metadata from the master zone, and write that locally. This should work as long as this write and the writes from metadata sync both respect the same object versioning requirements.


Related issues

Related to rgw - Bug #18003: slave zonegroup cannot enable the bucket versioning Resolved 11/23/2016

History

#1 Updated by Casey Bodley about 6 years ago

  • Related to Bug #18003: slave zonegroup cannot enable the bucket versioning added

#2 Updated by Nathan Cutler about 6 years ago

  • Project changed from Ceph to rgw

#3 Updated by Nathan Cutler about 6 years ago

  • Related to Bug #18003: slave zonegroup cannot enable the bucket versioning added

#4 Updated by Orit Wasserman about 6 years ago

  • Backport set to jewel

#5 Updated by Orit Wasserman about 6 years ago

  • Backport changed from jewel to jewel, kraken

#6 Updated by Matt Benjamin over 5 years ago

  • Priority changed from High to Normal

#7 Updated by Matt Benjamin over 5 years ago

  • Status changed from New to 12

#8 Updated by Patrick Donnelly about 3 years ago

  • Status changed from 12 to New

Also available in: Atom PDF