public TuplStoreTransaction beginTransaction(BaseTransactionConfig config) throws BackendException { final Configuration effectiveCfg = new MergedConfiguration( config.getCustomOptions() /*overrides, defined in individual titan transaction configs*/, getStorageConfig() /*defaults, in superclass AbstractStoreManager, passed into ctor*/); //configure the durability mode if(batchLoading && effectiveCfg.has(TUPL_DURABILITY_MODE)) { throw new PermanentBackendException(CANNOT_OVERRIDE_DURABILITY_MODE_WHEN_BATCH_LOADING); } final DurabilityMode effectiveDurabilityMode = batchLoading ? DurabilityMode.NO_REDO : DurabilityMode.valueOf(effectiveCfg.get(TUPL_DURABILITY_MODE)); //configure the lock mode if((!transactional || batchLoading) && effectiveCfg.has(TUPL_LOCK_MODE)) { throw new PermanentBackendException(CANT_OVERRIDE_LOCK_MODE_WITHOUT_TX_OR_WHEN_BATCH_LOADING); } final LockMode effectiveLockMode = (transactional && !batchLoading) ? LockMode.valueOf(effectiveCfg.get(TUPL_LOCK_MODE)) : LockMode.UNSAFE; final Transaction txn = database.newTransaction(effectiveDurabilityMode); txn.lockMode(effectiveLockMode); return new TuplStoreTransaction(config, txn, database); }