Minor refactoring. I'm poking around the old dependency tracking code to figure out where I can inject my fixes for prefetched queries... #125
Building out the new infrastructure for tracking prefetched queries. #125
You can pass in the client.txnrate parameter for the mark-workloads utility script
Simple optimization in the BatchPlanner where we don't need to allocate all of the ArrayLists for the partitions unless they are actually needed
Still working through the infrastructure needed for tracking prefetched queries... We've got a new QueryTracker class to keep track of the order that we invoke queries but in some ways this seems redundant to the markov model stuff... #125
Trying to figure out how to check for already prefetched queries
Simple reformatting while I spin my wheels trying to figure out where to inject the logic for handling prefetched queries... #125
Make sure that we initialize the txn's PrefetchState in TestPrefetchQueryPlanner. If this passes, then I'm going to merge to the master before I start doing major surgery...
Completely revamped the internal dependency management code for distributed transactions. I extracted out all of the code for tracking dependencies that was inside of LocalTransaction and moved it into a new class called DependencyTracker.
This will make it easier for us be able to embed prefetched query results without a ton of extra data structures. I moved the lock out of ExecutionState and into LocalTransaction. I think that eventually we can get rid of the ExecutionState entirely...

KB went to a Providence Bruins hockey game. I'm hanging out working on my database listening to baseballs. It's a cool/rainy Saturday night... Pimps up, hoes down I suppose... #125
Forgot to add the ability to create/remove txn states in the DependencyTracker #125
Added in the ability to create/remove txns from the DependencyTrackers in the proper places. We only need to do it for distributed txns when they actually try to execute work on remote partitions #125
Fixed up LocalTransaction.startRound() so that we invoke the DependencyTracker if we're in a dtxn or a *sysproc*. This seems to be working nicely now...
So we have a problem where we are not using the DependencyTracker for single-partition nodes... this is why the tests are failing. I will fix tomorrow morning
Added hackish workarounds for dealing with updates on replicated tables when there is only one partition
Working on adding support for prefetching in the new DependencyTracker. So I figured out that we'll be able to prefetch PlanFragments for multi-partition queries... Still need to sort out some things like how to identify that we prefetched a query in the PartitionExecutor so that we don't send duplicate requests and how to recognize that it's okay that we executed queries out of order on remote partitions. KB made dinner so I'm going downstairs now. I'll be back in a bit... #125
Forgot to add in extract QueryInvocation class
Removed the DependencyTracker handle out of ExecutionState and put it into the LocalTransaction handle. We will probably be able to get rid of ExecutionState entirely now #125
Working on test case for adding prefetching results in the DependencyTracker before/after they are needed by txns. Removed the 'predict_singlePartitioned' input parameter to BatchPlanner.plan(). I forget why we had it in the first place. #125
I figured out how we can override internal dependency information to use a prefetch DependencyInfo, but now I realize that this isn't the way we want to do it because we actually need to call addResult() so that we can unblock things properly... Still a work in progress #125
Ok I think we're on to something here. We can now successfully switch a DependencyInfo from 'prefetch mode' into 'regular mode' so that the results cause other WorkFragments to get unblocked. The major issue that remains is how we identify when a prefetch DependencyInfo corresponds to an actual invoked query. Right now we're using stmtIndex, which is incorrect because that is on a per batch basis. #125