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

RE: [linux-lvm] fsync() and LVM



 

-----Original Message-----
From: linux-lvm-bounces redhat com [mailto:linux-lvm-bounces 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 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
>>> a
>>> 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
>>> data
>>> 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 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 vger kernel org>.  I see some ext3 stuff
posted there, or it may have its own list.

Greg
-- 

========================================
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?

-----
Thanks:
Jack Allen


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