2003-08-22 00:09:36

by vijayan prabhakaran

[permalink] [raw]
Subject: Read in ext3


Hi,

I have a doubt on how ext3 handles read in this specific case.

Assume that a page is written to the journal but not yet updated
to its actual location and before updating the actual copy the
page
gets invalidated. Now if a read comes to the same
data, which block will be read: the journal copy or the actual
copy ?

First of all, will this situation ever occur ? The page will be
marked dirty until it is written to its actual location so it
may
never get invalidated until it is written to the actual
location!

I appreciate your help.

Since I'm not subscribed to this list, could you please CC your
answers to my personal mailid.

Thanks.
Vijayan



___________________________________________________
Meet your old school or college friends from
1 Million + database...
Click here to reunite http://www.batchmates.com/rediff.asp



2003-08-22 00:40:31

by Mike Fedyk

[permalink] [raw]
Subject: Re: Read in ext3

On Fri, Aug 22, 2003 at 12:09:26AM -0000, vijayan prabhakaran wrote:
>
> Hi,
>
> I have a doubt on how ext3 handles read in this specific case.
>
> Assume that a page is written to the journal but not yet updated
> to its actual location and before updating the actual copy the
> page
> gets invalidated. Now if a read comes to the same
> data, which block will be read: the journal copy or the actual
> copy ?
>
> First of all, will this situation ever occur ? The page will be
> marked dirty until it is written to its actual location so it
> may
> never get invalidated until it is written to the actual
> location!

The page will be in memory until the transaction has finished. The
transaction won't finish until it has been moved from the journal to its
final location on disk.

Once that has happened the page can be freed. Now, if the page is
invalidated in the middle of the transaction, all future accesses will come
from memory until that page is flushed, or cleaned.

IIUC, ext3 never reads from the journal (unless you're doing a recovery).
The journal just shows on disk what is already in memory so it can be
recovered after an abnormal shutdown.