Re: protocol change in 7.4
От | Satoshi Nagayasu |
---|---|
Тема | Re: protocol change in 7.4 |
Дата | |
Msg-id | 20021105205446.2ce49134.pgsql@snaga.org обсуждение исходный текст |
Ответ на | Re: protocol change in 7.4 (Hannu Krosing <hannu@tm.ee>) |
Ответы |
Re: protocol change in 7.4
|
Список | pgsql-hackers |
Hannu Krosing <hannu@tm.ee> wrote: > > I think a precommit-vote-commit phase of 2PC can be implemented in > > command-lavel or protocol-level. > > > > In command-level 2PC, an user application (or application programmer) > > must know the DBMS is clustered or not (to use PRECOMMIT command). > > > > In protocol-layer 2PC, no new SQL command is required. > > A precommit-vote-commit phase will be called implicitly. It means an > > user application can be used without any modification. An application > > can use a traditional way (BEGIN...COMMIT). > > If application continues to use just BEGIN/COMMIT, then the protocol > level must parse command stream and recognize COMMIT in order to replace > it with PRECOMMIT, COMMIT. > > If the communication library has to do that anyway, it could still do > the replacement without affecting wire protocol, no ? In my implementation, 'the extended(2PC) FE/BE protocol' is used only in the communication between the master and slave server(s), not between a client app and the master server. libpq <--Normal FE/BE--> (master)postgres <--Extended(2PC)FE/BE--> (slave)postgres <--Extended(2PC)FE/BE--> (slave)postgres <--Extended(2PC)FE/BE--> (slave)postgres A client application and client's libpq can work continuously without any modification. This is very important. And protocol modification between master and slave server(s) is not so serious issue (I think). -- NAGAYASU Satoshi <snaga@snaga.org>
В списке pgsql-hackers по дате отправления: