Details
-
Improvement
-
Resolution: Fixed
-
Critical
-
5.5.0
-
CX Sprint 100, CX Sprint 101, CX Sprint 102, CX Sprint 103
Description
Currently, at certain times, we need to perform synchronous flush operations over dataests/partitions. Such times include evicting a dataset, shutdown, disconnect bucket.
In such cases, there is no easy way to wait for precisely the flush operations scheduled. To workaround this, we call DatasetInfo.waitForIO which waits for all IO operations on all indexes in all partitions. To make things worse, subsequent merges that are scheduled due to the flush operation causes the IO counter to increase and we end up waiting for those as well.
We need a better way to do this for flush operations only per index/partition/dataset.
During two operations, the user can see the effect of this:
- Bucket Disconnect.
- Rebalance.
Both operations need to wait until the data that was in memory is persisted to disk.
Currently, they not only wait for flushes but also for merges that are triggered by those flushes.
Attachments
For Gerrit Dashboard: MB-28948 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
93744,13 | MB-27151, MB-28948 Ensure primary matches secondary on recovery | master | asterix-opt | Status: MERGED | +2 | +1 |