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

Jonathan Ellis commented on CASSANDRA-749:
------------------------------------------

In support of the "nonlocal indexes are too slow" argument, I present as 
exhibit A google app engine.  From 
http://www.chariotsolutions.com/slides/pdfs/ete2009-GoogleUndertheCoversApp.pdf 
it appears that they use nonlocal indexes, and it's so slow that they've 
"improved" it by automatically retrying timed-out queries.

Local indexes may not scale well enough to be the only solution you ever need, 
but nonlocal indexes are too slow to be the only solution you ever need.

It also bothers me that nonlocal indexes with "recency" violate our "except in 
failure scenarios, readers see writes in ms" policy.  (There is a race: if a 
reader sees an "empty" cell, and fills it in before the write completes, it 
will be marked as empty until the recency expires.  So we've added a second 
layer of inconsistency on top of our existing one.)

To me the decisive argument is that if someone has a workload that really needs 
nonlocal indexes, they can build those in their app with very little 
performance difference, just the round trips from app server to cassandra 
coordinator node.  (Using the StorageProxy api would erase even this.)  Clients 
like lazyboy already automate this.

If you have a workload that is a good fit for local indexes (which is, as I've 
pointed out, at the very least "every workload in a cluster with less than some 
unknown number N of nodes") then there's no way to fake that from the client.

Finally, as I've noted, the query API should be index-implementation-agnostic, 
so implementing local indexes now doesn't preclude adding a 
PartitionedByColumnIndex later.

> Secondary indices for column families
> -------------------------------------
>
>                 Key: CASSANDRA-749
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-749
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Gary Dusbabek
>            Assignee: Gary Dusbabek
>            Priority: Minor
>             Fix For: 0.8
>
>         Attachments: 0001-simple-secondary-indices.patch, 
> views-discussion-2.txt, views-discussion.txt
>
>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to