use of alluxio.master.metastore.rocks.RocksInodeStore in project alluxio by Alluxio.
the class AbstractJournalDumper method readRocksCheckpoint.
private void readRocksCheckpoint(CheckpointInputStream checkpoint, Path path) throws IOException {
// An empty dir for storing the db.
Path dbPath = Paths.get(path.toFile().getPath() + "-rocks-db");
// Create RocksInodeStore over checkpoint stream for extracting the inodes.
try (PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(path.toFile())));
RocksInodeStore inodeStore = new RocksInodeStore(dbPath.toAbsolutePath().toString())) {
// Create and restore RocksInodeStore from the checkpoint.
inodeStore.restoreFromCheckpoint(checkpoint);
// Dump entries.
final String ENTRY_SEPARATOR = Strings.repeat("-", 80);
try (CloseableIterator<InodeView> iterator = inodeStore.getCloseableIterator()) {
for (; iterator.hasNext(); ) {
InodeView inode = iterator.next();
out.println(ENTRY_SEPARATOR);
out.println(inode.toProto());
}
}
} finally {
// Remove the temp db directory.
FileUtils.deletePathRecursively(dbPath.toFile().getPath());
}
}
use of alluxio.master.metastore.rocks.RocksInodeStore in project alluxio by Alluxio.
the class InodeStoreBench method main.
public static void main(String[] args) throws Exception {
// Enable logging to stdout.
Layout layout = new PatternLayout("%d [%t] %-5p %c %x - %m%n");
Logger.getRootLogger().addAppender(new ConsoleAppender(layout));
System.out.printf("Running benchmarks for rocks inode store%n");
sStore = new RocksInodeStore(ServerConfiguration.getString(PropertyKey.MASTER_METASTORE_DIR));
runBenchmarks();
System.out.printf("%nRunning benchmarks for heap inode store%n");
sStore = new HeapInodeStore();
runBenchmarks();
}
use of alluxio.master.metastore.rocks.RocksInodeStore in project alluxio by Alluxio.
the class BackupManagerTest method rocksInodeStoreIteratorNotUsed.
@Test
public void rocksInodeStoreIteratorNotUsed() throws Exception {
// Prepare some data for the iterator
List<InodeView> inodes = new ArrayList<>();
inodes.add(createRootDir(99L));
inodes.add(createNewFile(100L));
inodes.add(createNewFile(101L));
inodes.add(createNewFile(102L));
// When RocksInodeStore.iterator(), return mock iterator
RocksInodeStore mockInodeStore = mock(RocksInodeStore.class);
// Make sure the iterator is not used in the backup operation
when(mockInodeStore.getCloseableIterator()).thenThrow(new UnsupportedOperationException());
// When the root inode is asked for, return the directory
InodeView dir = inodes.get(0);
when(mockInodeStore.get(eq(0L))).thenReturn(Optional.of(new InodeDirectory((InodeDirectoryView) dir)));
CoreMasterContext masterContext = MasterTestUtils.testMasterContext(new NoopJournalSystem(), null, () -> new HeapBlockStore(), x -> mockInodeStore);
mMetricsMaster = new MetricsMasterFactory().create(mRegistry, masterContext);
mBlockMaster = new DefaultBlockMaster(mMetricsMaster, masterContext, mClock, ExecutorServiceFactories.constantExecutorServiceFactory(mExecutorService));
mRegistry.add(BlockMaster.class, mBlockMaster);
// Prepare the FileSystemMaster for the backup operation
FileSystemMaster fsMaster = new DefaultFileSystemMaster(mBlockMaster, masterContext, ExecutorServiceFactories.constantExecutorServiceFactory(mExecutorService));
mRegistry.add(FileSystemMaster.class, fsMaster);
mRegistry.start(true);
// Finish backup operation
BackupManager manager = new BackupManager(mRegistry);
File backupDir = AlluxioTestDirectory.createTemporaryDirectory("backup-dir");
File backupFile = new File(backupDir, "1.backup");
AtomicLong counter = new AtomicLong(0L);
// No exception means the RocksInodeStore iterator is not used
manager.backup(new FileOutputStream(backupFile), counter);
}
Aggregations