Open() create behavior
Written by Tommaso:
At the moment, a stat operation is always done before a create. As seen by the comments above, there are certain reasons why this is mandatory, particularly because of O_CREAT
with O_EXCL
. But, Marc believes that RocksDB does this check implicitly with the CreateOperand. In that case, the stat is redundant and not needed. However, there are more reasons on why this could be mandatory: For instance, are we dealing with a directory or not. Does it matter though?
Marc is afraid that performance suffers too much by these kind of POSIX-compliance
changes.
Written by Marc: We have seen that it impairs performance. The question is if we disable check-before-existance at compile time or if RocksDB CreateOperand can help here.
There is some work in the following branch on this topic: https://storage.bsc.es/gitlab/hpc/gekkofs/tree/atomic_creat