python - pq: Rewrite the client3 PQ transaction manager. - Mailing list pgsql-committers

From jwp@pgfoundry.org (James William Pye)
Subject python - pq: Rewrite the client3 PQ transaction manager.
Date
Msg-id 20071227053025.9B63117ADCC0@pgfoundry.org
Whole thread Raw
List 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)

pgsql-committers by date:

Previous
From: jwp@pgfoundry.org (James William Pye)
Date:
Subject: python - ip: Update unit tests to reflect new greentrunk protocol.
Next
From: jwp@pgfoundry.org (James William Pye)
Date:
Subject: python - pq: Correct reference.