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

Reply via email to