cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9894) Serialize the header only once per message
Date Thu, 06 Aug 2015 14:38:04 GMT


Benedict commented on CASSANDRA-9894:

bq.  I changed it to return the assembled list and then the test didn't pass.

Thanks. I've added two commits, one of which fixes this, and another which switched to delta
encoding, which naturally reduced both huge serialization paths into one, making it much cleaner.

bq. There are a couple of other methods like digest, selectOrderIterator, getComplex, and
getSimple that don't run. I get surprised pretty regularly so I would test those as well.

{{selectOrderIterator}} was already being tested, and I've added coverage for {{getComplex}}
and {{getSimple}}. 

However digest and {{getDroppedColumnDefinition}} I'm not so sure about: I kind of feel they
only make sense in a larger picture, i.e. in a dtest. I don't mind doing a noddy "check it
does what the code already says it does" kind of test, but I'm not convinced it adds value
by itself.

bq. Can you use a random with a known or logged seed for the test?

This turned out to be much more annoying. Because {{ThreadLocalRandom}} does not support setting
(or fetching) its seed, and regular Random has a more rubbish API - it does not support a
lot of useful methods. We should file a ticket for exposing easily reseeded/logged Random
with the full TLR API, I think.

> Serialize the header only once per message
> ------------------------------------------
>                 Key: CASSANDRA-9894
>                 URL:
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Core
>            Reporter: Sylvain Lebresne
>            Assignee: Benedict
>             Fix For: 3.0 beta 1
> One last improvement I'd like to do on the serialization side is that we currently serialize
the {{SerializationHeader}} for each partition. That header contains the serialized columns
in particular and for range queries, serializing that for every partition is wasted (note
that it's only a problem for the messaging protocol as for sstable we only write the header
once per sstable).

This message was sent by Atlassian JIRA

View raw message