[linux-lvm] fsync() and LVM
Jack.Allen at mckesson.com
Mon Mar 16 21:57:27 UTC 2009
From: linux-lvm-bounces at redhat.com [mailto:linux-lvm-bounces at redhat.com] On Behalf Of Greg Freemyer
Sent: Monday, March 16, 2009 5:36 PM
To: LVM general discussion and development
Subject: Re: [linux-lvm] fsync() and LVM
On Mon, Mar 16, 2009 at 5:17 PM, Les Mikesell <lesmikesell at gmail.com> wrote:
> Greg Freemyer wrote:
>>>> Those are some very significant subsystems. I have to believe
>>>> filesystems have another way to implement fsync if barriers are not
>>>> supported in the stack of block susbsystems.
>>> If you can't get the completion status from the underlying layer, how can
>>> filesystem possibly implement it?
>> Barriers is a specific technology and they were just implemented in
>> linux around 2005 I think. (see documentation/barriers.txt)
>> Surely there was a mechanism in place before that.
> I'm not sure that's a reasonable assumption.
>>>> Maybe this discussion needs to move to a filesystem list, since it is
>>>> the filesystem that is responsible for making fsync() work even in the
>>>> absence of barriers.
>>> I though linux ended up doing a sync of the entire outstanding buffered
>>> for a partition with horrible performance, at least on ext3.
>> Yes, I understand fsync is horribly slow in ext3 and that may be the
>> reason. Supposedly much better in ext4. Still if a userspace app
>> calls fsync and in turn the filesystem does something really slow due
>> to the lack of barriers, then this conversation should be about the
>> poor performance of fsync() when using lvm (or mdraid, or drdb), not
>> the total lack of fsync() support.
> I haven't seen anyone claim yet that there is support for fsync(), which
> must return the status of the completion of the operation to the
> application. If it does, then the discussion could turn to performance.
> Les Mikesell
> lesmikesell at gmail.com
Is your specific interest to ext3? If so, I suggest you post a
question there along the lines of:
Device Mapper does not support barriers if more than one physical
device is in use by the LV. If I'm using ext3 on a LV and I call
fsync() from user space, how is fsync() implemented. Or is it not?
The ext4 list is <linux-ext4 at vger.kernel.org>. I see some ext3 stuff
posted there, or it may have its own list.
So what happens if there is a database implemented directly on a Logical Volume, not File System involved at all?
Should the fsync man page describe what happens when used on each type of File System, Logical Volume, disk partition and /or combination?
More information about the linux-lvm