Skip to content

Commit

Permalink
Clarified purpose of TransactionType->TransactionWriteState
Browse files Browse the repository at this point in the history
  • Loading branch information
craigtaverner committed Mar 4, 2016
1 parent 282374e commit efecac4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 20 deletions.
Expand Up @@ -99,7 +99,7 @@ public DataWriteOperations dataWriteOperations()
throw new AuthorizationViolationException(
String.format( "Write operations are not allowed for `%s` transactions.", transaction.mode().name() ) );
}
transaction.upgradeToDataTransaction();
transaction.upgradeToDataWrites();
return facade;
}

Expand All @@ -112,7 +112,7 @@ public SchemaWriteOperations schemaWriteOperations()
throw new AuthorizationViolationException(
String.format( "Schema operations are not allowed for `%s` transactions.", transaction.mode().name() ) );
}
transaction.upgradeToSchemaTransaction();
transaction.upgradeToSchemaWrites();
return facade;
}

Expand Down
Expand Up @@ -72,13 +72,13 @@ public class KernelTransactionImplementation implements KernelTransaction, TxSta
* - the #release() method releases resources acquired in #initialize() or during the transaction's life time
*/

private enum TransactionType
private enum TransactionWriteState
{
READ,
NONE,
DATA
{
@Override
TransactionType upgradeToSchemaTransaction() throws InvalidTransactionTypeKernelException
TransactionWriteState upgradeToSchemaWrites() throws InvalidTransactionTypeKernelException
{
throw new InvalidTransactionTypeKernelException(
"Cannot perform schema updates in a transaction that has performed data updates." );
Expand All @@ -87,19 +87,19 @@ TransactionType upgradeToSchemaTransaction() throws InvalidTransactionTypeKernel
SCHEMA
{
@Override
TransactionType upgradeToDataTransaction() throws InvalidTransactionTypeKernelException
TransactionWriteState upgradeToDataWrites() throws InvalidTransactionTypeKernelException
{
throw new InvalidTransactionTypeKernelException(
"Cannot perform data updates in a transaction that has performed schema updates." );
}
};

TransactionType upgradeToDataTransaction() throws InvalidTransactionTypeKernelException
TransactionWriteState upgradeToDataWrites() throws InvalidTransactionTypeKernelException
{
return DATA;
}

TransactionType upgradeToSchemaTransaction() throws InvalidTransactionTypeKernelException
TransactionWriteState upgradeToSchemaWrites() throws InvalidTransactionTypeKernelException
{
return SCHEMA;
}
Expand All @@ -126,7 +126,7 @@ TransactionType upgradeToSchemaTransaction() throws InvalidTransactionTypeKernel
// whereas others, such as timestamp or txId when transaction starts, even locks, needs to be set in #initialize().
private TransactionState txState;
private LegacyIndexTransactionState legacyIndexTransactionState;
private TransactionType transactionType; // Tracks current state of transaction, which will upgrade to WRITE or SCHEMA mode when necessary
private TransactionWriteState writeState; // Tracks current state of transaction, which will upgrade to WRITE or SCHEMA mode when necessary
private TransactionHooks.TransactionHooksState hooksState;
private final KernelStatement currentStatement;
private final StorageStatement storageStatement;
Expand Down Expand Up @@ -181,7 +181,7 @@ public KernelTransactionImplementation initialize(
this.type = type;
this.locks = locks;
this.closing = closed = failure = success = terminated = beforeHookInvoked = false;
this.transactionType = TransactionType.READ;
this.writeState = TransactionWriteState.NONE;
this.startTimeMillis = clock.currentTimeMillis();
this.lastTransactionIdWhenStarted = lastCommittedTx;
this.transactionEvent = tracer.beginTransaction();
Expand Down Expand Up @@ -243,20 +243,15 @@ public KernelStatement acquireStatement()
return currentStatement;
}

public void upgradeToDataTransaction() throws InvalidTransactionTypeKernelException
public void upgradeToDataWrites() throws InvalidTransactionTypeKernelException
{
transactionType = transactionType.upgradeToDataTransaction();
writeState = writeState.upgradeToDataWrites();
}

public void upgradeToSchemaTransaction() throws InvalidTransactionTypeKernelException
{
doUpgradeToSchemaTransaction();
transactionType = transactionType.upgradeToSchemaTransaction();
}

public void doUpgradeToSchemaTransaction() throws InvalidTransactionTypeKernelException
public void upgradeToSchemaWrites() throws InvalidTransactionTypeKernelException
{
schemaWriteGuard.assertSchemaWritesAllowed();
writeState = writeState.upgradeToSchemaWrites();
}

private void dropCreatedConstraintIndexes() throws TransactionFailureException
Expand Down Expand Up @@ -385,7 +380,7 @@ public void close() throws TransactionFailureException
closing = false;
transactionEvent.setSuccess( success );
transactionEvent.setFailure( failure );
transactionEvent.setTransactionType( transactionType.name() );
transactionEvent.setTransactionType( writeState.name() );
transactionEvent.setReadOnly( txState == null || !txState.hasChanges() );
transactionEvent.close();
}
Expand Down

0 comments on commit efecac4

Please sign in to comment.