cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9705) Simplify some of 8099's concrete implementations
Date Fri, 10 Jul 2015 16:34:05 GMT


Sylvain Lebresne commented on CASSANDRA-9705:

Pushed a branch for this [here|]. It removes
all use of flyweights, and basically rewrite all Row, Cell and Partition implementations.
The result is admittedly a lot simpler and less error prone. I suspect it's also faster but
haven't looked at that much yet.

The patch is actually not very small because the change of implementation allowed a lot of
related simplifications. Hopefully this won't be too disruptive on other patches, but I'd
still be happy if we can get that in as fast as possible, if only because I'd rather not spend
too much time fixing unit tests and dtests that are fixed with this or easier to.

Concretely there is 3 commits:
* the first one update the implementations of {{ClusteringPrefix}} and its subclasses. That
one is pretty simple and self-contained.
* the second one is the main meat. It rewrites most of the rest and was unfortunately much
harder to split in smaller pieces.
* the last one if kind of a follow-up: we're currently using {{LivenessInfo}} for both {{Row}}
and {{Cell}}, but after the previous patches it's barely used by {{Cell}}. So that 3rd patch
make it be only for rows, which make things cleaner/simpler anyways.

I plan on doing another review of the whole patch on Monday and to add comments where they
are missing so there may be a few minor updates then, but it's basically ready for review

> Simplify some of 8099's concrete implementations
> ------------------------------------------------
>                 Key: CASSANDRA-9705
>                 URL:
>             Project: Cassandra
>          Issue Type: Sub-task
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>             Fix For: 3.0 beta 1
> As mentioned in the ticket comments, some of the concrete implementations (for Cell,
Row, Clustering, PartitionUpdate, ...) of the initial patch for CASSANDRA-8099 are more complex
than they should be (the use of flyweight is typically probably ill-fitted), which probably
has performance consequence. This ticket is to track the refactoring/simplifying those implementation
(mainly by removing the use of flyweights and simplifying accordingly).

This message was sent by Atlassian JIRA

View raw message