cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-6477) Materialized Views (was: Global Indexes)
Date Fri, 24 Jul 2015 15:38:08 GMT

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

Benedict edited comment on CASSANDRA-6477 at 7/24/15 3:37 PM:
--------------------------------------------------------------

OK, so we have deadlock in that case. The apply of the batchlog happens on a separate writeOrder
group. The earlier group could be marked as "blocking" in which case it is permitted to take
any necessary action to terminate, but a later (or even simply different keyspace) group is
_not_ marked blocking and we depend on it, then the system will lock up.

We could also do with some comments around things like: 

{code}

        if (stage != Stage.MATERIALIZED_VIEW_MUTATION)
        {
            for (WriteResponseHandlerWrapper wrapper : wrappers)
                wrapper.handler.get();
        }
{code}

Without any context, it's kind of hard to spot let alone understand the important semantic
difference and why it is there.

In general, I'd prefer more comments around this feature.


was (Author: benedict):
OK, so we have deadlock in that case. The apply of the batchlog happens on a separate writeOrder
group. The earlier group could be marked as "blocking" in which case it is permitted to take
any necessary action to terminate, but a later (or even simply different keyspace) group is
_not_ marked blocking and we depend on it, then the system will lock up. In fact, we have
this twice: once for batchlog, once for the MV mutation (if local).

We could also do with some comments around things like: 

{code}

        if (stage != Stage.MATERIALIZED_VIEW_MUTATION)
        {
            for (WriteResponseHandlerWrapper wrapper : wrappers)
                wrapper.handler.get();
        }
{code}

Without any context, it's kind of hard to spot let alone understand the important semantic
difference and why it is there.

In general, I'd prefer more comments around this feature.

> Materialized Views (was: Global Indexes)
> ----------------------------------------
>
>                 Key: CASSANDRA-6477
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6477
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API, Core
>            Reporter: Jonathan Ellis
>            Assignee: Carl Yeksigian
>              Labels: cql
>             Fix For: 3.0 beta 1
>
>         Attachments: test-view-data.sh, users.yaml
>
>
> Local indexes are suitable for low-cardinality data, where spreading the index across
the cluster is a Good Thing.  However, for high-cardinality data, local indexes require querying
most nodes in the cluster even if only a handful of rows is returned.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message