xlog directory at initdb time

Started by Euler Taveira de Oliveiraover 19 years ago14 messageshackers
Jump to latest

Hi,
This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

--
Euler Taveira de Oliveira
http://www.timbira.com/

Attachments:

xlogdata.difftext/plain; charset=us-asciiDownload+130-12
#2Simon Riggs
simon@2ndQuadrant.com
In reply to: Euler Taveira de Oliveira (#1)
Re: xlog directory at initdb time

On Tue, 2006-12-26 at 23:56 -0200, Euler Taveira de Oliveira wrote:

This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

Looks good.

I'm no expert on coding style, so I won't comment on anything there.

Any test harness changes? Or a test script?

--
Simon Riggs
EnterpriseDB http://www.enterprisedb.com

In reply to: Simon Riggs (#2)
Re: xlog directory at initdb time

Simon Riggs wrote:

This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

Looks good.

I'm no expert on coding style, so I won't comment on anything there.

Any test harness changes? Or a test script?

Unfortunately, nope. :( I tested it manually.
How did i test it?

1) xlog directory doesn't exist -- OK
2) xlog directory exists -- OK
3) xlog directory exists but doesn't have the right permissions --
FAILED
4) xlog diretory exists but is not empty -- FAILED
5) interrupting initdb execution (Ctrl-C) to test the cleanup code -- OK

PS> i didn't test it in a win32 box but it should be ok.

--
Euler Taveira de Oliveira
http://www.timbira.com/

#4Peter Eisentraut
peter_e@gmx.net
In reply to: Euler Taveira de Oliveira (#1)
Re: [PATCHES] xlog directory at initdb time

Am Mittwoch, 27. Dezember 2006 02:56 schrieb Euler Taveira de Oliveira:

This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

We already had this functionality in initdb a few versions ago. Did you
review why it was removed?
--
Peter Eisentraut
http://developer.postgresql.org/~petere/

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#4)
Re: [PATCHES] xlog directory at initdb time

Peter Eisentraut <peter_e@gmx.net> writes:

Am Mittwoch, 27. Dezember 2006 02:56 schrieb Euler Taveira de Oliveira:

This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

We already had this functionality in initdb a few versions ago. Did you
review why it was removed?

The discussion thread seems to start here:

http://archives.postgresql.org/pgsql-hackers/2002-08/msg00306.php

As best I can tell the objections came from the fact that Thomas had
implemented it as a postmaster-start-time switch, which made it a
foot-gun because you could mistakenly start the postmaster with a
different XLOG than you were using before. That would not apply to a
symlink-made-by-initdb approach. All this is doing is formalizing
something we already suggest people do by hand...

regards, tom lane

#6Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#5)
Re: [PATCHES] xlog directory at initdb time

Tom Lane wrote:

Peter Eisentraut <peter_e@gmx.net> writes:

Am Mittwoch, 27. Dezember 2006 02:56 schrieb Euler Taveira de Oliveira:

This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

We already had this functionality in initdb a few versions ago. Did you
review why it was removed?

The discussion thread seems to start here:

http://archives.postgresql.org/pgsql-hackers/2002-08/msg00306.php

As best I can tell the objections came from the fact that Thomas had
implemented it as a postmaster-start-time switch, which made it a
foot-gun because you could mistakenly start the postmaster with a
different XLOG than you were using before. That would not apply to a
symlink-made-by-initdb approach. All this is doing is formalizing
something we already suggest people do by hand...

Right. Thomas decided he didn't want to adjust the patch based on
community input, so the patch was removed. It was one of the few cases
where I had to back out someone else's patch against their will.

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

+ If your life is a hard drive, Christ can be your backup. +

#7Casey Duncan
casey@pandora.com
In reply to: Tom Lane (#5)
Re: [PATCHES] xlog directory at initdb time

On Jan 2, 2007, at 7:18 AM, Tom Lane wrote:

Peter Eisentraut <peter_e@gmx.net> writes:

Am Mittwoch, 27. Dezember 2006 02:56 schrieb Euler Taveira de
Oliveira:

This simple patch lets someone specifies the xlog directory at
initdb
time. It uses symlinks to do it, and create and/or set
permissions at
the directory as appropriate.

We already had this functionality in initdb a few versions ago.
Did you
review why it was removed?

The discussion thread seems to start here:

http://archives.postgresql.org/pgsql-hackers/2002-08/msg00306.php

As best I can tell the objections came from the fact that Thomas had
implemented it as a postmaster-start-time switch, which made it a
foot-gun because you could mistakenly start the postmaster with a
different XLOG than you were using before. That would not apply to a
symlink-made-by-initdb approach. All this is doing is formalizing
something we already suggest people do by hand...

I guess the downside there is that it won't work on platforms that
don't support symlinks, whereas the postmaster switch would. Not that
I condone using such platforms ;^)

-Casey

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Casey Duncan (#7)
Re: [PATCHES] xlog directory at initdb time

Casey Duncan <casey@pandora.com> writes:

I guess the downside there is that it won't work on platforms that
don't support symlinks, whereas the postmaster switch would. Not that
I condone using such platforms ;^)

Well, we already bit that bullet with respect to tablespaces, and
haven't gotten much of any pushback. So I don't see it as a problem
here.

regards, tom lane

#9Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#8)
Re: [PATCHES] xlog directory at initdb time

Tom Lane wrote:

Casey Duncan <casey@pandora.com> writes:

I guess the downside there is that it won't work on platforms that
don't support symlinks, whereas the postmaster switch would. Not that
I condone using such platforms ;^)

