[
https://issues.apache.org/jira/browse/CASSANDRA-7692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14158570#comment-14158570
]
Robert Stupp edited comment on CASSANDRA-7692 at 10/3/14 10:54 PM:
-------------------------------------------------------------------
I thought a bit about using the Java Driver for the UDF with user-types,
tuple-types and collections.
Although I like the idea to reuse code in Java Driver, it feels a bit strange
to use the Java Driver for that due to the Netty major version mismatch in C*
and the driver.
I see these options:
# Move java-driver to some {{$CASSANDRA_HOME/lib/internal-only}} directory. But
that might not work for all configurations (e.g. embedded C* and use of another
Java driver version)
# Wait until the [netty update
(JAVA-352)|https://datastax-oss.atlassian.net/browse/JAVA-352] is done. But
ties both the driver and C* to the same Netty version - forever.
# Basically copy UDT, tuple and collection serialization code from java driver
and adopt it (refactor to org.apache.cassandra..., remove unused code, etc):
Feels like the easiest solution. No dependency foo. Can reuse existing schema
information in {{KSMetaData}} / {{UTMetaData}}
# Split the java driver into separate artifacts. Feels complex. Seems to be lot
of work and makes driver code more complex.
I'd propose option 3.
Also AFAIK {{ListType}}, {{SetType}} and {{MapType}} are already able to
serialize with (primitive) types.
So we could add that functionality to {{UserType}} and {{TupleType}} - maybe
via different methods since UT and TT currently serialize using
{{BytesSerializer}}.
Just for information - common dependencies of java-driver and C* are (driver
branch '2.1' and C* branch 'trunk' as of 2014/10/03):
||library||Java Driver||C*
|snappy-java|1.0.5|1.0.5.2
|lz4|1.2.0|1.2.0
|codahale-metrics|3.0.2|(C* might use that in future)
|netty|3.9.0.Final|4.0.20.Final
|guava|16.0.1|16.0
WDYT?
was (Author: snazy):
I thought a bit about using the Java Driver for the UDF with user-types,
tuple-types and collections.
Although I like the idea to reuse code in Java Driver, it feels a bit strange
to use the Java Driver for that due to the Netty major version mismatch in C*
and the driver.
I see these options:
1. Move java-driver to some {{$CASSANDRA_HOME/lib/internal-only}} directory.
But that might not work for all configurations (e.g. embedded C* and use of
another Java driver version)
1. Wait until the [netty update
(JAVA-352)|https://datastax-oss.atlassian.net/browse/JAVA-352] is done. But
ties both the driver and C* to the same Netty version - forever.
1. Basically copy UDT, tuple and collection serialization code from java driver
and adopt it (refactor to org.apache.cassandra..., remove unused code, etc):
Feels like the easiest solution. No dependency foo. Can reuse existing schema
information in {{KSMetaData}} / {{UTMetaData}}
1. Split the java driver into separate artifacts. Feels complex. Seems to be
lot of work and makes driver code more complex.
I'd propose option 3.
Also AFAIK {{ListType}}, {{SetType}} and {{MapType}} are already able to
serialize with (primitive) types.
So we could add that functionality to {{UserType}} and {{TupleType}} - maybe
via different methods since UT and TT currently serialize using
{{BytesSerializer}}.
Just for information - common dependencies of java-driver and C* are:
||library||Java Driver||C*
|snappy-java|1.0.5|1.0.5.2
|lz4|1.2.0|1.2.0
|codahale-metrics|3.0.2|(C* might use that in future)
|netty|3.9.0.Final|4.0.20.Final
|guava|16.0.1|16.0
WDYT?
> Upgrade Cassandra Java Driver to 2.1
> ------------------------------------
>
> Key: CASSANDRA-7692
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7692
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Robert Stupp
> Assignee: Robert Stupp
> Fix For: 3.0
>
> Attachments: 7692-2.1.txt, 7692-3.0.txt, 7692-3.0v2.txt
>
>
> UDFs (CASSANDRA-7563) requires Java Driver that supports User Types and new
> collection features (at least Java Driver 2.1).
> May also be handled separately if e.g. Hadoop stuff requires this (follow-up
> to CASSANDRA-7618).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)