CASSANDRA-10130 fixes the 2i build management, but initialization failures are still not properly handled, most notably because:
- Initialization failures make the index non-queryable, but it can still be written to.
- Initialization failures can be recovered via full rebuilds.
Both points above are probably suboptimal because the initialization logic could be more complex than just an index build, hence it shouldn't be made recoverable via a simple rebuild, and could cause the index to be fully unavailable not just for reads, but for writes as well.
So, we should better handle initialization failures by:
- Allowing the index implementation to specify if unavailable for reads, writes, or both.
- Providing a proper method to recover, distinct from index rebuilds.