cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-10690) Remove unclear indexes() method from 2ndary index API
Date Wed, 18 Nov 2015 15:24:11 GMT


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:
>             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}}
> {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

View raw message