Comment

Comment by adrian_b

I completely agree with one of the comments from there:

> But the fundamental conclusion is: the design was wrong. It should not have used mmapped writes. pwrite would have been far better.

It really does not make any sense to use memory-mapped files when writing logs.

Not even pwrite makes sense, because logs should normally be written by opening and using the log files as append-only sequential files.

Only when reading logs, to search for problems, accessing them as read-only memory-mapped files is OK.

Actually not only for logs, but almost always, read-write memory-mapped files are either inefficient or too complex to use (i.e. to avoid problems you must carefully use msync and/or madvise, which eliminates the simplicity that makes memory-mapped files preferable to using pread/pwrite). It is better to use memory-mapped files only for read-only accesses, using the appropriate option flags in open and mmap.

parent adrian_b 2 months ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton