Re: Tablespaces in the data directory

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: Tablespaces in the data directory
Date: 2012-12-03 17:33:21
Message-ID: CABUevExkhE+KcQa+fLUeaizP5i5QVCnNjZ2j0ZZQcaMJFheQDw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Dec 3, 2012 2:55 AM, "Andrew Dunstan" <andrew(at)dunslane(dot)net> wrote:
>
>
> On 12/02/2012 07:50 PM, Magnus Hagander wrote:
>>
>> On Sat, Dec 1, 2012 at 6:56 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>>
>>> Magnus Hagander <magnus(at)hagander(dot)net> writes:
>>>>
>>>> Someone just reported a problem when they had created a new tablespace
>>>> inside the old data directory. I'm sure there can be other issues
>>>> caused by this as well, but this is mainly a confusing scenario for
>>>> people now.
>>>> As there isn't (as far as I know at least) any actual *point* in
>>>> creating a tablespace inside the main data directory, should we
>>>> perhaps disallow this in CREATE TABLESPACE? Or at least throw a
>>>> WARNING if one does it?
>>>
>>> It could be pretty hard to detect that in general (think symlinks
>>> and such). I guess if we're just trying to print a helpful warning,
>>> we don't have to worry about extreme corner cases. But what exactly
>>> do you have in mind --- complain about any relative path? Complain
>>> about absolute paths that have a prefix matching the DataDir?
>>
>> Oh, I hadn't thought quite so far as the implementation :) Was looking
>> to see if there were going to be some major objections before I even
>> started thinking about that.
>>
>> But for the implementation, I'd say any absolute path that have a
>> prefix matching DataDir. Tablespaces cannot be created using relative
>> paths, so we don't have to deal with that.
>>
>
> I have been known to symlink a tablespace on a replica back to a
directory in the datadir, while on the primary it points elsewhere. What
exactly is the problem?

That wouldn't be affected by this though, since it would only warn at
create tablespace.

I'd still consider it a bad idea in general to do that, since you're
basically messing with the internal structure of the data directory. Why
not just link it to some place outside the data directory?

One obvious problem with it atm is that pg_basebackup breaks, in that it
backs up your data twice, and throws warnings about things that aren't
links if you actually out it inside pg_tblspc.

/Magnus

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavan Deolasee 2012-12-03 17:37:26 Visibility map page pinned for too long ?
Previous Message Simon Riggs 2012-12-03 17:02:47 Re: [v9.3] Row-Level Security