[GENERAL] ms windows: 40% space taken double by ../pg_tblspc folder?

2008-09-10 Thread Willy-Bas Loos
Hi,

Tablespaces are implemented as some sort of a hard link on windows, so that
the data seem to be in the program files, but they're not.
When i look at my C drive with spacemonger though, it tells me that the data
in the tablespace IS in the program files folder - it is fooled by the
hard link.
That's no  big problem, but it seems that Windows itself is fooled too. The
space left on my C drive is not correct, i'm missing some space.
It's not quite as much as the size of the tablespace. 4 GiB of space is
missing on the C drive, the tablespace is 10 GiB.
-  Missing means: when i calculate the sum of the file sizes, except the
ones in C:\ProgramFiles\PostgreSQL\8.3\data\pg_tblspc\ , there should be 24
GiB Free, but DIR and all the dialogs say that there are only 20 GiB free.
If the whole space for ../pg_tblspc were taken double, there would be only
14 GiB free.
-  The command used was C:\dir  /a /s /-c  c.txt
-  There are minor diferences between dir *, dir *.* and dir without an
asterix (surprisingly *.* gets the most)
-  The difference is not explained by the size on disk vs filesize (DIR
gives the filesize, but the difference is less than 1 GiB)
-  The filesize sum in the properties dialog of Program files does NOT
include the tablespace files
What happens when the size of the tablespace surpasses the space that is
left on my C drive? Windows might find that the disc is full (even though it
isn't), and writing to it would be impossible.

Anyone know more about this?

Thx,

WBL
-- 
Patriotism is the conviction that your country is superior to all others
because you were born in it. - George Bernard Shaw


Re: [GENERAL] ms windows: 40% space taken double by ../pg_tblspc folder?

2008-09-10 Thread Magnus Hagander
Willy-Bas Loos wrote:
 Hi,
 
 Tablespaces are implemented as some sort of a hard link on windows, so
 that the data seem to be in the program files, but they're not.

No, they are implemented using softlinks, AKA NTFS Junctions.


 When i look at my C drive with spacemonger though, it tells me that the
 data in the tablespace IS in the program files folder - it is fooled
 by the hard link.

In that case, it's a bug in that product. It's not uncommon - using
junctions isn't very common on windows. But one core system exapmle is
that the SYSVOL stuff uses junctions.


 That's no  big problem, but it seems that Windows itself is fooled too.
 The space left on my C drive is not correct, i'm missing some space.
 It's not quite as much as the size of the tablespace. 4 GiB of space is
 missing on the C drive, the tablespace is 10 GiB.
 -  Missing means: when i calculate the sum of the file sizes, except
 the ones in C:\ProgramFiles\PostgreSQL\8.3\data\pg_tblspc\ , there
 should be 24 GiB Free, but DIR and all the dialogs say that there are
 only 20 GiB free. If the whole space for ../pg_tblspc were taken double,
 there would be only 14 GiB free.
 -  The command used was C:\dir  /a /s /-c  c.txt
 -  There are minor diferences between dir *, dir *.* and dir without an
 asterix (surprisingly *.* gets the most)
 -  The difference is not explained by the size on disk vs filesize
 (DIR gives the filesize, but the difference is less than 1 GiB)
 -  The filesize sum in the properties dialog of Program files does NOT
 include the tablespace files

It could be the fact that the size of files that are currently being
modified doesn't show up properly.

 What happens when the size of the tablespace surpasses the space that is
 left on my C drive? Windows might find that the disc is full (even
 though it isn't), and writing to it would be impossible.

If the tablespace is on a different drive, it's completely unaffected by
the size of the actual drive C. The windows APIs, that postgresql uses,
certainly know about this, and won't be fooled.

//Magnus


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general