Re: [HACKERS] CORBA STATUS
От | Goran Thyni |
---|---|
Тема | Re: [HACKERS] CORBA STATUS |
Дата | |
Msg-id | 3828569A.3BE41F94@kirra.net обсуждение исходный текст |
Ответ на | CORBA STATUS ("Mark Proctor" <mail-list@molnir.com>) |
Список | pgsql-hackers |
I have done some research into slapping a CORBA interface onto the PgSQL server. I have looked at ORBit but my findings seems to apply to most CORBA implementations. I found that there is a fundamental problem concerning the difference in process models in pgsql and the POA (Portable Object Adaptor) in CORBA implementations. AFAICS, POA assumes a threaded server while PgSQL uses a traditional forking model. I see 3 ways to resolve this: 1. Adapt the PgSQL server to use threads instead of forking. I am not sure we want to do this since it is a major undertakingand will not help the rock solid stability we expect from a professional RDBMS. 2. Write a Forking Object Adaptor (FOA). Would be a big job but it would benefit other similar projects. A FOA would haveto be rewritten for every ORB. If you want to do this I suggest starting with ORBit since it is all C and thereby easierto slap onto PgSQL. 3. Extend postmaster to proxy CORBA requests. Postmaster could fork of postgres processes on incoming connections. Postmasterwill keep listening and proxying request and responses to/from the postgres process through some kind of IPC.This will make the postmaster multithreaded and the postgres processes still singlethreaded. It is doubtful if the gains: - standard-based protocols - less code to maintain (?) justifies the amount of work required. An easier way out is to, as suggested by others, implement the CORBA-service outside the server itself. It will in some cases give some latency related performance degrading compared to a in-server implementation. One effort to do something like that (and more) is gnome-db. Check out http://www.gnome.org/gnome-db/ regards, ----------------- Göran Thyni On quiet nights you can hear Windows NT reboot!
В списке pgsql-hackers по дате отправления: