Currently, there are three buffer copies in ChunkOutputStream
- from byte to ByteBuffer, and
- from ByteBuffer to ByteString.
- from ByteString to ByteBuffer for checskum computation
We should eliminate the ByteBuffer in the middle.
For zero copy io, we should support WritableByteChannel instead of OutputStream. It won't be done in this JIRA.