Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Avro >> mail # dev >> Anyone started work on RPC implementation for avro C ?


Copy link to this message
-
Re: Anyone started work on RPC implementation for avro C ?
> One thing to clarify - in looking over comments for 777, there was mention of JIRA-778 ( schema compiler ) code overlap. I'd like to focus on just the RPC mechanism in the patch's rpc.c; My understanding of AVRO is using a compiled schema is an optimization but not a requirement for AVRO's rpc. Or am I missing something ( that I'll probably discover as I dig in more ) ?

Unfortunately the schema compiler in AVRO-778 has languished a bit; with the new value API, and the generic value class (described in [1]), there was less of a need for it.  Parts of that patch series have been applied separately, though, since they were useful for implementing the generic value class.  But as of right now, there's no schema compilation or code generation in the C bindings.

So at the very least, the AVRO-777 patch should be updated to use the new value API instead of the deprecated datum API.  AVRO-777 contains an AVDL compiler using the same Velocity templating engine that's used on the Java side of things.  AVRO-778 contains the beginnings of a schema compiler that was based on the C preprocessor.  It had fewer (i.e., no) dependencies to install, but it's kind of messy using the preprocessor as a templating language.  So you have a couple of options there.  I'll try to rebase the patch series from AVRO-778 so that it applies cleanly to trunk, in case you want to use parts of it.

–doug

[1] http://avro.apache.org/docs/current/api/c/index.html#_avro_values
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB