Package org.apache.sysds.runtime.util
Class FastBufferedDataOutputStream
- java.lang.Object
 - 
- java.io.OutputStream
 - 
- java.io.FilterOutputStream
 - 
- org.apache.sysds.runtime.util.FastBufferedDataOutputStream
 
 
 
 
- 
- All Implemented Interfaces:
 Closeable,DataOutput,Flushable,AutoCloseable,MatrixBlockDataOutput
public class FastBufferedDataOutputStream extends FilterOutputStream implements DataOutput, MatrixBlockDataOutput
This buffered output stream is essentially a merged version of BufferedOutputStream and DataOutputStream, wrt SystemDS requirements. Micro-benchmarks showed a 25% performance improvement for local write binary block due to the following advantages: - 1) unsynchronized buffered output stream (not required in SystemDS since single writer) - 2) single output buffer (avoid two-level buffers of individual streams) - 3) specific support for writing double arrays in a blockwise fashion 
- 
- 
Constructor Summary
Constructors Constructor Description FastBufferedDataOutputStream(OutputStream out)FastBufferedDataOutputStream(OutputStream out, int size) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidflush()voidwrite(byte[] b, int off, int len)voidwrite(int b)voidwriteBoolean(boolean v)voidwriteByte(int v)voidwriteBytes(String s)voidwriteChar(int v)voidwriteChars(String s)voidwriteDouble(double v)voidwriteDoubleArray(int len, double[] varr)Writes the double array of a dense block to the data output.voidwriteFloat(float v)voidwriteInt(int v)voidwriteLong(long v)voidwriteShort(int v)voidwriteSparseRows(int rlen, SparseBlock rows)Writes the sparse rows array of a sparse block to the data output.voidwriteUTF(String s)- 
Methods inherited from class java.io.FilterOutputStream
write 
- 
Methods inherited from class java.io.OutputStream
nullOutputStream 
- 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
- 
Methods inherited from interface java.io.DataOutput
write 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
FastBufferedDataOutputStream
public FastBufferedDataOutputStream(OutputStream out)
 
- 
FastBufferedDataOutputStream
public FastBufferedDataOutputStream(OutputStream out, int size)
 
 - 
 
- 
Method Detail
- 
write
public void write(int b) throws IOException- Specified by:
 writein interfaceDataOutput- Overrides:
 writein classFilterOutputStream- Throws:
 IOException
 
- 
write
public void write(byte[] b, int off, int len) throws IOException- Specified by:
 writein interfaceDataOutput- Overrides:
 writein classFilterOutputStream- Throws:
 IOException
 
- 
flush
public void flush() throws IOException- Specified by:
 flushin interfaceFlushable- Overrides:
 flushin classFilterOutputStream- Throws:
 IOException
 
- 
close
public void close() throws IOException- Specified by:
 closein interfaceAutoCloseable- Specified by:
 closein interfaceCloseable- Overrides:
 closein classFilterOutputStream- Throws:
 IOException
 
- 
writeBoolean
public void writeBoolean(boolean v) throws IOException- Specified by:
 writeBooleanin interfaceDataOutput- Throws:
 IOException
 
- 
writeInt
public void writeInt(int v) throws IOException- Specified by:
 writeIntin interfaceDataOutput- Throws:
 IOException
 
- 
writeLong
public void writeLong(long v) throws IOException- Specified by:
 writeLongin interfaceDataOutput- Throws:
 IOException
 
- 
writeDouble
public void writeDouble(double v) throws IOException- Specified by:
 writeDoublein interfaceDataOutput- Throws:
 IOException
 
- 
writeFloat
public void writeFloat(float v) throws IOException- Specified by:
 writeFloatin interfaceDataOutput- Throws:
 IOException
 
- 
writeByte
public void writeByte(int v) throws IOException- Specified by:
 writeBytein interfaceDataOutput- Throws:
 IOException
 
- 
writeShort
public void writeShort(int v) throws IOException- Specified by:
 writeShortin interfaceDataOutput- Throws:
 IOException
 
- 
writeBytes
public void writeBytes(String s) throws IOException
- Specified by:
 writeBytesin interfaceDataOutput- Throws:
 IOException
 
- 
writeChar
public void writeChar(int v) throws IOException- Specified by:
 writeCharin interfaceDataOutput- Throws:
 IOException
 
- 
writeChars
public void writeChars(String s) throws IOException
- Specified by:
 writeCharsin interfaceDataOutput- Throws:
 IOException
 
- 
writeUTF
public void writeUTF(String s) throws IOException
- Specified by:
 writeUTFin interfaceDataOutput- Throws:
 IOException
 
- 
writeDoubleArray
public void writeDoubleArray(int len, double[] varr) throws IOExceptionDescription copied from interface:MatrixBlockDataOutputWrites the double array of a dense block to the data output.- Specified by:
 writeDoubleArrayin interfaceMatrixBlockDataOutput- Parameters:
 len- ?varr- ?- Throws:
 IOException- if IOException occurs
 
- 
writeSparseRows
public void writeSparseRows(int rlen, SparseBlock rows) throws IOExceptionDescription copied from interface:MatrixBlockDataOutputWrites the sparse rows array of a sparse block to the data output.- Specified by:
 writeSparseRowsin interfaceMatrixBlockDataOutput- Parameters:
 rlen- ?rows- sparse block- Throws:
 IOException- if IOException occurs
 
 - 
 
 -