A method for processing data in a computing system, using queues that store work units including holding queues, relocation queues, and ready queues, the method including: receiving work units into a plurality of holding queues stored in storage of one or more nodes of the computing system; and processing the work units from the plurality of holding queues using at least one processor in each of the one or more nodes, the processing including: determining, for each of the holding queues, one of a plurality of partitions assigned to each work unit stored in that holding queue according to a partitioning rule, where each partition is associated with a unique holding queue, separating work units from each holding queue into a corresponding one of at least two other queues stored in the same storage as that holding queue, the two other queues including a relocation queue for each work unit whose assigned partition is not associated with the holding queue in which it is stored, and a ready queue for each work unit whose assigned partition is associated with the holding queue in which it is stored, relocating each work unit in each relocation queue to the holding queue associated with the partition assigned to that work unit, and repartitioning the work units in response to a change in the partitioning rule to a new partitioning rule before the plurality of holding queues are empty. receiving work units into a plurality of holding queues stored in storage of one or more nodes of the computing system; and processing the work units from the plurality of holding queues using at least one processor in each of the one or more nodes, the processing including: determining, for each of the holding queues, one of a plurality of partitions assigned to each work unit stored in that holding queue according to a partitioning rule, where each partition is associated with a unique holding queue, separating work units from each holding queue into a corresponding one of at least two other queues stored in the same storage as that holding queue, the two other queues including a relocation queue for each work unit whose assigned partition is not associated with the holding queue in which it is stored, and a ready queue for each work unit whose assigned partition is associated with the holding queue in which it is stored, relocating each work unit in each relocation queue to the holding queue associated with the partition assigned to that work unit, and repartitioning the work units in response to a change in the partitioning rule to a new partitioning rule before the plurality of holding queues are empty. determining, for each of the holding queues, one of a plurality of partitions assigned to each work unit stored in that holding queue according to a partitioning rule, where each partition is associated with a unique holding queue, separating work units from each holding queue into a corresponding one of at least two other queues stored in the same storage as that holding queue, the two other queues including a relocation queue for each work unit whose assigned partition is not associated with the holding queue in which it is stored, and a ready queue for each work unit whose assigned partition is associated with the holding queue in which it is stored, relocating each work unit in each relocation queue to the holding queue associated with the partition assigned to that work unit, and repartitioning the work units in response to a change in the partitioning rule to a new partitioning rule before the plurality of holding queues are empty.