Attaching and using the Postgres shared memory segment
От | Paul van den Bogaard |
---|---|
Тема | Attaching and using the Postgres shared memory segment |
Дата | |
Msg-id | B167A05A-52AC-4D4E-B0AD-1B8998F56D6C@sun.com обсуждение исходный текст |
Ответы |
Re: Attaching and using the Postgres shared memory segment
|
Список | pgsql-hackers |
to look into an idea I currently have I need (and implemented) a new piece of memory that resides in (Postgres) shared memory. My data structures are in place an the new database seems running fine. Even under high load :-) Since these data structures are for collecting information I was able to create a new function that retrieves its information from these data structures and returns them as a result from a query. However this is too intrusive. Since everything is in shared memory it should be possible for an external, yet to be created, process to attach to the shared memory segment (read only mode only) to collect these data structures. However, when I read the source I feel a little stuck. Kind of chicken and egg situation perhaps. I have the address mapping of the shared memory (doing stuff on Solaris only). I can pass this information to InitShmemAccess (ipc/ shmem.c). There is however a missing settting for ShmemIndex. This one can be initialsed by calling InitShmemIndex(). The only thing that makes me wonder is its need to use ShmemIndexLock. Although this is just an enum, and therefore an index in some array created in CreateLWLock (lwlock.c). I do not see how I can get access to this lock. Is it "just" there since obviously the whole Postgres shared memory is allocated, initialised and likely already heavily used. Do the locks map to a "well know address" so I can do without further in process initialisation? Or is there another routine (or two ...) that I need to call in order to make things working. Advise on how to proceed or pointers to docs in which this stuff is explained are highly appreciated. Thanks Paul. --------------------------------------------------------------------------------------------- Paul van den Bogaard Paul.vandenBogaard@sun.com ISV-E -- ISV Engineering, Opensource Engineering group Sun Microsystems, Inc phone: +31 334 515 918 Saturnus 1 extentsion: x (70)15918 3824 ME Amersfoort mobile: +31 651 913 354 The Netherlands fax: +31 334 515 001
В списке pgsql-hackers по дате отправления: