mirror of
https://github.com/google/nomulus
synced 2026-09-18 22:14:23 +00:00
Add tx/s instrumentation to replay action and re-enable it on sandbox (#1276)
This commit is contained in:
@@ -201,7 +201,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
CommitLogMutation.create(manifest2Key, TestObject.create("f")));
|
||||
jpaTm().transact(() -> SqlReplayCheckpoint.set(now.minusMinutes(1).minusMillis(1)));
|
||||
fakeClock.advanceOneMilli();
|
||||
runAndAssertSuccess(now, 2);
|
||||
runAndAssertSuccess(now, 2, 3);
|
||||
assertExpectedIds("previous to keep", "b", "d", "e", "f");
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
saveDiffFileNotToRestore(gcsUtils, now.minusMinutes(1));
|
||||
saveDiffFile(gcsUtils, createCheckpoint(now.minusMillis(2)));
|
||||
jpaTm().transact(() -> SqlReplayCheckpoint.set(now.minusMillis(1)));
|
||||
runAndAssertSuccess(now.minusMillis(1), 0);
|
||||
runAndAssertSuccess(now.minusMillis(1), 0, 0);
|
||||
assertExpectedIds("previous to keep");
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
CommitLogManifest.create(bucketKey, now, null),
|
||||
CommitLogMutation.create(manifestKey, TestObject.create("a")),
|
||||
CommitLogMutation.create(manifestKey, TestObject.create("b")));
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 1);
|
||||
assertExpectedIds("previous to keep", "a", "b");
|
||||
}
|
||||
|
||||
@@ -278,7 +278,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
getBucketKey(1),
|
||||
now,
|
||||
ImmutableSet.of(Key.create(TestObject.create("previous to delete")))));
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 1);
|
||||
assertExpectedIds("previous to keep");
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
domainMutation,
|
||||
contactMutation);
|
||||
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 1);
|
||||
// Verify two things:
|
||||
// 1. that the contact insert occurred before the domain insert (necessary for FK ordering)
|
||||
// even though the domain came first in the file
|
||||
@@ -393,7 +393,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
CommitLogManifest.create(
|
||||
getBucketKey(1), now.minusMinutes(1).plusMillis(1), ImmutableSet.of()),
|
||||
contactMutation);
|
||||
runAndAssertSuccess(now.minusMinutes(1).plusMillis(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1).plusMillis(1), 1, 2);
|
||||
// Verify that the delete occurred first (because it was in the first transaction) even though
|
||||
// deletes have higher weight
|
||||
ArgumentCaptor<Object> putCaptor = ArgumentCaptor.forClass(Object.class);
|
||||
@@ -438,7 +438,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 1);
|
||||
// jpaTm()::put should only have been called with the checkpoint
|
||||
verify(spy, times(2)).put(any(SqlReplayCheckpoint.class));
|
||||
verify(spy, times(2)).put(any());
|
||||
@@ -463,7 +463,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
// one object only exists in Datastore, one is dually-written (so isn't replicated)
|
||||
ImmutableSet.of(getCrossTldKey(), claimsListKey)));
|
||||
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 1);
|
||||
verify(spy, times(0)).delete(any(VKey.class));
|
||||
}
|
||||
|
||||
@@ -506,7 +506,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
createCheckpoint(now.minusMinutes(1)),
|
||||
CommitLogManifest.create(bucketKey, now, null),
|
||||
CommitLogMutation.create(manifestKey, TestObject.create("a")));
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 1);
|
||||
assertThat(TestObject.beforeSqlSaveCallCount).isEqualTo(1);
|
||||
}
|
||||
|
||||
@@ -544,7 +544,7 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
createCheckpoint(now.minusMinutes(1)),
|
||||
CommitLogManifest.create(
|
||||
getBucketKey(1), now.minusMinutes(3), ImmutableSet.of(Key.create(domain))));
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 1);
|
||||
|
||||
jpaTm()
|
||||
.transact(
|
||||
@@ -596,15 +596,19 @@ public class ReplayCommitLogsToSqlActionTest {
|
||||
domainWithoutDsDataMutation,
|
||||
CommitLogManifest.create(getBucketKey(1), now.minusMinutes(2), ImmutableSet.of()),
|
||||
domainWithOriginalDsDataMutation);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1);
|
||||
runAndAssertSuccess(now.minusMinutes(1), 1, 2);
|
||||
}
|
||||
|
||||
private void runAndAssertSuccess(DateTime expectedCheckpointTime, int numFiles) {
|
||||
private void runAndAssertSuccess(
|
||||
DateTime expectedCheckpointTime, int numFiles, int numTransactions) {
|
||||
action.run();
|
||||
assertThat(response.getStatus()).isEqualTo(SC_OK);
|
||||
assertThat(response.getPayload())
|
||||
.isEqualTo(
|
||||
String.format("Caught up to current time after replaying %d file(s).", numFiles));
|
||||
.startsWith(
|
||||
String.format(
|
||||
"Caught up to current time after replaying %d file(s) containing %d total"
|
||||
+ " transaction(s)",
|
||||
numFiles, numTransactions));
|
||||
assertThat(jpaTm().transact(SqlReplayCheckpoint::get)).isEqualTo(expectedCheckpointTime);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user