Re: Detailed documentation for external calls (threading, shared resources etc)
От | Florian Pflug |
---|---|
Тема | Re: Detailed documentation for external calls (threading, shared resources etc) |
Дата | |
Msg-id | 6C787B25-493C-4347-95DB-1C57A11B4475@phlo.org обсуждение исходный текст |
Ответ на | Detailed documentation for external calls (threading, shared resources etc) (Seref Arikan <serefarikan@kurumsalteknoloji.com>) |
Ответы |
Re: Detailed documentation for external calls (threading, shared
resources etc)
|
Список | pgsql-hackers |
On Jun12, 2011, at 19:26 , Seref Arikan wrote: > This is actually a request for documentation guidance. I intend to > develop an extension to postgresql. Basically I'd like to place calls > to network using ZeroMQ, and I need to have detailed information about > a lot of things, especially threading issues. I need to have some > global resources which will be presumably used by multiple threads. > I can see that there is a lot of documentation, but I'd really > appreciate pointers towards the books, or key documents that'd help me > move forward faster (docs/books about inner workings of key > functionality) I'll be using C (most likely the best option) to > develop code, so which books/documents would you recommend? There are no threading issues in postgres, because postgres doesn't use threads. Each client connection is serviced by one backend process, launched by the postmaster when a new client connects. Communication between backend processes takes places via a shared memory segment and at times also via signals. The documentation contains extensive information about how to interface 3rd-party code with postgres. To see how to interface C functions with the SQL layer, read http://www.postgresql.org/docs/9.0/interactive/xfunc-c.html. If you need to also access the database from your C-language functions, also read http://www.postgresql.org/docs/9.0/interactive/spi.html. More exhaustive documentation is spread around the source tree in the form of README files. I suggest you read the ones concerned with the postgres subsystems you're dealing with. At the very least, you should read .//src/backend/utils/mmgr/README which explains how postgres manages memory. The various contrib modules, found in contrib/ in the source tree, are also a good reference. best regards, Florian Pflug
В списке pgsql-hackers по дате отправления: