@Override public int getTransactionsSchemaVersion(long timestamp) { return transactionSchemaManager.getTransactionsSchemaVersion(timestamp); }
@Override public void forceInstallNewTransactionsSchemaVersion(int newVersion) { while (transactionSchemaManager.getTransactionsSchemaVersion( timestampService.getFreshTimestamp()) != newVersion) { transactionSchemaManager.tryInstallNewTransactionsSchemaVersion(newVersion); advanceOneHundredMillionTimestamps(); } }
@Test public void canForceCoordinations() { assertThat(manager.getTransactionsSchemaVersion(337)).isEqualTo(1); }
@Test public void throwsIfTryingToGetAnImpossibleTimestamp() { assertThatThrownBy(() -> manager.getTransactionsSchemaVersion(AtlasDbConstants.STARTING_TS - 3141592)) .isInstanceOf(IllegalStateException.class) .hasMessageContaining("was never given out by the timestamp service"); }
@Test public void canSwitchBetweenSchemaVersions() { assertThat(manager.tryInstallNewTransactionsSchemaVersion(2)).isTrue(); fastForwardTimestampByOneHundredMillion(); assertThat(manager.getTransactionsSchemaVersion(timestamps.getFreshTimestamp())).isEqualTo(2); assertThat(manager.tryInstallNewTransactionsSchemaVersion(1)).isTrue(); fastForwardTimestampByOneHundredMillion(); assertThat(manager.getTransactionsSchemaVersion(timestamps.getFreshTimestamp())).isEqualTo(1); }
@Test public void newSchemaVersionsCanBeInstalledWithinOneHundredMillionTimestamps() { assertThat(manager.tryInstallNewTransactionsSchemaVersion(2)).isTrue(); fastForwardTimestampByOneHundredMillion(); assertThat(manager.getTransactionsSchemaVersion(timestamps.getFreshTimestamp())).isEqualTo(2); }