162ad1251c
today we fsync in a blocking fashion where all threads block while another syncs. Yet, we can improve this and make use of the async infrastrucutre added for `wait_for_refresh` and make fsyncing single threaded while all other threads can continue indexing. The syncing thread then notifies a listener once the requests location is synced. This also allows to send docs to replicas before its actually fsynced allowing for cocurrent replica processing. This patch has a significant impact on performance on slower discs. An initial single node benchmark shows that on very fast SSDs there is no noticable impact but on slow spinning disk this patch shows a ~32% performance improvement. ``` NVME SSD: |
||
---|---|---|
.. | ||
src | ||
build.gradle |