You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by Thomas Koch <th...@koch.ro> on 2010/11/25 04:48:50 UTC

possible road to avro?

Hi,

I've had a look into the avro code last week and believe that there is a way 
for a smooth transition from jute to avro. (ZOOKEEPER-102)

Avro has so called "encodings" which are in charge of translating java types 
to byte arrays. Avro includes a binary and a json encoding. It should be 
trivial (IMHO) to write an additional "jute" encoding that would be wire 
compatible to current jute.

Question is, whether this encoding should be developed inside ZooKeeper or as 
an avro contribution.

I'd propose to start with the avro migration after Netty has replaced NIO as 
the transport layer. Thus there would be less complexity in the affected code.

After there has been one ZK version with avro, one could start to also support 
the original avro binary encoding.

Since there are ZK clusters which can not be taken down, there must be a 
migration path for a running ZK cluster. This could be achieved by an encoding 
which wraps the avro binary encoding as well as the jute encoding. This 
wrapper could notice on a connect request which encoding is used by the client 
and choose the appropriate encoding for this session.

Best regards, 

Thomas Koch, http://www.koch.ro