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

Sylvain Lebresne commented on CASSANDRA-10690:
----------------------------------------------

I'll give my very personal opinion for what it's worth: the 2ndary API has been 
entirely rewritten for 3.0 with a fair emphasis on custom indexes and, to the 
best of my knowledge, no realistic implementation using it has yet been 
finished. So I think it's silly to call that API anything else that a beta and 
we'll be lucky if this is the only "problem" found by people actually trying to 
use it in real life.

So, _in theory_, I agree that if we want to provide meaningful backward 
compatibility, then no (breaking) change should be done before 4.0. But in 
practice, I don't think promising compatibility on that API for a relatively 
long period of time when no-one has used/tried it yet is really a service to 
our users. So that I'd personally prefer not trying to provide backward 
compatibility just yet and wait until it's been actually used to promise more 
than that (of course, we can still avoid doing change there for no good 
reason). Which is why I'd be equally fine pushing in 3.1 than 3.2 really.

But with that said, I don't really care all that much and if that opinion 
doesn't resonate and we prefer letting things as is and not changing anything 
until 4.0, so be it.


> Remove unclear indexes() method from 2ndary index API
> -----------------------------------------------------
>
>                 Key: CASSANDRA-10690
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10690
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local Write-Read Paths
>            Reporter: Tyler Hobbs
>             Fix For: 3.2
>
>
> The new secondary index API does not notify indexes of single-row or slice 
> deletions unless specific columns are deleted.  I believe the problem is that 
> in {{SecondaryIndexManager.newUpdateTransaction()}}, we skip indexes unless 
> {{index.indexes(update.columns())}}.  When no columns are specified in the 
> the deletion, {{update.columns()}} is empty, which causes all indexes to be 
> skipped.
> I think the correct fix is to do something like this in the 
> {{ModificationStatement}} constructor:
> {code}
> if (type == StatementType.DELETE && modifiedColumns.isEmpty())
>     modifiedColumns = cfm.partitionColumns();
> {code}
> However, I'm not sure if that may have unintended side-effects.  What do you 
> think, [~slebresne]?



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

Reply via email to