Re: POSIX shared memory support

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: POSIX shared memory support
Дата
Msg-id 20070227093015.GF12721@svr2.hagander.net
обсуждение исходный текст
Ответ на Re: POSIX shared memory support  (Chris Marcellino <cmarcellino@apple.com>)
Ответы Re: POSIX shared memory support  (Chris Marcellino <cmarcellino@apple.com>)
Re: POSIX shared memory support  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-patches
On Tue, Feb 27, 2007 at 01:09:46AM -0800, Chris Marcellino wrote:
> The Win32 version didn't materialize until very recently. The Win32
> calls are similar semantically to the POSIX ones, so it was somewhat
> straightforward.
>
> Plaintext is nice if you can fit it, since Windows permits you to
> have slashes and all sorts of other non-filename characters in them,
> unlike POSIX shmem. Also for POSIX, certain platforms (ahem Darwin
> has 30 chars) have very small segment name limits. As Tom said, the
> renaming-while-running issue might be a deal breaker, but I'm not
> sure that is a problem on Windows. It sounds like you are on the
> right track.

This cannot happen on windows - you cannot rename a directory which
someone has open files in. The infamous sharing violation error.

> Does Windows have a method to get a unique ID number for a given data
> directory, or a token file in that directory? It would need to be
> constant while the database is open. Perhaps
> GetFileInformationByHandle? It returns a struct with a nFileIndex
> value that seems to be that, although I'm not certain.
> This might make it easier to avoid the complexity of fitting the
> filename in the segment name, and avoid the rename problem,

Yes, you could use the fileindex value. You need that one and the volume
serial number, total of 64+32 bits of data.

So yeah, we cuold use that instead of the full path name if we want to.
The advantage of this one is that it's shorter, the advantage of the
full path name is that you can see where the backend is from.

However, in most cases you will be able to see where the backend is from
anyway, because it is likely to have some other file open in the data
directory, so maybe that isn't such a big point after all?

//Magnus

В списке pgsql-patches по дате отправления:

Предыдущее
От: Chris Marcellino
Дата:
Сообщение: Re: POSIX shared memory support
Следующее
От: Chris Marcellino
Дата:
Сообщение: Re: POSIX shared memory support