[ https://issues.apache.org/jira/browse/CASSANDRA-12039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15397457#comment-15397457 ]
Sergio Bossa commented on CASSANDRA-12039: ------------------------------------------ [~beobal], I've pushed one more commit addressing your latest points, and I'll look into writing any dtests. Also: bq. One thing that we should note is that when pre-join tasks are executed as a result of manually joining (i.e. start in write survey mode, then join via nodetool/JMX), the value of the bootstrap flag is always false. Obviously, this might not always be accurate as a node can perfectly well start up in survey mode but also perform bootstrap before an operator joins it. Short of exposing the overload of joinRing and extending the nodetool join command, I'm not sure there's any practical solution to this. I think we could actually leverage the bootstrap state, which is left pending at {{IN_PROGRESS}} during write survey and then set at {{COMPLETED}} when finally joining. But, I'm not really sure why the write survey mode works that way, that is why the bootstrap state is left in progress, and I don't want to rely on some unintentional behaviour: any ideas, [~brandon.williams]? > Add an index callback to be notified post bootstrap and before joining the > ring > ------------------------------------------------------------------------------- > > Key: CASSANDRA-12039 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12039 > Project: Cassandra > Issue Type: New Feature > Reporter: Sergio Bossa > Assignee: Sergio Bossa > > Custom index implementations might need to be notified when the node finishes > bootstrapping in order to execute some blocking tasks before the node itself > goes into NORMAL state. > This is a proposal to add such functionality, which should roughly require > the following: > 1) Add a {{getPostBootstrapTask}} callback to the {{Index}} interface. > 2) Add an {{executePostBootstrapBlockingTasks}} method to > {{SecondaryIndexManager}} calling into the previously mentioned callback. > 3) Hook that into {{StorageService#joinTokenRing}}. > Thoughts? -- This message was sent by Atlassian JIRA (v6.3.4#6332)