@Override public void checkAndSetActive(TransactionId transactionId) { TransactionMetadata metadata = getTransactionMetadata(transactionId); metadata.checkOpenTransaction(); metadata.setActive(); }
@Override public TransactionInfo getTransactionInfo(TransactionId transactionId) { return getTransactionMetadata(transactionId).getTransactionInfo(); }
public static TransactionManager create( TransactionManagerConfig config, ScheduledExecutorService idleCheckExecutor, CatalogManager catalogManager, ExecutorService finishingExecutor) { InMemoryTransactionManager transactionManager = new InMemoryTransactionManager(config.getIdleTimeout(), config.getMaxFinishingConcurrency(), catalogManager, finishingExecutor); transactionManager.scheduleIdleChecks(config.getIdleCheckInterval(), idleCheckExecutor); return transactionManager; }
public <T> T inTransaction(Session session, Function<Session, T> transactionSessionConsumer) { return transaction(transactionManager, accessControl) .singleStatement() .execute(session, transactionSessionConsumer); }
private void inSetupTransaction(Consumer<Session> consumer) { transaction(transactionManager, accessControl) .singleStatement() .readUncommitted() .execute(SETUP_SESSION, consumer); }
default boolean isAutoCommit(TransactionId transactionId) { return getTransactionInfo(transactionId).isAutoCommitContext(); }
@Provides @Singleton public static TransactionManager createTransactionManager( TransactionManagerConfig config, CatalogManager catalogManager, @ForTransactionManager ScheduledExecutorService idleCheckExecutor, @ForTransactionManager ExecutorService finishingExecutor) { return InMemoryTransactionManager.create(config, idleCheckExecutor, catalogManager, finishingExecutor); }
public ConnectorTransactionHandle getTransactionHandle(TransactionId transactionId) { return transactionManager.getConnectorTransaction(transactionId, connectorId); } }
public TransactionBuilder readCommitted() { return withIsolationLevel(IsolationLevel.READ_COMMITTED); }
private void checkConnectorWrite(TransactionId transactionId, ConnectorId connectorId) { getTransactionMetadata(transactionId).checkConnectorWrite(connectorId); }
@Override public String toString() { return transactionId.toString(); } }
@Override public CatalogMetadata getCatalogMetadataForWrite(TransactionId transactionId, ConnectorId connectorId) { CatalogMetadata catalogMetadata = getCatalogMetadata(transactionId, connectorId); checkConnectorWrite(transactionId, connectorId); return catalogMetadata; }
@Override public int hashCode() { return transactionId.hashCode(); }
public static TransactionBuilder transaction(TransactionManager transactionManager, AccessControl accessControl) { return new TransactionBuilder(transactionManager, accessControl); }
@Override public Map<String, ConnectorId> getCatalogNames(TransactionId transactionId) { return getTransactionMetadata(transactionId).getCatalogNames(); }
@Override public TransactionId beginTransaction(boolean autoCommitContext) { return beginTransaction(DEFAULT_ISOLATION, DEFAULT_READ_ONLY, autoCommitContext); }
public TransactionBuilder repeatableRead() { return withIsolationLevel(IsolationLevel.REPEATABLE_READ); }
@Override public CatalogMetadata getCatalogMetadata(TransactionId transactionId, ConnectorId connectorId) { return getTransactionMetadata(transactionId).getTransactionCatalogMetadata(connectorId); }
public TransactionBuilder serializable() { return withIsolationLevel(IsolationLevel.SERIALIZABLE); }
public TransactionBuilder readUncommitted() { return withIsolationLevel(IsolationLevel.READ_UNCOMMITTED); }