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

T Jake Luciani commented on CASSANDRA-6477:
-------------------------------------------

bq. and not all of the rows have that column present (it's null) - what happens 
to rebuild then?

Well by definition then the MV row is {{null}} because part of the PK is null.  
But in the existing case this is a 1:1 relationship since we only allow one 
Nullable column in the PK of the MV (when base is null then view is null).  If 
we applied the same idea to multiple Nullable fields then we would end up with 
a much more confusing situation.  
Consider building from inconsistent replicas: 
   Let's say you put non-PK columns A and B into a Materialized view. Replica 1 
has All of Column A, Replica 2 has All of column B. The build would end up with 
no data in the MV.  You would need to subsequentally repair the data to build 
the MV.  

Also, in general I'm not sure ATM how to support things like multiple 
conflicting TTLs across non-PK columns. 




> 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)

Reply via email to