Re: [RFC 0/7] ext4: Allocator changes for atomic write support with DIO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 13/12/2023 05:59, Ojaswin Mujoo wrote:
However - as we have seen with a trial user - it can create a problem if we
don't do that and we write 4K and then overwrite with a 16K atomic write to
a file, as 2x extents may be allocated for the complete 16K and it cannot be
issued as a single BIO.
So currently, if we don't fallocate beforehand in xfs and the user
tries to do the 16k overwrite to an offset having a 4k extent, how are
we handling it?

Here ext4 will return an error indicating atomic write can't happen at
this particular offset. The way I see it is if the user passes atomic
flag to pwritev2 and we are unable to ensure atomicity for any reason we
return error, which seems like a fair approach for a generic interface.

ok, but this does not seem like a good user experience.


We didn't want to overly restrict the users of atomic writes by
forcing
the extents to be of a certain alignment/size irrespective of the
size
of write. The design in this patchset provides this flexibility at
the
cost of some added precautions that the user should take (eg not
doing
an atomic write on a pre existing unaligned extent etc).
Doesn't bigalloc already give you what you require here?
Yes, but its an mkfs time feature and it also applies to each an every
file which might not be desirable for all use cases.

Sure, but to get started could you initially support that option (as long as it does not conflict with other per-file option)?

Thanks,
John




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux