Re: TABLE RENAME/NUMERIC FILENAMES (Was: New Linux xfs/reiser file systems) - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: TABLE RENAME/NUMERIC FILENAMES (Was: New Linux xfs/reiser file systems)
Date
Msg-id 3AF658F0.7077D447@tm.ee
Whole thread Raw
In response to Re: Re: New Linux xfs/reiser file systems  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
Tom Lane wrote:
> 
> Hannu Krosing <hannu@tm.ee> writes:
> > Even the IMHO hardest to solve problem
> > - RENAME - can
> > probably be done in a transaction-safe manner by doing a
> > link(oid.<newname>) in the
> > beginning and selective unlink(oid.<newname/oldname>) at commit time.
> 
> Nope.  Consider
> 
>         begin;
>         rename a to b;
>         rename b to a;
>         end;
> 
> And don't tell me you'll solve this by ignoring failures from link().
> That's a recipe for losing your data...

I guess link() failures can be safely ignored _as long as_ we check that 
we have the right link after doing it. I can't see how it will lose
data.

> I would ask people who think they have a solution to please go back and
> reread the very long discussions we have had on this point in the past.

I think I have now (No way to guarantee I have read _everything_ about
it, 
but I did hit about ~10 messages on oid_relname naming scheme).

the most serious objection seemed to be that we need to remember the 
postgres tablename while it would be much easier to use only oids .

I guess we could hit some system limits here (running out of directory 
entries or reaching the maximum number of links to a file) but at least
on 
linux i was able to make >10000 links to one file with no problems.

now that i think of it I have one concern  - it would require extra work 
to use tablenames like "/etc/passwd" or others that use characters that
are 
reserved in filenames which are ok to use in 7.1.

hannu=# create table "/etc/passwd"(
hannu(#   login text,
hannu(#   uid int,
hannu(#   gid int
hannu(# );
CREATE
hannu=# \dt     List of relations   Name     | Type  | Owner 
-------------+-------+-------/etc/passwd | table | hannu

So if people start using names like these it will not be easy to go back
;)

> Nobody particularly likes numeric filenames, but there really isn't any
> other workable answer.

At least we could put links on system relations, so it would be 
easier to find them. 

I guess one is not supposed to rename/drop system tables ?

---------------------
Hannu


pgsql-hackers by date:

Previous
From: mlw
Date:
Subject: Re: File system performance and pg_xlog (More info)
Next
From: Zeugswetter Andreas SB
Date:
Subject: AW: Re: New Linux xfs/reiser file systems