public MarkovEstimatorState startTransactionImpl(Long txn_id, int base_partition, Procedure catalog_proc, Object[] args) {
long timestamp = -1l;
if (this.profiler != null) timestamp = ProfileMeasurement.getTime();
ParameterMangler mangler = this.manglers[catalog_proc.getId()];
if (mangler != null) args = mangler.convert(args);
assert (catalog_proc != null);
long start_time = EstTime.currentTimeMillis();
if (debug.val)
LOG.debug(String.format("%s - Starting transaction estimation [partition=%d]",