We were keeping our existing recovery reservation slot (with a high
priority) and going straight to waiting for backfill reservations on
the peers. This is a problem because the reserver thinks we're doing
high priority work when we're actually doing lower-priority backfill.
Fix by closing out our recovery reservation and going to the
WaitLocalBackfillReserved state, where we'll re-request backfill at the
appropriate priority.
Signed-off-by: Sage Weil <sage@redhat.com>
If we have granted a remote backfill reservation, and a higher priority
request comes in, send a REVOKE message back to the primary and drop the
reservation (allowing the higher-priority reservation to be GRANTed).
We can only do this if the primary is running new code because it must
understand the REVOKE message.
Signed-off-by: Sage Weil <sage@redhat.com>
We were sending REJECT if the replica filled up, and the primary would set
the BACKFILL_TOOFULL state as a result. Make it an explicit verb for
clarity.
Signed-off-by: Sage Weil <sage@redhat.com>
Testing BlueStore against both HDDs and OSDs with fully allocated
and sparse-allocated objects shows a performance improvement with
sparse-read between 32K and 64K.
Fixes: http://tracker.ceph.com/issues/21849
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This way me match the terminology used by MRecoveryReserve. It is also
a bit more suggestive of primary->replica action, whereas "cancel" could
mean replica canceling its grant.
Document the meaning in the headers to clarify meaning.
Signed-off-by: Sage Weil <sage@redhat.com>
osdc/Objecter: skip sparse-read result decode if bufferlist is empty
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
In GetLog, we will request logs back to the min last_update over our
acting_backfill set, which will result in our log being extended
as far backwards as necessary to pick up any peers which can
be log recovered by auth_log_shard's log.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
If we are reencoding an incremental, and it embeds a crush map, we need
to reencode that in a compatible way too. This is especially true now
because we have the compat crush weight-sets. Otherwise, a client may
learn the crush map through an incremental but not understand choose_args,
and not see/understand the alternate weight set. It will send requests
to the wrong OSDs where they will just get dropped.
Fixes: http://tracker.ceph.com/issues/21882
Signed-off-by: Sage Weil <sage@redhat.com>
This option was enabled in 87f33376d977962ab7438c46873ea9b6292390d1 but
causes ObjectStore/StoreTest.Synthetic/1 (filestore) to fail. Revert that
bit for now until we fix fiemap properly.
See http://tracker.ceph.com/issues/21880
Signed-off-by: Sage Weil <sage@redhat.com>
rgw: fix opslog uri as per Amazon s3
Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Reviewed-by: Jos Collin <jcollin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
rgw:fix list objects with marker wrong result when bucket is enable versioning
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>