for (short block : allBlockIds) {
block_ids[i++] = block;
}
if (txn instanceof LocalTransaction) {
LocalTransaction ts = (LocalTransaction)txn;
// Different partition generated the exception
if (ts.getBasePartition() != partition && !hstore_site.isLocalPartition(partition)){
int site_id = hstore_site.getCatalogContext().getSiteIdForPartitionId(partition);
hstore_site.getCoordinator().sendUnevictDataMessage(site_id, ts, partition, catalog_tbl, block_ids, tuple_offsets);
return true;
// should we enqueue the transaction on our side?
// if yes then we need to prevent the queue item from being picked up
// and prevent it from bombing the partition error
// if no then simply return?
// how to take care of LRU?
}
if (hstore_conf.site.anticache_profiling) {
assert(ts.getPendingError() != null) :
String.format("Missing original %s for %s", EvictedTupleAccessException.class.getSimpleName(), ts);
assert(ts.getPendingError() instanceof EvictedTupleAccessException) :
String.format("Unexpected error for %s: %s", ts, ts.getPendingError().getClass().getSimpleName());
this.profilers[partition].restarted_txns++;
this.profilers[partition].addEvictedAccess(ts, (EvictedTupleAccessException)ts.getPendingError());
LOG.debug("Restarting transaction " + String.format("%s",ts) + ", " + ts.getRestartCounter() + " total restarts.");
LOG.debug("Total Restarted Txns: " + this.profilers[partition].restarted_txns);
}
}
if (debug.val)