200731

tinykv中在opts.DB.IngestExternalFiles(externalFiles) 一直卡住 最终追查到badger发现是directio.OpenFile使用O_DIRECTflag的问题.确定了原因之后找原理就轻松多了.参照使用go语言绕过page cache读写文件

update 2020-08-03 10:09:24

更加本质的原因是/tmp 目录是tmpfs 而tmpfs本身好像就不是很支持directio
等价性验证: dd if=/dev/zero of=/tmp/myfile bs=1M count=1 oflag=direct
同样也会报错dd: failed to open '/tmp/myfile': Invalid argument

提了个issue