Thread: ms windows: 40% space taken double by ../pg_tblspc folder?
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
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
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