Re: Checkpoint gets stuck in mdsync

From: ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>
To: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Checkpoint gets stuck in mdsync
Date: 2007-04-05 09:31:15
Message-ID: 20070405181527.04BD.ITAGAKI.TAKAHIRO@oss.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


Heikki Linnakangas <heikki(at)enterprisedb(dot)com> wrote:

> Now that the CheckpointStartLock starvation has been taken care of, I'm
> seeing another problem with checkpoints in my test run: mdsync never
> finishes.
>
> My proposed fix is to make a copy of pendingOpsTable before entering the
> loop. AbsorbFsyncRequest will put new requests to a fresh new
> pendingOpsTable, while the mdsync loop will drain the copy. I'll write a
> patch along those lines if there's no better ideas.

Yeah, I'm also anxious about the stuck. I wrote a fix to use a copy of
pendingOpsTable as you said, when I implemented Load distributed checkpoint
patch. (http://momjian.us/mhonarc/patches/msg00025.html) It would make me
very happy if you review my patch and check whether my fix is proper.

There was another reason to fix it in my patch. I wanted to fsync files
only once for each file because bgwriter sleeps for each file in my patch.

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2007-04-05 09:34:50 Re: [HACKERS] Full page writes improvement, code update
Previous Message Mark Shuttleworth 2007-04-05 09:22:15 Re: elog(FATAL) vs shared memory