public boolean hasMetaFile() { return getMetaFile().exists(); }
boolean hasMetaFile() throws IOException { return getMetaFile().exists(); }
private MetaFile writeMetaFile(long term, String votedFor) throws IOException { MetaFile metaFile = new MetaFile(storageDir.getMetaFile()); metaFile.set(term, votedFor); return metaFile; }
private MetaFile writeMetaFile(long term, String votedFor) throws IOException { MetaFile metaFile = new MetaFile(storageDir.getMetaFile()); metaFile.set(term, votedFor); return metaFile; }
private StorageState analyzeAndRecoverStorage(boolean toLock) throws IOException { StorageState storageState = storageDir.analyzeStorage(toLock); if (storageState == StorageState.NORMAL) { metaFile = new MetaFile(storageDir.getMetaFile()); Preconditions.assertTrue(metaFile.exists(), () -> "Meta file " + metaFile + " does not exists."); metaFile.readFile(); // Existence of raft-meta.tmp means the change of votedFor/term has not // been committed. Thus we should delete the tmp file. cleanMetaTmpFile(); return StorageState.NORMAL; } else if (storageState == StorageState.NOT_FORMATTED && storageDir.isCurrentEmpty()) { format(); return StorageState.NORMAL; } else { return storageState; } }
private StorageState analyzeAndRecoverStorage(boolean toLock) throws IOException { StorageState storageState = storageDir.analyzeStorage(toLock); if (storageState == StorageState.NORMAL) { metaFile = new MetaFile(storageDir.getMetaFile()); Preconditions.assertTrue(metaFile.exists(), () -> "Meta file " + metaFile + " does not exists."); metaFile.readFile(); // Existence of raft-meta.tmp means the change of votedFor/term has not // been committed. Thus we should delete the tmp file. cleanMetaTmpFile(); return StorageState.NORMAL; } else if (storageState == StorageState.NOT_FORMATTED && storageDir.isCurrentEmpty()) { format(); return StorageState.NORMAL; } else { return storageState; } }
File metaFile = sd.getMetaFile(); FileUtils.move(metaFile, sd.getMetaTmpFile()); Assert.assertTrue(sd.getMetaFile().exists()); Assert.assertTrue(sd.getMetaTmpFile().createNewFile()); Assert.assertTrue(sd.getMetaTmpFile().exists()); Assert.assertEquals(StorageState.NORMAL, storage.getState()); Assert.assertFalse(sd.getMetaTmpFile().exists()); Assert.assertTrue(sd.getMetaFile().exists()); } finally { storage.close();
File metaFile = sd.getMetaFile(); FileUtils.move(metaFile, sd.getMetaTmpFile()); Assert.assertTrue(sd.getMetaFile().exists()); Assert.assertTrue(sd.getMetaTmpFile().createNewFile()); Assert.assertTrue(sd.getMetaTmpFile().exists()); Assert.assertEquals(StorageState.NORMAL, storage.getState()); Assert.assertFalse(sd.getMetaTmpFile().exists()); Assert.assertTrue(sd.getMetaFile().exists()); } finally { storage.close();
@Test public void testMetaFile() throws Exception { RaftStorage storage = new RaftStorage(storageDir, StartupOption.FORMAT); File m = storage.getStorageDir().getMetaFile(); Assert.assertTrue(m.exists()); MetaFile metaFile = new MetaFile(m); Assert.assertEquals(MetaFile.DEFAULT_TERM, metaFile.getTerm()); Assert.assertEquals(MetaFile.EMPTY_VOTEFOR, metaFile.getVotedFor()); metaFile.set(123, "peer1"); metaFile.readFile(); Assert.assertEquals(123, metaFile.getTerm()); Assert.assertEquals("peer1", metaFile.getVotedFor()); MetaFile metaFile2 = new MetaFile(m); Assert.assertFalse((Boolean) Whitebox.getInternalState(metaFile2, "loaded")); Assert.assertEquals(123, metaFile.getTerm()); Assert.assertEquals("peer1", metaFile.getVotedFor()); storage.close(); }
@Test public void testMetaFile() throws Exception { RaftStorage storage = new RaftStorage(storageDir, StartupOption.FORMAT); File m = storage.getStorageDir().getMetaFile(); Assert.assertTrue(m.exists()); MetaFile metaFile = new MetaFile(m); Assert.assertEquals(MetaFile.DEFAULT_TERM, metaFile.getTerm()); Assert.assertEquals(MetaFile.EMPTY_VOTEFOR, metaFile.getVotedFor()); metaFile.set(123, "peer1"); metaFile.readFile(); Assert.assertEquals(123, metaFile.getTerm()); Assert.assertEquals("peer1", metaFile.getVotedFor()); MetaFile metaFile2 = new MetaFile(m); Assert.assertFalse((Boolean) Whitebox.getInternalState(metaFile2, "loaded")); Assert.assertEquals(123, metaFile.getTerm()); Assert.assertEquals("peer1", metaFile.getVotedFor()); storage.close(); }
File m = sd.getMetaFile(); Assert.assertTrue(m.exists()); MetaFile metaFile = new MetaFile(m); metaFile = new MetaFile(sd.getMetaFile()); Assert.assertEquals(MetaFile.DEFAULT_TERM, metaFile.getTerm()); Assert.assertEquals(MetaFile.EMPTY_VOTEFOR, metaFile.getVotedFor());
File m = sd.getMetaFile(); Assert.assertTrue(m.exists()); MetaFile metaFile = new MetaFile(m); metaFile = new MetaFile(sd.getMetaFile()); Assert.assertEquals(MetaFile.DEFAULT_TERM, metaFile.getTerm()); Assert.assertEquals(MetaFile.EMPTY_VOTEFOR, metaFile.getVotedFor());