I don't like the overloading of args with other args that are either (a) a lie (the read-only-ness of the MP transaction) or (b) not the same 'type' (MP partition ID vs partition parameter index).  Can we use the actual value for the former, null for the latter, and make the logic in queue() deal?