In the current implementation, NameNode editlog performs syncs to the persistent storage using the FileChannel#force Java APIs. This API is documented to be slower compared to an alternative where RandomAccessFile is opened with "rws" flags (synchronous writes).
We instrumented FileChannel#force on Windows and it some software/hardware configurations it can perform significantly slower than the “rws” alternative.
With this Jira I'd like to introduce a flag that provide means to configure NameNode to use synchronous writes. There is a catch though, the behavior of the "rws" flags is platform and hardware specific and might not provide the same level of guarantees as FileChannel#force w.r.t. flushing the on-disk cache. This is an expert level setting, and it should be documented as such.