public void run() throws Exception {
MultiMapContainer container = getOrCreateContainer();
if (!container.txnLock(dataKey, getCallerUuid(), threadId, ttl)) {
throw new TransactionException("Transaction couldn't obtain lock!");
}
MultiMapWrapper wrapper = getCollectionWrapper();
final boolean isLocal = getResponseHandler().isLocal();
Collection<MultiMapRecord> collection = wrapper == null ? null : wrapper.getCollection(isLocal);
final MultiMapResponse multiMapResponse = new MultiMapResponse(collection, getValueCollectionType(container));
multiMapResponse.setNextRecordId(container.nextId());
response = multiMapResponse;
}