Class MultiFileWriter
java.lang.Object
org.elasticsearch.core.AbstractRefCounted
org.elasticsearch.indices.recovery.MultiFileWriter
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.elasticsearch.core.RefCounted
,org.elasticsearch.core.Releasable
public class MultiFileWriter
extends org.elasticsearch.core.AbstractRefCounted
implements org.elasticsearch.core.Releasable
-
Constructor Summary
ConstructorDescriptionMultiFileWriter(Store store, RecoveryState.Index indexState, String tempFilePrefix, org.apache.logging.log4j.Logger logger, Runnable ensureOpen)
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
protected void
org.apache.lucene.store.IndexOutput
getOpenIndexOutput(String key)
org.apache.lucene.store.IndexOutput
openAndPutIndexOutput(String fileName, StoreFileMetadata metadata, Store store)
Creates anIndexOutput
for the given file name.org.apache.lucene.store.IndexOutput
removeOpenIndexOutputs(String name)
remove andIndexOutput
for a given file.void
renames all temporary files to their true name, potentially overriding existing filesvoid
writeFileChunk(StoreFileMetadata fileMetadata, long position, ReleasableBytesReference content, boolean lastChunk)
Methods inherited from class org.elasticsearch.core.AbstractRefCounted
alreadyClosed, decRef, getName, incRef, refCount, touch, tryIncRef
-
Constructor Details
-
MultiFileWriter
public MultiFileWriter(Store store, RecoveryState.Index indexState, String tempFilePrefix, org.apache.logging.log4j.Logger logger, Runnable ensureOpen)
-
-
Method Details
-
writeFileChunk
public void writeFileChunk(StoreFileMetadata fileMetadata, long position, ReleasableBytesReference content, boolean lastChunk) throws IOException- Throws:
IOException
-
getOpenIndexOutput
-
removeOpenIndexOutputs
remove andIndexOutput
for a given file. It is the caller's responsibility to close it -
openAndPutIndexOutput
public org.apache.lucene.store.IndexOutput openAndPutIndexOutput(String fileName, StoreFileMetadata metadata, Store store) throws IOExceptionCreates anIndexOutput
for the given file name. Note that the IndexOutput actually point at a temporary file.Note: You can use
getOpenIndexOutput(String)
with the same filename to retrieve the same IndexOutput at a later stage- Throws:
IOException
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceorg.elasticsearch.core.Releasable
-
closeInternal
protected void closeInternal()- Specified by:
closeInternal
in classorg.elasticsearch.core.AbstractRefCounted
-
renameAllTempFiles
renames all temporary files to their true name, potentially overriding existing files- Throws:
IOException
-