[
https://issues.apache.org/jira/browse/CASSANDRA-10681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15010652#comment-15010652
]
Sam Tunnicliffe commented on CASSANDRA-10681:
---------------------------------------------
The issue with this is that it serializes the building of all indexes,
regardless of whether they're SASI indexes or not. So whereas previously all
indexes for a table were built in a single pass over the data, a separate
iteration is required for each. This could be a problem wherever multiple
indexes are defined for a table & indexes need to be rebuilt, so when new
SSTables are added via streaming or sideloading, or during a user-requested
rebuild from nodetool.
> make index building pluggable via IndexBuildTask
> ------------------------------------------------
>
> Key: CASSANDRA-10681
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10681
> Project: Cassandra
> Issue Type: Sub-task
> Components: Local Write-Read Paths
> Reporter: Pavel Yaskevich
> Assignee: Pavel Yaskevich
> Priority: Minor
> Labels: sasi
> Fix For: 3.x
>
>
> Currently index building assumes one and only way to build all of the indexes
> - through SecondaryIndexBuilder - which merges all of the sstables together,
> collates columns etc. Such works fine for built-in indexes but not for SASI
> since it's attaches to every SSTable individually. We need a "IndexBuildTask"
> interface (based on CompactionInfo.Holder) to be returned from Index on
> demand to give power to SI interface implementers to decide how build should
> work. This might be less effective for CassandraIndex, since this effectively
> means that collation will have to be done multiple times on the same data,
> but nevertheless is a good compromise for clean interface to outside world.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)