Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
Availability - Unavailable
-
Low
-
Normal
-
Fuzz Test
-
All
-
None
-
Description
IndexStatusManager is responsible for knowing what SAI indexes are queryable across the ring, endpoint by endpoint. There are two statuses that SAI treats as queryable, but it should not treat them equally. BUILD_SUCCEEDED means the index is definitely available and should be able to serve queries without issue. UNKNOWN indicates that the status of the index hasn’t propagated yet to this coordinator. It may be just fine, or it may not be. If it isn’t a query will not return incorrect results, but it will fail. If there are enough BUILD_SUCCEEDED replicas, we should ignore UNKNOWN replicas and maximize availability. If the UNKNOWN replica is going to become BUILD_SUCCEEDED shortly, it will happily start taking requests at that point and spread the load. If not, we’ll avoid futile attempts to query it too early.