<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/cpp/src/qpid/broker/TxAccept.cpp, branch QPID-6125-ProtocolRefactoring</title>
<subtitle>git.apache.org: qpid.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/'/>
<entry>
<title>QPID-5139: HA transactions block a thread, can deadlock the broker</title>
<updated>2013-10-29T15:23:49+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-10-29T15:23:49+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=4bb151616b69cad55b373846b5f5fca7c17c9f0d'/>
<id>4bb151616b69cad55b373846b5f5fca7c17c9f0d</id>
<content type='text'>
PrimaryTxObserver::prepare used to block pending responses from each backup. With
concurrent transactions this can deadlock the broker: once all worker threads
are blocked in prepare, responses from backups cannot be received.

This commit generalizes the async completion mechanism for messages to allow
async completion of arbitrary commands. It leaves the special-case code for
messages undisturbed but adds a second path (starting from
SessionState::handleCommand) for async completion of other commands.
In particular it implements tx.commit to allow async completion.

TxBuffer is now an AsyncCompletion and commitLocal() is split into
- startCommit() called by SemanticState::commit()
- endCommit() called when the commit command completes

TxAccept no longer holds pre-computed ranges, compute fresh each time.
- Avoid range iterators going out of date during a delayed commit.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1536754 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PrimaryTxObserver::prepare used to block pending responses from each backup. With
concurrent transactions this can deadlock the broker: once all worker threads
are blocked in prepare, responses from backups cannot be received.

This commit generalizes the async completion mechanism for messages to allow
async completion of arbitrary commands. It leaves the special-case code for
messages undisturbed but adds a second path (starting from
SessionState::handleCommand) for async completion of other commands.
In particular it implements tx.commit to allow async completion.

TxBuffer is now an AsyncCompletion and commitLocal() is split into
- startCommit() called by SemanticState::commit()
- endCommit() called when the commit command completes

TxAccept no longer holds pre-computed ranges, compute fresh each time.
- Avoid range iterators going out of date during a delayed commit.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1536754 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4327: HA TX transactions: basic replication.</title>
<updated>2013-08-01T20:27:26+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-08-01T20:27:26+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=e6598e9f95d55b80f96dbcb1e12bc1fc38c66af1'/>
<id>e6598e9f95d55b80f96dbcb1e12bc1fc38c66af1</id>
<content type='text'>
On primary a PrimaryTxObserver observes a transaction's TxBuffer and generates
transaction events on a tx-replication-queue. On the backup a TxReplicator
receives the events and constructs a TxBuffer equivalent to the one in the
primary.

Unfinished:
- Primary does not wait for backups to prepare() before committing.
- All connected backups are assumed to be in the transaction, there are race
  conditions around brokers joining/leavinv where this assumption is invalid.
- Need more tests.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509423 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On primary a PrimaryTxObserver observes a transaction's TxBuffer and generates
transaction events on a tx-replication-queue. On the backup a TxReplicator
receives the events and constructs a TxBuffer equivalent to the one in the
primary.

Unfinished:
- Primary does not wait for backups to prepare() before committing.
- All connected backups are assumed to be in the transaction, there are race
  conditions around brokers joining/leavinv where this assumption is invalid.
- Need more tests.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509423 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4327: Added TransactionObserver interface.</title>
<updated>2013-08-01T20:26:58+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-08-01T20:26:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=a9df65f54828ecf4322e9c09571906001a6ba185'/>
<id>a9df65f54828ecf4322e9c09571906001a6ba185</id>
<content type='text'>
Added TransactionObserver interface, called at each point in a transaction's
lifecycle. Currently only a single observer can be associated with a
transaction.

Added startTx, startDtx to BrokerObserver so plugins can observe transactions
starting and set a TransactionObserver.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509421 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added TransactionObserver interface, called at each point in a transaction's
lifecycle. Currently only a single observer can be associated with a
transaction.

Added startTx, startDtx to BrokerObserver so plugins can observe transactions
starting and set a TransactionObserver.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509421 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4327: Refactor to simplify TxAccept.</title>
<updated>2013-08-01T20:26:34+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-08-01T20:26:34+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=6939b2021f879cbf1160de7b757366918fc6c7ba'/>
<id>6939b2021f879cbf1160de7b757366918fc6c7ba</id>
<content type='text'>
Removed un-necessary RangeOps layers.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509419 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed un-necessary RangeOps layers.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509419 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Joint checkin from gsim, kpvdr, cctrieloff. See QPID-2102: Exceeding reject queue policy under a transaction causes broker crash</title>
<updated>2009-09-22T17:36:01+00:00</updated>
<author>
<name>Kim van der Riet</name>
<email>kpvdr@apache.org</email>
</author>
<published>2009-09-22T17:36:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=f13c131456c4fb0a027513242f2d8253aad75ca0'/>
<id>f13c131456c4fb0a027513242f2d8253aad75ca0</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@817742 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@817742 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Add directory to #include</title>
<updated>2009-07-14T14:32:39+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2009-07-14T14:32:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=c7b58ba05104496a96cce3c7acd035253fd89f79'/>
<id>c7b58ba05104496a96cce3c7acd035253fd89f79</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>DeliveryRecord optimizations.</title>
<updated>2009-05-06T17:58:50+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2009-05-06T17:58:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=d37792b0cd112986236addbcde01ee55067c946b'/>
<id>d37792b0cd112986236addbcde01ee55067c946b</id>
<content type='text'>
Replace linear search with binary search.
Collapse multi-pass mark-then-erase to a signle pass.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@772384 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace linear search with binary search.
Collapse multi-pass mark-then-erase to a signle pass.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@772384 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace std::list with std::deque for SemanticState::unacked - more efficient, improves latency.</title>
<updated>2009-05-01T19:59:57+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2009-05-01T19:59:57+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=91e3b712f13fcbf3834ae547bd05254738dfed8e'/>
<id>91e3b712f13fcbf3834ae547bd05254738dfed8e</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@770802 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@770802 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>qpid/broker/QueuePolicy.cpp</title>
<updated>2009-03-05T16:29:22+00:00</updated>
<author>
<name>Manuel Teira Paz</name>
<email>mteira@apache.org</email>
</author>
<published>2009-03-05T16:29:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=97d5254a47121a42d435e1ca808cb4c56cdbf18f'/>
<id>97d5254a47121a42d435e1ca808cb4c56cdbf18f</id>
<content type='text'>
 - Add a missing std namespace
qpid/broker/TxAccept.cpp
 - Add a missing std namespace


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@750497 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 - Add a missing std namespace
qpid/broker/TxAccept.cpp
 - Add a missing std namespace


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@750497 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-1497: Ensure policy count and size reflect transactionality of dequeues</title>
<updated>2008-12-01T19:49:23+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2008-12-01T19:49:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=a03d20dd52beb9588bcff3fa0924489372172f18'/>
<id>a03d20dd52beb9588bcff3fa0924489372172f18</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@722200 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@722200 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
</feed>
