[
https://issues.apache.org/jira/browse/CASSANDRA-11990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15413135#comment-15413135
]
Pavel Yaskevich commented on CASSANDRA-11990:
---------------------------------------------
bq. Sure, this was already done: CASSANDRA-12374 and CASSANDRA-12378.
The branch you have in the previous comment still have all of the change from
dropping/rebuilding of the indexes.
bq. As far as I understood, SASI relies heavily on the fact that the tokens are
fixed size...
Yes, and that's exactly my point, let's keep it that way - relying that index
has *fixed-size long tokens*.
_If_ we were to keep all of the changes done to partitioner interface and
TokenTreeSerializationHelper it would
mean maintenance cost for no long term benefit, because once we go full
featured variable size tokens all of the
changes done to partitioner interface are going to be no longer required (will
have to be removed), because
index shouldn't care (at that point) about how exactly are tokens serialized
from it's point of view it's just going
to be comparable blob of bytes and we can use existing token serialization and
partitioner logic to deal with that.
bq. We can improve the situation with current abstraction by relying on the
fact that Partitioner is a singleton in DatabaseDescriptor so higher level
abstractions will never even see it.
We shouldn't make such assumptions, because everything is already polluted by
that as is, better option would be to get it from
the keyspace which indexes are attached to and keep that info somewhere on the
top level e.g. SASIndex plus push down specialized
comparator implementation like what we do with KeyFetcher right now...
bq. Rolling back everything will be a large chunk of work both now in order to
undo it (in combination with all
test changes and original PR changes) and re-introducing it shortly when we do
RP (or any other partitioner)
support.
Now imagine how much more work would that be to undo that in the future? I'm
not comfortable committing code
just because it's hard to get out from the patch. RP is as good as dead
currently and there no other viable partitioners,
which are going to benefit from the changes, so it's much easier to stick with
long tokens and get to variable-size in one hop instead of three.
> Address rows rather than partitions in SASI
> -------------------------------------------
>
> Key: CASSANDRA-11990
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11990
> Project: Cassandra
> Issue Type: Improvement
> Components: CQL, sasi
> Reporter: Alex Petrov
> Assignee: Alex Petrov
> Attachments: perf.pdf, size_comparison.png
>
>
> Currently, the lookup in SASI index would return the key position of the
> partition. After the partition lookup, the rows are iterated and the
> operators are applied in order to filter out ones that do not match.
> bq. TokenTree which accepts variable size keys (such would enable different
> partitioners, collections support, primary key indexing etc.),
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)