Working on restructing the queue stuff (again) to improve scalability
Poke the TransactionQueueManager thread processing a new transaction init request
Ok maybe don't poke the TransactionQueueManager thread after executing checkInitQueue
Refactored TransactionInitPriorityQueue. Removed the need to keep track of nextTxn. Now we just poll straight from our internal PriorityQueue
Added some new tests to check out-of-order txn insertion in the TransactionInitPriorityQueue
Fixed a simple live lock issue in the TransactionInitPriorityQueue
This feels like a bit of a hack...
Some debug messages... Still working on improve TransactionInitPriorityQueue. I think I'm going for a walk to clear my head and then get back to this
TransactionInitPriorityQueue.poll() is allowed to return null even if the QueueState is UNBLOCKED because there is a race condition from txns getting removed by the TransactionQueueManager thread
Make sure that we only use PartitionSets in the PartitionEstimator. This should remove the need to create Collection<Integer> iterators
Added optimized PartitionSet.containsAll() method
Removed cruft
Optimized version of PartitionSet.addAll()
Added new simplified version of the AbstractTransactionCallback that keeps track of what partitions have invokved the callback #111
Added new SinglePartitionInitQueueCallback. Going to hack up the TransactionQueueManager to only use instances of PartitionCountingCallback instead of all the wrapper crap that we have #111
First cut at the new transaction init callback stuff. This all still horribly broken but at least the simple test case seems to work. #111
Implemented RemoteInitQueueCallback. This is special callback for distributed txns at remote sites
More new stuff for the faster txn init queues. Yes, it is midnight and I'm still working on this. I'm watching PBS News Hour while I work... KB is away on vacation... #111
Minor tweak to get TestPartitionExecutor to work #111
Minor fixes for aborting txns in RemoteInitQueueCallback #111