4 ms·
Jepsen is just doing a kill -9 on the java process. I posted a comment on the blog: https://aphyr.com/posts/323-call-me-maybe-elasticsearch-1-5-0#comment-2357
by eclark 11y ago
Jepsen is just doing a kill -9 on the java process.
I posted a comment on the blog:
https://aphyr.com/posts/323-call-me-maybe-elasticsearch-1-5-0#comment-2357 https://aphyr.com/posts/323-call-me-maybe-elasticsearch-1-5-...
First I made sure that read() goes through the page cache. (It does as long as there's no O_DIRECT)
Then I went and checked the write ahead log on ES.
Turns out from my reading that ES is considering a write to be durable if it is put into a userspace buffer.
https://github.com/elastic/elasticsearch/blob/master/src/main/java/org/elasticsearch/index/translog/fs/BufferingFsTranslogFile.java#L190 https://github.com/elastic/elasticsearch/blob/master/src/mai...
Data is pushed to kernel space whenever the buffer gets full. Then it is fsync'd on the timer.
- teraflop 11y agoNice research. In case anyone else is wondering why that Github link is broken, the file in question was renamed a few hours ago. Here's a working permalink: https://github.com/elastic/elasticsearch/blob/fafd67e1aef09169eed1b1a6ad483dff53bccb06/src/main/java/org/elasticsearch/index/translog/fs/BufferingFsTranslogFile.java#L190 https://github.com/elastic/elasticsearch/blob/fafd67e1aef091...