public StoreId getStoreId() { return new StoreId( getCreationTime(), getRandomNumber(), getStoreVersion(), getUpgradeTime(), upgradeTxIdField ); }
@Test( expected = UnderlyingStorageException.class ) public void readAllFieldsMustThrowOnPageOverflow() { try ( MetaDataStore store = newMetaDataStore() ) { // Apparently this is possible, and will trick MetaDataStore into thinking the field is not initialised. // Thus it will reload all fields from the file, even though this ends up being the actual value in the // file. We do this because creating a proper MetaDataStore automatically initialises all fields. store.setUpgradeTime( MetaDataStore.FIELD_NOT_INITIALIZED ); fakePageCursorOverflow = true; store.getUpgradeTime(); } }
@Test public void getUpgradeTimeShouldFailWhenStoreIsClosed() { MetaDataStore metaDataStore = newMetaDataStore(); metaDataStore.close(); try { metaDataStore.getUpgradeTime(); fail( "Expected exception reading from MetaDataStore after being closed." ); } catch ( Exception e ) { assertThat( e, instanceOf( IllegalStateException.class ) ); } }
@Test public void shouldHaveSameCreationTimeAndUpgradeTimeOnStartup() { // When neoStores = storeFactory( Config.defaults() ).openAllNeoStores( true ); MetaDataStore metaDataStore = neoStores.getMetaDataStore(); // Then assertThat( metaDataStore.getUpgradeTime(), equalTo( metaDataStore.getCreationTime() ) ); }
@Test public void upgradedNeoStoreShouldHaveNewUpgradeTimeAndUpgradeId() throws Exception { // Given fileSystem.deleteFile( databaseLayout.file( INTERNAL_LOG_FILE ) ); PageCache pageCache = pageCacheRule.getPageCache( fileSystem ); UpgradableDatabase upgradableDatabase = getUpgradableDatabase( pageCache ); // When newUpgrader( upgradableDatabase, allowMigrateConfig, pageCache ).migrateIfNeeded( databaseLayout ); // Then StoreFactory factory = new StoreFactory( databaseLayout, allowMigrateConfig, new DefaultIdGeneratorFactory( fileSystem ), pageCache, fileSystem, NullLogProvider.getInstance(), EmptyVersionContextSupplier.EMPTY ); try ( NeoStores neoStores = factory.openAllNeoStores() ) { assertThat( neoStores.getMetaDataStore().getUpgradeTransaction(), equalTo( neoStores.getMetaDataStore().getLastCommittedTransaction() ) ); assertThat( neoStores.getMetaDataStore().getUpgradeTime(), not( equalTo( MetaDataStore.FIELD_NOT_INITIALIZED ) ) ); long minuteAgo = System.currentTimeMillis() - MINUTES.toMillis( 1 ); assertThat( neoStores.getMetaDataStore().getUpgradeTime(), greaterThan( minuteAgo ) ); } }
assertEquals( new TransactionId( 10, 11, BASE_TX_COMMIT_TIMESTAMP ), metaDataStore.getUpgradeTransaction() ); assertEquals( 12, metaDataStore.getUpgradeTime() ); assertArrayEquals( metaDataStore.getLastClosedTransaction(), new long[]{6,44,43} );
public StoreId getStoreId() { return new StoreId( getCreationTime(), getRandomNumber(), getStoreVersion(), getUpgradeTime(), upgradeTxIdField ); }