Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.2
-
None
Description
The recent attempt to make HBaseStore thread safe overlooked the utility class HBaseByteInterface. This class currently uses a single SpecificDatumReader and SpecificDatumWriter for the serialization of embedded records (schemas) within the schema. These reader and writer classes are not thread safe when used with a single schema (at least not yet with the current Avro library in use), much less when using multiple schema's (i.e. writer.setSchema(schema)).
I will attach a patch that makes proper (re)use of these writer and reader classes, as well as the closely related decoders and encoders. Some workarounds are provided that would be unnecessary with newer versions of Avro, but these can be removed whenever we update this library.
This class does not break compatibilty; the end result data in HBase is unchanged.