Skip to content

An experiment to see how delayed_write and read_ahead behave#4750

Closed
nickva wants to merge 1 commit intomainfrom
experiment-file-io-opts
Closed

An experiment to see how delayed_write and read_ahead behave#4750
nickva wants to merge 1 commit intomainfrom
experiment-file-io-opts

Conversation

@nickva
Copy link
Copy Markdown
Contributor

@nickva nickva commented Sep 6, 2023

Technically, this shouldn't violate safety as an fsync will still flush out the data synchronously.

We used to have some versions of these previously done at the couch_file or couch_db_updater level. There was an 8KB read-ahead and a delayed commit option. These ones are a bit simpler and easier as they are using OTP provided functionality.

Locally on MacOS I haven't see a huge perf difference (with fabric_bench) but perhaps this might help in case with a remote block devices where write IO calls are throttled or somehow behave better if they are in larger blocks.

Technically, this shouldn't violate safety as an fsync will still flush out the
data synchronously.

We used to have some versions of these previously done at the couch_file or
couch_db_updater level. There was an 8KB read-ahead and a delayed commit
option. These ones are a bit simpler and easier as they are using OTP provided
functionality.

Locally on MacOS I haven't see a huge perf difference (with fabric_bench) but
perhaps this might help in case with a remote block devices where write IO
calls are throttled or somehow behave better if they are in larger blocks.
@nickva nickva force-pushed the experiment-file-io-opts branch from 6870a41 to 93b8786 Compare September 6, 2023 15:09
@nickva
Copy link
Copy Markdown
Contributor Author

nickva commented Sep 28, 2023

Closing as there wasn't as much interest in this

@nickva nickva closed this Sep 28, 2023
@nickva nickva deleted the experiment-file-io-opts branch September 28, 2023 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant