Turns out when Reflection B finished, it went back and refreshed reflection C again… so Dremio did extra work but at least my data is consistent.
When I refresh dependent reflections of a PDS Dremio chooses an order to refresh them (which is very helpful) but seems to have gotten it wrong in this case:
Reflection A refreshes, no other reflections queued (good!).
Reflection B and C (which were both built using reflection A) are then queued.
Reflection C was chosen to refresh first, but uses reflection B to accelerate. (oh no…)
Reflection B is then refreshed…
Now when my queries are accelerated by reflection B they return different data to when queries are accelerated by reflection C.
The PDS refresh was done using api/catalog/refresh.
Any advice on how to proceed with this?