Re: New option for pg_basebackup, to specify a different directory for pg_xlog

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Haribabu kommi <haribabu(dot)kommi(at)huawei(dot)com>
Cc: Magnus Hagander <magnus(at)hagander(dot)net>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: New option for pg_basebackup, to specify a different directory for pg_xlog
Date: 2013-11-18 13:14:31
Message-ID: CAHGQGwFuzwweRzmrLOwFLgd36RejcKx5EeWTqH+1dQnqnXvREQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Nov 18, 2013 at 6:31 PM, Haribabu kommi
<haribabu(dot)kommi(at)huawei(dot)com> wrote:
>
> On 18 November 2013 11:19 Haribabu kommi wrote:
>> On 17 November 2013 00:55 Fujii Masao wrote:
>> > On Sat, Nov 16, 2013 at 2:27 PM, Haribabu kommi
>> > <haribabu(dot)kommi(at)huawei(dot)com> wrote:
>> > > on 15 November 2013 17:26 Magnus Hagander wrote:
>> > >
>> > >>On Fri, Nov 15, 2013 at 12:10 PM, Haribabu kommi
>> > >><haribabu(dot)kommi(at)huawei(dot)com> wrote:
>> > >
>> > >>On 14 November 2013 23:59 Fujii Masao wrote:
>> > >>> On Thu, Nov 14, 2013 at 9:08 PM, Haribabu kommi
>> > >>> <haribabu(dot)kommi(at)huawei(dot)com> wrote:
>> > >>> > Please find attached the patch, for adding a new option for
>> > >>> > pg_basebackup, to specify a different directory for pg_xlog.
>> > >>>>
>> > >>> Sounds good! Here are the review comments:
>> > >>>> Don't we need to prevent users from specifying the same
>> directory
>> > >>>> in both --pgdata and --xlogdir?
>> > >
>> > >>>I feel no need to prevent, even if user specifies both --pgdata
>> and
>> > >>>--xlogdir as same directory all the transaction log files will be
>> > >>>created in the base directory instead of pg_xlog directory.
>> > >
>> > >
>> > >
>> > >>Given how easy it would be to prevent that, I think we should. It
>> > >>would be an easy misunderstanding to specify that when you
>> actually
>> > >>want it in <wherever>/pg_xlog. Specifying that would be redundant
>> > >>in the first place, but people ca do that, but it
>> > >
>> > >>would also be very easy to do it by mistake, and you'd end up with
>> > >>something that's really bad, including a recursive symlink.
>> > >
>> > >
>> > >
>> > > Presently with initdb also user can specify both data and xlog
>> > > directories as same.
>> > >
>> > > To prevent the data directory and xlog directory as same, there is
>> a
>> > > way in windows (_fullpath api) to get absolute path from a relative
>> > > path, but I didn't get any such possibilities in linux.
>> > >
>> > > I didn't find any other way to check it, if anyone have any idea
>> > > regarding this please let me know.
>> >
>> > What about make_absolute_path() in miscinit.c?
>>
>> The make_absoulte_patch() function gets the current working directory
>> and adds The relative path to CWD, this is not giving proper absolute
>> path.
>>
>> I have added a new function verify_data_and_xlog_dir_same() which will
>> change the Current working directory to data directory and gets the CWD
>> and the same way for transaction log directory. Compare the both data
>> and xlog directories and throw an error. Please check it once.
>>
>> Is there any other way to identify that both data and xlog directories
>> are pointing to the same Instead of comparing both absolute paths?
>>
>> Updated patch attached in the mail.
>
> Failure when the xlogdir doesn't exist is fixed in the updated patch attached in the mail.

Thanks for updating the patch!

With the patch, when I specify the same directory in both -D and --xlogdir,
I got the following error.

$ cd /tmp
$ pg_basebackup -D hoge --xlogdir=/tmp/hoge -X fetch
pg_basebackup: could not change directory to "hoge": No such file or directory

Regards,

--
Fujii Masao

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fabrízio de Royes Mello 2013-11-18 13:16:25 Re: CREATE TABLE IF NOT EXISTS AS
Previous Message Haribabu kommi 2013-11-18 12:58:38 Re: ALTER SYSTEM SET command to change postgresql.conf parameters (RE: Proposal for Allow postgresql.conf values to be changed via SQL [review])