python - pq: Rewrite the client3 PQ transaction manager.

From: jwp(at)pgfoundry(dot)org (James William Pye)
To: pgsql-committers(at)postgresql(dot)org
Subject: python - pq: Rewrite the client3 PQ transaction manager.
Date: 2007-12-27 05:30:25
Message-ID: 20071227053025.9B63117ADCC0@pgfoundry.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Rewrite the client3 PQ transaction manager.

The prior design processed one message at a time to transition state. This
resulted in a substantial impediment on performance as the invocation overhead
per message held the messages per second down(From the tests I've done, it
appears to be around a factor of 3(primarily copies)).

The new version is implemented using one class, and rather than custom interface
to message instantiation, a simple list of message instances are passed in.
State is kept using a command offset and a mapping that designates the acceptable
messages for a command and ultimately what message causes the command to end.

Modified Files:
--------------
pq/src:
buffer.c (r1.6 -> r1.7)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/pq/src/buffer.c.diff?r1=1.6&r2=1.7)
client3.py (r1.27 -> r1.28)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/pq/src/client3.py.diff?r1=1.27&r2=1.28)
element3.py (r1.17 -> r1.18)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/pq/src/element3.py.diff?r1=1.17&r2=1.18)
version.py (r1.3 -> r1.4)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/pq/src/version.py.diff?r1=1.3&r2=1.4)

Removed Files:
-------------
pq/src:
transam.py
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/pq/src/transam.py)

Browse pgsql-committers by date

  From Date Subject
Next Message James William Pye 2007-12-27 06:40:27 python - pq: Correct reference.
Previous Message James William Pye 2007-12-27 03:34:26 python - ip: Update unit tests to reflect new greentrunk protocol.