From: Sage Weil Date: Thu, 24 Mar 2011 21:21:52 +0000 (-0700) Subject: osd: let single large ops through the throttler X-Git-Tag: v0.26~38 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=64141a4a32c22a4b1d1a321fc6f33a0ffb8c25a4;p=ceph.git osd: let single large ops through the throttler Otherwise we block indefinitely on a single op that's larger than the throttler limit. Signed-off-by: Sage Weil --- diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index c3a7b2e983da..670f4a5bdfb7 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -1569,7 +1569,8 @@ void FileStore::_op_queue_reserve_throttle(Op *o, const char *caller) } while ((max_ops && (op_queue_len + 1) > max_ops) || - (max_bytes && (op_queue_bytes + o->bytes) > max_bytes)) { + (max_bytes && op_queue_bytes // let single large ops through! + && (op_queue_bytes + o->bytes) > max_bytes)) { dout(2) << caller << " waiting: " << op_queue_len + 1 << " > " << max_ops << " ops || " << op_queue_bytes + o->bytes << " > " << max_bytes << dendl;