]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: let single large ops through the throttler
authorSage Weil <sage@newdream.net>
Thu, 24 Mar 2011 21:21:52 +0000 (14:21 -0700)
committerSage Weil <sage@newdream.net>
Thu, 24 Mar 2011 21:25:15 +0000 (14:25 -0700)
Otherwise we block indefinitely on a single op that's larger than the
throttler limit.

Signed-off-by: Sage Weil <sage@newdream.net>
src/os/FileStore.cc

index c3a7b2e983da83b42912b94a4e2528625e7d0200..670f4a5bdfb76aaab37b92ed6f306a773060a4d2 100644 (file)
@@ -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;