如题,mysql 、redis 之类的数据库似乎都会实现自己的文件管理系统,根据我在网上查到的消息,这类直接 IO 是不需要经过内核的。
Linux 内核在处理文件时,比如三个进程同时向指向同一个文件的三个 fd 写入内容,默认情况下因为都会使用系统调用写入,所以似乎是 linux 会自动处理好并发可能产生的乱序写入问题(乱序写入指多线程互相覆盖导致实际内容比期望内容少,且编码错乱,似乎是不会发生这种问题)
学习 IO 的时候产生一个问题就是直接 IO 是否意味着用户需要自己协调进程间通信以保证同一时间没有两个人在写入?如若不然可靠性是怎么保证的呢。
谢谢大家
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.