-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 It sounds like dmclock/mclock will alleviate a lot of the concerns I have as long as it can be smart like you said. It sounds like the queue thread was already tried so there is experience behind the current implementation vs. me thinking it might be better. The basic idea I had is below: Client, Client, Repop, Repop, backfill, ... Backfill, recovery, Recovery, etc thread etc thread | | \ / \ / lock; push (prio,cost,strict, front/back,subsystem,&OP); unlock | | (queue thread) pop / \ / \ if ops.low Place op in prio (fast path) queue, do any | housekeeping | | | when post-queue.len | < threads \ / \ / post-queue push | lock, cond, pop / \ / \ Worker ... Worker thread thread What I meant by more scalable is that the rate of boulders would be constant and evenly dispersed. It also prevents any one worker thread from being backed up while others are idle. This may not be an issue if the PG is busy. This design could also suffer if many OPs require some locking at the PG level instead of the object level. The queue itself does not do any op work only passing pointers to work to be done. As I mentioned before it sounds like something like this already proved to be limiting in performance, although thinking through this has given me some ideas about implementing a fast path option in the WRR queue to save some cycles. -----BEGIN PGP SIGNATURE----- Version: Mailvelope v1.2.3 Comment: https://www.mailvelope.com wsFcBAEBCAAQBQJWQS/lCRDmVDuy+mK58QAA69QP/0H1K3cArNaqM+yo4W4D vpUMGxgTOg/8+69w4U2smHtjy8zRnJyUU1fbYdeTCbwTlZi5XVvtdMstDgPf OqtF+uJm/akWVblzjreWjcqkBOXmlv89loOKJZGp9oUaHll8vrL117dd7Kwh WHnGkc+fKCjkA7qo3gBo+Y5N3I1N2BNF0NQVuSTFEP5CfPE4Wy6DwBpYD1KY zoN021E564V8eK1336je+v5xDg4oZLOxp5HhWmLHXnnisvfrK/VUipVl3aGY Y5AXpdHGuRlsfvodKo6ZjAr1NEyPqlapJ7o57montY8yTxPR6ubSYAPP04Ky VxA1FmtjsXKwui23rJMViWmY+lCT/P42fDlXEmVkbrnpkfoyzWn3N6yERatV UCazWH6eA8w/FMjrkU7FTNjttYeQU74Ph26qywL9oNVWbzKKaiEaWgGzOT1Y c65babw+qExK1syF8cWlKaf+roWIHeDq2+9iNO5SJ5v2eZ+JZipwW5f0BibM EQGCx4b+vcjJgN2rYxUYOsm0tyOj+MMi2MrHqLC5Ns4zwqBw29+Gz4x+RfW5 2mw/0zaBe9v5GG7SocCHSuLexYBXjJ5h7zx2lII38Bnz9M6OfaAzuFtSXAqH VSs4+6BrksnvAdhJNh4eX21mF/zIrnatxIvzvZlkAkSlEzpB72ZU8fC1OH/X 3hWW =LuyT -----END PGP SIGNATURE----- -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html