Re: [HACKERS] Broken hint bits (freeze) - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [HACKERS] Broken hint bits (freeze)
Date
Msg-id 20170620160902.GB24975@momjian.us
Whole thread Raw
In response to Re: [HACKERS] Broken hint bits (freeze)  (Sergey Burladyan <eshkinkot@gmail.com>)
Responses Re: [HACKERS] Broken hint bits (freeze)  (Sergey Burladyan <eshkinkot@gmail.com>)
List pgsql-hackers
On Tue, Jun 20, 2017 at 06:42:58PM +0300, Sergey Burladyan wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> 
> > On Tue, Jun 20, 2017 at 01:10:26PM +0300, Sergey Burladyan wrote:
> > > Only if missing/changed files changed in size, because rsync run with
> > > --size-only it does not copy changed files with same size.
> >
> > I am sorry but I am not understanding.  Step 10.b says:
> >
> >     10.b Make sure the new standby data directories do not exist
> >     
> >     Make sure the new standby data directories do not exist or are empty. If
> >     initdb was run, delete the standby server data directories.
> >
> > so the _entire_ new data directory is empty before rsync is run, meaning
> > that it is an exact copy of the new master.
> 
> Yes, new data directory at standby is empty, but you missed old data
> directory at standby which is hardlink'ed by rsync into new as at master.

OK, I think I am getting closer to understanding.  Only some files are
hard-linked from the old master to the new master, specifically the user
data files (table and indexes).

> rsync run with _three_ arguments and with --hard-links option:
> rsync --archive --delete --hard-links --size-only old_pgdata new_pgdata remote_dir
> (remote_dir is parent directory for old and new data at standby)
> 
> In this mode rsync compare not only new_pgdata with new empty data
> directory at standby, but also compare it with old data directory from
> standby and with --size-only it doing this compare only by the file
> existence or file size.

but it only going to create hard links for hard links that already exist
between the old and new masters.  If I am wrong, we are in big trouble
because rsync would not work.

> If file at standby in old data directory is different from same file at
> master, but it have same size, it will be hardlinked into new data
> directory at standby and does not copied from master.

Only if pg_upgrade created the hardlinks, right?

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +



pgsql-hackers by date:

Previous
From: "Daniel Verite"
Date:
Subject: Re: [HACKERS] PATCH: Batch/pipelining support for libpq
Next
From: Sergey Burladyan
Date:
Subject: Re: [HACKERS] Broken hint bits (freeze)