Starting work on new execution scheme where the PartitionExecutor will block on the TransactionInitPriorityQueue until a txn is really ready to run
Implemented the blocking version of TransactionInitPriorityQueue.take(). Wrote a simple test case to prove that we can wake up after being blocked when the queue is empty. Still need to write one that has the thread waiting for the correct amount of time for a new txn
Revamped TransactionInitPriorityQueue.take() so that it will spin forever until the queue is unblocked. checkQueueState() now uses the ReentrantLock instead of a synchronized block
Fixed TransactionInitPriorityQueue logic so that it works for single-partition txns. So far so good...
Oh man we're close on this one. Fixed up PartitioExecutor.getNextTransactionWork() to first poll the work queue without blocking, then after we try to process utility work, we'll make a short blocking call to it.