From: | Sergey Burladyan <eshkinkot(at)gmail(dot)com> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us> |
Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Dmitriy Sarafannikov <dsarafannikov(at)yandex(dot)ru>, Vladimir Borodin <root(at)simply(dot)name> |
Subject: | Re: Broken hint bits (freeze) |
Date: | 2017-06-23 15:17:47 |
Message-ID: | 87lgoi68dg.fsf@seb.koffice.internal |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Bruce Momjian <bruce(at)momjian(dot)us> writes:
> On Wed, Jun 21, 2017 at 07:49:21PM +0530, Amit Kapila wrote:
> > On Tue, Jun 20, 2017 at 7:24 PM, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > > Hmm. I think we need something that works with lesser effort because
> > > not all users will be as knowledgeable as you are, so if they make any
> > > mistakes in copying the file manually, it can lead to problems. How
> > > about issuing a notification (XLogArchiveNotifySeg) in shutdown
> > > checkpoint if archiving is enabled?
> > >
> >
> > I have thought more about the above solution and it seems risky to
> > notify archiver for incomplete WAL segments (which will be possible in
> > this case as there is no guarantee that Checkpoint record will fill
> > the segment). So, it seems to me we should update the document unless
> > you or someone has some solution to this problem.
> As far as I know this is the only remaining open issue. Sergey, please
> verify. I appreciate the work everyone has done to improve this, and
> all the existing fixes have been pushed to all supported branches. :-)
Yes, thank you all for your help!
Yes, this is last issue with checkpoint that I know, how to ensure that
standby sync all shared buffers into disk on it shutdown.
I thinking about enforce restartpoint on shutdown, like:
src/backend/access/transam/xlog.c
- 8639 if (XLogRecPtrIsInvalid(lastCheckPointRecPtr) ||
- 8640 XLByteLE(lastCheckPoint.redo, ControlFile->checkPointCopy.redo))
- 8641 {
+ 8639 if ( !(flags & CHECKPOINT_IS_SHUTDOWN) && (XLogRecPtrIsInvalid(lastCheckPointRecPtr) ||
+ 8640 XLByteLE(lastCheckPoint.redo, ControlFile->checkPointCopy.redo) )
+ 8641 {
But I still not read source and not sure about this solution.
PS:
I successfully upgraded last night from 9.2 to 9.4 and find other issue :-)
It is about hash index and promote:
1. create master
2. create standby from it
3. create unlogged table and hash index like:
create unlogged table test (id int primary key, v text);
create index on test using hash (id);
3. stop master
4. promote standby
now, if you try to upgrade this new promoted master pg_upgrade will stop
on this hash index:
error while creating link for relation "public.test_id_idx" ("s/9.2/base/16384/16393" to "m/9.4/base/16422/16393"): No such file or directory
Failure, exiting
I touch this file (s/9.2/base/16384/16393) and rerun pg_upgrade from
scratch and it complete successfully.
--
Sergey Burladyan
From | Date | Subject | |
---|---|---|---|
Next Message | Sergey Burladyan | 2017-06-23 15:23:12 | Re: Broken hint bits (freeze) |
Previous Message | Tatsuo Ishii | 2017-06-23 15:15:28 | Re: shift_sjis_2004 related autority files are remaining |