You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2018/09/10 10:09:00 UTC

[jira] [Commented] (CASSANDRA-14708) protocol v5 duration wire format is overly complex and awkward to implement for clients

    [ https://issues.apache.org/jira/browse/CASSANDRA-14708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16608961#comment-16608961 ] 

Sylvain Lebresne commented on CASSANDRA-14708:
----------------------------------------------

The duration time has been added primarily for doing aggregations over time, and if you want to aggregate things by months, you don't want that to be all messed up because you have to provide a time in nanoseconds which gives you no way to get proper month boundaries. Overall, we cannot use nanoseconds for duration in the way duration are currently implemented and used (including user visible duration values like {{3m2d5s}}).

I just don't think our duration type and the similarly-named Golang one have the same purpose. It might be a shame they have the same name, but well... 

I'll also note this all went in C* 3.10, so it's not like we can really change the goals of the duration type now even if we agreed this was a good idea (I don't).

 

> protocol v5 duration wire format is overly complex and awkward to implement for clients
> ---------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-14708
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14708
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Chris Bannister
>            Priority: Major
>
> Protocol V5 defines the duration type to be on the wire as months, days and nanoseconds. Days and months require a timezone to make sense of the duration and varies depending on from which they are applied for.
>  
> Go defines a [duration|https://golang.org/pkg/time/#Duration] type as nanoseconds in int64 which can represent ~290 years. Java [duration|https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html] does not have way to handle months.
>  
> I suggest that before 4.0 is release the duration format is converted to just be represented as nanoseconds.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org