[ 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)