Overall it looks good. Some nitpicks about class names:
1: ByteArrayInputBuffer -> NonSyncByteArrayInputStream, ByteArrayOutputBuffer -> NonSyncByteArrayOutputStream.
2. HiveDataInputBuffer -> NonSyncDataInputBuffer, HiveDataOutputBuffer -> NonSyncDataOutputBuffer
Also can we put the new classes into common/io instead of common?
Also, what is the reason that HiveDataInputBuffer inherits FilterInputStream, while HiveDataOutputBuffer inherits DataOutputStream?
We might have discussed it before but I cannot remember. Can you put some comments into the code?