Lists: | pgsql-bugs |
---|
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | Doug Mitchell <doug(at)mitchcraft(dot)com>, pgsql-bugs(at)postgreSQL(dot)org |
Subject: | Re: [BUGS] General Bug Report: Files greater than 1 GB are created while sorting |
Date: | 1999-07-08 14:24:29 |
Message-ID: | 28965.931443869@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> writes:
> I have renamed these sort temp tables to pg_sorttemp so they will not be
> confused with actual temp tables.
I didn't realize that the names generated for temp tables were so close
to those generated for temp files. Changing one or the other does seem
like a good idea. But I do not like "pg_sorttemp" because fd.c's
temporary-file mechanism is used for more things than just sorting.
Hash joins, for example. Can we think of a better name?
Alternatively, how about including the user-given name for a temp table
into its real name? That would be helpful for debugging, I'm sure.
I'm thinking of something like
snprintf(newrelname, NAMEDATALEN, "pg_temp.%d.%u.%s",
(int) MyProcPid, uniqueId++, userrelname);
(relying on snprintf to truncate the user name if too long, here).
> You are safe up to 2 gigs, and at that point, the OS will can cause a
> problem. The new naming should make the cause clearer. Don't know if
> we can get this done in 6.5.1 because the change to segment these
> requires some work. Looks like the psort code goes right to fd/*,
> bypassing the storage manager.
Yes, it will take some thought to figure out how to handle multi-segment
temp files without cluttering the code too badly. I think it can be
handled inside fd.c, though.
Note that under ordinary circumstances, the data being processed by a
sort or hash join will be written into several temp files that each get
just a fraction of the data; so you would not actually see a problem
until you got to several-times-2-Gig total data volume.
regards, tom lane
From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Doug Mitchell <doug(at)mitchcraft(dot)com>, pgsql-bugs(at)postgreSQL(dot)org |
Subject: | Re: [BUGS] General Bug Report: Files greater than 1 GB are created while sorting |
Date: | 1999-07-09 03:48:37 |
Message-ID: | 199907090348.XAA07190@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
> Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> writes:
> > I have renamed these sort temp tables to pg_sorttemp so they will not be
> > confused with actual temp tables.
>
> I didn't realize that the names generated for temp tables were so close
> to those generated for temp files. Changing one or the other does seem
> like a good idea. But I do not like "pg_sorttemp" because fd.c's
> temporary-file mechanism is used for more things than just sorting.
> Hash joins, for example. Can we think of a better name?
I am open to other names. It is really for joining and sorting.
Suggestions?
>
> Alternatively, how about including the user-given name for a temp table
> into its real name? That would be helpful for debugging, I'm sure.
> I'm thinking of something like
>
> snprintf(newrelname, NAMEDATALEN, "pg_temp.%d.%u.%s",
> (int) MyProcPid, uniqueId++, userrelname);
>
> (relying on snprintf to truncate the user name if too long, here).
You can only do the truncation of the user-supplied part, not the actual
numbers. I guess we could. I wanted it to be uniform, I guess.
> Note that under ordinary circumstances, the data being processed by a
> sort or hash join will be written into several temp files that each get
> just a fraction of the data; so you would not actually see a problem
> until you got to several-times-2-Gig total data volume.
He already has 1.4 gig sort files.
--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026