diff --git a/core/src/main/java/google/registry/beam/resave/ResaveAllEppResourcesPipeline.java b/core/src/main/java/google/registry/beam/resave/ResaveAllEppResourcesPipeline.java index d67fc64a3..361410768 100644 --- a/core/src/main/java/google/registry/beam/resave/ResaveAllEppResourcesPipeline.java +++ b/core/src/main/java/google/registry/beam/resave/ResaveAllEppResourcesPipeline.java @@ -91,7 +91,6 @@ public class ResaveAllEppResourcesPipeline implements Serializable { } void setupPipeline(Pipeline pipeline) { - options.setIsolationOverride(TransactionIsolationLevel.TRANSACTION_READ_COMMITTED); if (options.getFast()) { fastResaveContacts(pipeline); fastResaveDomains(pipeline); @@ -194,6 +193,7 @@ public class ResaveAllEppResourcesPipeline implements Serializable { PipelineOptionsFactory.fromArgs(args) .withValidation() .as(ResaveAllEppResourcesPipelineOptions.class); + options.setIsolationOverride(TransactionIsolationLevel.TRANSACTION_REPEATABLE_READ); new ResaveAllEppResourcesPipeline(options).run(); } } diff --git a/core/src/main/java/google/registry/persistence/PersistenceModule.java b/core/src/main/java/google/registry/persistence/PersistenceModule.java index ac42f5310..bee057e11 100644 --- a/core/src/main/java/google/registry/persistence/PersistenceModule.java +++ b/core/src/main/java/google/registry/persistence/PersistenceModule.java @@ -278,7 +278,7 @@ public abstract class PersistenceModule { replicaInstanceConnectionName.ifPresent( name -> overrides.put(HIKARI_DS_CLOUD_SQL_INSTANCE, name)); overrides.put( - Environment.ISOLATION, TransactionIsolationLevel.TRANSACTION_READ_COMMITTED.name()); + Environment.ISOLATION, TransactionIsolationLevel.TRANSACTION_REPEATABLE_READ.name()); return new JpaTransactionManagerImpl(create(overrides), clock); } @@ -294,7 +294,7 @@ public abstract class PersistenceModule { replicaInstanceConnectionName.ifPresent( name -> overrides.put(HIKARI_DS_CLOUD_SQL_INSTANCE, name)); overrides.put( - Environment.ISOLATION, TransactionIsolationLevel.TRANSACTION_READ_COMMITTED.name()); + Environment.ISOLATION, TransactionIsolationLevel.TRANSACTION_REPEATABLE_READ.name()); return new JpaTransactionManagerImpl(create(overrides), clock); } diff --git a/core/src/main/java/google/registry/tools/javascrap/CreateSyntheticDomainHistoriesPipeline.java b/core/src/main/java/google/registry/tools/javascrap/CreateSyntheticDomainHistoriesPipeline.java index 2131407d6..27b07df20 100644 --- a/core/src/main/java/google/registry/tools/javascrap/CreateSyntheticDomainHistoriesPipeline.java +++ b/core/src/main/java/google/registry/tools/javascrap/CreateSyntheticDomainHistoriesPipeline.java @@ -117,7 +117,7 @@ public class CreateSyntheticDomainHistoriesPipeline implements Serializable { RegistryPipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation().as(RegistryPipelineOptions.class); RegistryPipelineOptions.validateRegistryPipelineOptions(options); - options.setIsolationOverride(TransactionIsolationLevel.TRANSACTION_READ_COMMITTED); + options.setIsolationOverride(TransactionIsolationLevel.TRANSACTION_REPEATABLE_READ); String registryAdminRegistrarId = DaggerCreateSyntheticDomainHistoriesPipeline_ConfigComponent.create() .getRegistryAdminRegistrarId();