Class MultiFileWriter
java.lang.Object
org.elasticsearch.common.util.concurrent.AbstractRefCounted
org.elasticsearch.indices.recovery.MultiFileWriter
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,Releasable
,RefCounted
public class MultiFileWriter extends AbstractRefCounted implements Releasable
-
Constructor Summary
Constructors Constructor Description MultiFileWriter(Store store, RecoveryState.Index indexState, java.lang.String tempFilePrefix, org.apache.logging.log4j.Logger logger, java.lang.Runnable ensureOpen)
-
Method Summary
Modifier and Type Method Description void
close()
protected void
closeInternal()
org.apache.lucene.store.IndexOutput
getOpenIndexOutput(java.lang.String key)
org.apache.lucene.store.IndexOutput
openAndPutIndexOutput(java.lang.String fileName, StoreFileMetadata metadata, Store store)
Creates anIndexOutput
for the given file name.org.apache.lucene.store.IndexOutput
removeOpenIndexOutputs(java.lang.String name)
remove andIndexOutput
for a given file.void
renameAllTempFiles()
renames all temporary files to their true name, potentially overriding existing filesvoid
writeFileChunk(StoreFileMetadata fileMetadata, long position, BytesReference content, boolean lastChunk)
Methods inherited from class org.elasticsearch.common.util.concurrent.AbstractRefCounted
alreadyClosed, decRef, getName, incRef, refCount, tryIncRef
-
Constructor Details
-
MultiFileWriter
public MultiFileWriter(Store store, RecoveryState.Index indexState, java.lang.String tempFilePrefix, org.apache.logging.log4j.Logger logger, java.lang.Runnable ensureOpen)
-
-
Method Details
-
writeFileChunk
public void writeFileChunk(StoreFileMetadata fileMetadata, long position, BytesReference content, boolean lastChunk) throws java.io.IOException- Throws:
java.io.IOException
-
getOpenIndexOutput
public org.apache.lucene.store.IndexOutput getOpenIndexOutput(java.lang.String key) -
removeOpenIndexOutputs
public org.apache.lucene.store.IndexOutput removeOpenIndexOutputs(java.lang.String name)remove andIndexOutput
for a given file. It is the caller's responsibility to close it -
openAndPutIndexOutput
public org.apache.lucene.store.IndexOutput openAndPutIndexOutput(java.lang.String fileName, StoreFileMetadata metadata, Store store) throws java.io.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:
java.io.IOException
-
close
public void close()- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfaceReleasable
-
closeInternal
protected void closeInternal()- Specified by:
closeInternal
in classAbstractRefCounted
-
renameAllTempFiles
public void renameAllTempFiles() throws java.io.IOExceptionrenames all temporary files to their true name, potentially overriding existing files- Throws:
java.io.IOException
-