Class RateLimitedDirectoryWrapper
- All Implemented Interfaces:
Closeable,AutoCloseable
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.store.Directory
Directory.IndexInputSlicer -
Field Summary
Fields inherited from class org.apache.lucene.store.FilterDirectory
in -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCopies the file src toDirectoryto under the new file name dest.createOutput(String name, IOContext context) Creates a new, empty file in the directory with the given name.createSlicer(String name, IOContext context) Creates anDirectory.IndexInputSlicerfor the given file name.getMaxWriteMBPerSec(IOContext.Context context) voidsetMaxWriteMBPerSec(Double mbPerSec, IOContext.Context context) Sets the maximum (approx) MB/sec allowed by all write IO performed byIndexOutputcreated with the givenIOContext.Context.voidsetRateLimiter(RateLimiter mergeWriteRateLimiter, IOContext.Context context) Sets the rate limiter to be used to limit (approx) MB/sec allowed by all IO performed with the givencontext.Methods inherited from class org.apache.lucene.store.FilterDirectory
clearLock, close, deleteFile, fileExists, fileLength, getDelegate, getLockFactory, getLockID, listAll, makeLock, openInput, setLockFactory, sync, toStringMethods inherited from class org.apache.lucene.store.Directory
ensureOpen
-
Constructor Details
-
RateLimitedDirectoryWrapper
-
-
Method Details
-
createOutput
Description copied from class:DirectoryCreates a new, empty file in the directory with the given name. Returns a stream writing this file.- Overrides:
createOutputin classFilterDirectory- Throws:
IOException
-
createSlicer
Description copied from class:DirectoryCreates anDirectory.IndexInputSlicerfor the given file name. IndexInputSlicer allows otherDirectoryimplementations to efficiently open one or more slicedIndexInputinstances from a single file handle. The underlying file handle is kept open until theDirectory.IndexInputSliceris closed.- Must throw
FileNotFoundExceptionif the file does not exist (notjava.nio.file.NoSuchFileExceptionof Java 7).- Overrides:
createSlicerin classDirectory- Throws:
IOException- if anIOExceptionoccurs
- Must throw
-
copy
Description copied from class:DirectoryCopies the file src toDirectoryto under the new file name dest.If you want to copy the entire source directory to the destination one, you can do so like this:
Directory to; // the directory to copy to for (String file : dir.listAll()) { dir.copy(to, file, newFile, IOContext.DEFAULT); // newFile can be either file, or a new name }NOTE: this method does not check whether dest exist and will overwrite it if it does.
- Overrides:
copyin classDirectory- Throws:
IOException
-
setMaxWriteMBPerSec
Sets the maximum (approx) MB/sec allowed by all write IO performed byIndexOutputcreated with the givenIOContext.Context. Passnullto have no limit.NOTE: For already created
IndexOutputinstances there is no guarantee this new rate will apply to them; it will only be guaranteed to apply for new createdIndexOutputinstances.NOTE: this is an optional operation and might not be respected by all Directory implementations. Currently only
bufferedDirectory implementations use rate-limiting.- Throws:
IllegalArgumentException- if context isnullAlreadyClosedException- if theDirectoryis already closed
-
setRateLimiter
Sets the rate limiter to be used to limit (approx) MB/sec allowed by all IO performed with the givencontext. Passnullto have no limit.Passing an instance of rate limiter compared to setting it using
setMaxWriteMBPerSec(Double, IOContext.Context)allows to use the same limiter instance across several directories globally limiting IO across them.- Throws:
IllegalArgumentException- if context isnullAlreadyClosedException- if theDirectoryis already closed
-
getMaxWriteMBPerSec
- Throws:
IllegalArgumentException- if context isnullAlreadyClosedException- if theDirectoryis already closed
-