@SuppressWarnings("unchecked")
@Override
public <K, V> MVCCTransactionMap<K, V> openMap(String name, StorageDataType keyType, StorageDataType valueType,
Storage storage, Map<String, String> parameters) {
checkNotClosed();
if (keyType == null)
keyType = new ObjectDataType();
if (valueType == null)
valueType = new ObjectDataType();
valueType = new TransactionalValueType(valueType);
StorageMap<K, TransactionalValue> map = storage.openMap(name, keyType, valueType, parameters);
if (!map.isInMemory()) {
TransactionalLogRecord.redo(map, logSyncService.getAndRemovePendingRedoLog(map.getName()));
}
transactionEngine.addMap((StorageMap<Object, TransactionalValue>) map);
boolean isShardingMode = parameters == null ? false : Boolean.parseBoolean(parameters.get("isShardingMode"));
return createTransactionMap(map, isShardingMode);
}