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 2015/07/10 18:34:05 UTC

[jira] [Commented] (CASSANDRA-9705) Simplify some of 8099's concrete implementations

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

Sylvain Lebresne commented on CASSANDRA-9705:
---------------------------------------------

Pushed a branch for this [here|https://github.com/pcmanus/cassandra/commits/9705]. 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 otherwise.



> Simplify some of 8099's concrete implementations
> ------------------------------------------------
>
>                 Key: CASSANDRA-9705
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9705
>             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
(v6.3.4#6332)