Well, we already bit that bullet with respect to tablespaces, and
haven't gotten much of any pushback. So I don't see it as a problem
here.

Note that if Casey is thinking that Win32 does not support symlinks, he
is wrong (we do support tablespaces there).

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

#10Bruce Momjian
bruce@momjian.us
In reply to: Euler Taveira de Oliveira (#1)
Re: xlog directory at initdb time

Your patch has been added to the PostgreSQL unapplied patches list at:

http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

------------------------------------------------------------------------
Euler Taveira de Oliveira wrote:

Hi,
This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

--
Euler Taveira de Oliveira
http://www.timbira.com/

[ Attachment, skipping... ]

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

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

+ If your life is a hard drive, Christ can be your backup. +

#11Peter Eisentraut
peter_e@gmx.net
In reply to: Euler Taveira de Oliveira (#1)
Re: xlog directory at initdb time

Am Mittwoch, 27. Dezember 2006 02:56 schrieb Euler Taveira de Oliveira:

This simple patch lets someone specifies the xlog directory at initdb
time. It uses symlinks to do it, and create and/or set permissions at
the directory as appropriate.

On the name of the option, it's not actually a "data" directory, so I'd just
call it --xlogdir, parallel to --datadir.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

In reply to: Peter Eisentraut (#11)
Re: xlog directory at initdb time

Peter Eisentraut wrote:

On the name of the option, it's not actually a "data" directory, so I'd just
call it --xlogdir, parallel to --datadir.

Seems reasonable. Patch modified is attached.

--
Euler Taveira de Oliveira
http://www.timbira.com/

Attachments:

xlogdir.difftext/plain; charset=us-asciiDownload+130-12
#13Bruce Momjian
bruce@momjian.us
In reply to: Euler Taveira de Oliveira (#12)
Re: [PATCHES] xlog directory at initdb time

Your patch has been added to the PostgreSQL unapplied patches list at:

http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---------------------------------------------------------------------------

Euler Taveira de Oliveira wrote:

Peter Eisentraut wrote:

On the name of the option, it's not actually a "data" directory, so I'd just
call it --xlogdir, parallel to --datadir.

Seems reasonable. Patch modified is attached.

--
Euler Taveira de Oliveira
http://www.timbira.com/

[ Attachment, skipping... ]

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

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

+ If your life is a hard drive, Christ can be your backup. +

#14Bruce Momjian
bruce@momjian.us
In reply to: Euler Taveira de Oliveira (#12)
Re: xlog directory at initdb time

Patch applied. Thanks.

---------------------------------------------------------------------------

Euler Taveira de Oliveira wrote:

Peter Eisentraut wrote:

On the name of the option, it's not actually a "data" directory, so I'd just
call it --xlogdir, parallel to --datadir.

Seems reasonable. Patch modified is attached.

--
Euler Taveira de Oliveira
http://www.timbira.com/

[ Attachment, skipping... ]

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

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

+ If your life is a hard drive, Christ can be your backup. +