[ 
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)

Reply via email to