Linux 系统使用直接 I/O,是否会产生多线程并发错误?
資深大佬 : LeeReamond 0
如题,mysql 、redis 之类的数据库似乎都会实现自己的文件管理系统,根据我在网上查到的消息,这类直接 IO 是不需要经过内核的。
Linux 内核在处理文件时,比如三个进程同时向指向同一个文件的三个 fd 写入内容,默认情况下因为都会使用系统调用写入,所以似乎是 linux 会自动处理好并发可能产生的乱序写入问题(乱序写入指多线程互相覆盖导致实际内容比期望内容少,且编码错乱,似乎是不会发生这种问题)
学习 IO 的时候产生一个问题就是直接 IO 是否意味着用户需要自己协调进程间通信以保证同一时间没有两个人在写入?如若不然可靠性是怎么保证的呢。
谢谢大家
大佬有話說 (5)