Do file system or disk drivers support a concept of file system modification fence, like a memory fence in the CPU or shared memory system?

A fence is an instruction that separate memory operations such that globally visible memory accesses after the fence event are not detectable until all those that come before it.

Is such feature available for file content modification (and repertory modification), in an efficient way? Of course a simplistic solution would be wait until all writes are written to stable storage; that however is blocking the application and could be inefficient if many synchronization points are needed. Also, it could cause many small individual writes when one big write (including many writes separated by fences) satisfies the same constrains on fully journalled system, or when the biggest write is guaranteed to be atomic by the disk driver.

Can file system drivers be forced to order writes with file system access fences? Has the concept been explored?

0 Answers