-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Labels
Description
This check was added in 9685074 and it is intended to determine broken records and incongruity between index and blob.
This check should be moved outside of eblob_fill_write_control_from_ram because eblob_fill_write_control_from_ram is always called under global lock on b->lock and additional seek under this lock leads to degradation of response time.
Our load tests showed follow degradation:
| quantile | original v0.23.10 | v0.23.10 with reverted 9685074 |
|---|---|---|
| 99% | 82.0 ms | 26.0 ms (-56.0) |
| 98% | 27.0 ms | 16.0 ms (-11.0) |
| 95% | 26.0 ms | 10.0 ms (-16.0) |
| 90% | 26.0 ms | 7.0 ms (-19.0) |
| 85% | 21.0 ms | 5.0 ms (-16.0) |
| 80% | 18.0 ms | 3.0 ms (-15.0) |
| 75% | 15.0 ms | 3.0 ms (-12.0) |
| 50% | 6.0 ms | 2.0 ms (-4.0) |
In both tests timeout on the client was set to 25 ms.
I will deal with this issue in the near future (1-2 weeks), but until then I'm ready to discuss the proposals where this check can be moved or how it can be transformed.
Reactions are currently unavailable