public class InodeTreePersistentState extends java.lang.Object implements Journaled
| Constructor and Description |
|---|
InodeTreePersistentState(InodeStore inodeStore,
InodeLockManager lockManager,
TtlBucketList ttlBucketList) |
| Modifier and Type | Method and Description |
|---|---|
void |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
File.DeleteFileEntry entry)
Deletes an inode (may be either a file or directory).
|
long |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
File.NewBlockEntry entry)
Allocates and returns the next block ID for the indicated inode.
|
void |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
File.RenameEntry entry)
Renames an inode.
|
void |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
File.SetAclEntry entry)
Sets an ACL for an inode.
|
void |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
File.UpdateInodeDirectoryEntry entry)
Updates an inode directory's state.
|
void |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
File.UpdateInodeEntry entry)
Updates an inode's state.
|
void |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
File.UpdateInodeFileEntry entry)
Updates an inode file's state.
|
void |
applyAndJournal(java.util.function.Supplier<JournalContext> context,
MutableInode<?> inode,
java.lang.String path)
Adds an inode to the inode tree.
|
File.UpdateInodeEntry |
applyInodeAccessTime(long inodeId,
long accessTime)
Updates last access time for Inode without journaling.
|
CheckpointName |
getCheckpointName() |
long |
getInodeCount() |
java.util.Iterator<Journal.JournalEntry> |
getJournalEntryIterator() |
java.util.Set<java.lang.Long> |
getPinnedInodeFileIds() |
java.util.Set<java.lang.Long> |
getReplicationLimitedFileIds() |
InodeDirectory |
getRoot() |
java.util.Set<java.lang.Long> |
getToBePersistedIds() |
boolean |
processJournalEntry(Journal.JournalEntry entry) |
void |
resetState() |
void |
restoreFromCheckpoint(CheckpointInputStream input) |
void |
writeToCheckpoint(java.io.OutputStream output) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitapplyAndJournalpublic InodeTreePersistentState(InodeStore inodeStore, InodeLockManager lockManager, TtlBucketList ttlBucketList)
inodeStore - file store which holds inode metadatalockManager - manager for inode locksttlBucketList - reference to the ttl bucket list so that the list can be updated when the
inode tree is modifiedpublic java.util.Set<java.lang.Long> getReplicationLimitedFileIds()
public InodeDirectory getRoot()
public java.util.Set<java.lang.Long> getPinnedInodeFileIds()
public long getInodeCount()
public java.util.Set<java.lang.Long> getToBePersistedIds()
PersistenceState.TO_BE_PERSISTEDpublic void applyAndJournal(java.util.function.Supplier<JournalContext> context, File.DeleteFileEntry entry)
context - journal context supplierentry - delete file entrypublic long applyAndJournal(java.util.function.Supplier<JournalContext> context, File.NewBlockEntry entry)
context - journal context supplierentry - new block entrypublic void applyAndJournal(java.util.function.Supplier<JournalContext> context, File.RenameEntry entry)
context - journal context supplierentry - rename entrypublic void applyAndJournal(java.util.function.Supplier<JournalContext> context, File.SetAclEntry entry)
context - journal context supplierentry - set acl entrypublic void applyAndJournal(java.util.function.Supplier<JournalContext> context, File.UpdateInodeEntry entry)
context - journal context supplierentry - update inode entrypublic void applyAndJournal(java.util.function.Supplier<JournalContext> context, File.UpdateInodeDirectoryEntry entry)
context - journal context supplierentry - update inode directory entrypublic void applyAndJournal(java.util.function.Supplier<JournalContext> context, File.UpdateInodeFileEntry entry)
context - journal context supplierentry - update inode file entrypublic void applyAndJournal(java.util.function.Supplier<JournalContext> context, MutableInode<?> inode, java.lang.String path)
context - journal context supplierinode - an inode to add and create a journal entry forpath - path of the new inodepublic File.UpdateInodeEntry applyInodeAccessTime(long inodeId, long accessTime)
inodeId - the id of the target inodeaccessTime - the new value for last access timepublic boolean processJournalEntry(Journal.JournalEntry entry)
processJournalEntry in interface Journaledpublic void resetState()
resetState in interface Journaledpublic void writeToCheckpoint(java.io.OutputStream output)
throws java.io.IOException,
java.lang.InterruptedException
writeToCheckpoint in interface CheckpointedwriteToCheckpoint in interface Journaledjava.io.IOExceptionjava.lang.InterruptedExceptionpublic void restoreFromCheckpoint(CheckpointInputStream input) throws java.io.IOException
restoreFromCheckpoint in interface CheckpointedrestoreFromCheckpoint in interface Journaledjava.io.IOExceptionpublic java.util.Iterator<Journal.JournalEntry> getJournalEntryIterator()
getJournalEntryIterator in interface JournalEntryIterablepublic CheckpointName getCheckpointName()
getCheckpointName in interface CheckpointedCopyright © 2019. All Rights Reserved.