You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Steve Huston <sh...@riverace.com> on 2009/09/30 22:46:42 UTC
Question on the role of the TPL in the message store
I've been studying the Red Hat message store code and, in particular
this week, the transaction handling and TPL. From what I understand at
this point, the role of the TPL is to enable recover prepared but not
committed transaction actions. And, this is mostly needed because the
journal is not transactional. Is this correct?
If this is correct, and I am looking primarily at providing an
SQL-backed store for Windows (at least right now), I don't really need
to worry about the TPL stuff (yet) since SQL transactions don't
require an external assist in the form of the TPL.
If I use two layers of transaction, one around the 2PC prepare/commit
sequence, and others around the individual enqueue/dequeue ops, that
would do it, I think. Does this make sense?
Thanks,
-Steve
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org
RE: Question on the role of the TPL in the message store
Posted by Steve Huston <sh...@riverace.com>.
Thanks Kim and Carl - my day will be far less stressful now :-)
> -----Original Message-----
> From: Kim van der Riet [mailto:kim.vdriet@redhat.com]
> Sent: Thursday, October 01, 2009 8:51 AM
> To: dev@qpid.apache.org
> Subject: Re: Question on the role of the TPL in the message store
>
>
> On Wed, 2009-09-30 at 16:46 -0400, Steve Huston wrote:
> > I've been studying the Red Hat message store code and, in
particular
> > this week, the transaction handling and TPL. From what I
> understand at
> > this point, the role of the TPL is to enable recover
> prepared but not
> > committed transaction actions. And, this is mostly needed
> because the
> > journal is not transactional. Is this correct?
>
> Correct - the TPL simply records the transaction boundaries
> for recovery
> - something that is usually internal to traditional databases. The
> previous BDB version used BDB's internal transactions to provide
this
> capability to the store.
>
> > If this is correct, and I am looking primarily at providing an
> > SQL-backed store for Windows (at least right now), I don't
> really need
> > to worry about the TPL stuff (yet) since SQL transactions don't
> > require an external assist in the form of the TPL.
> >
> > If I use two layers of transaction, one around the 2PC
> prepare/commit
> > sequence, and others around the individual enqueue/dequeue ops,
that
> > would do it, I think. Does this make sense?
>
> Sounds good. Make sure that the multi-queue cases are handled
> correctly,
> ie a transaction that spans one or more messages being enqueued
and/or
> dequeud on multiple queues.
>
> > Thanks,
> > -Steve
>
>
>
>
---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project: http://qpid.apache.org
> Use/Interact: mailto:dev-subscribe@qpid.apache.org
>
>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org
Re: Question on the role of the TPL in the message store
Posted by Kim van der Riet <ki...@redhat.com>.
On Wed, 2009-09-30 at 16:46 -0400, Steve Huston wrote:
> I've been studying the Red Hat message store code and, in particular
> this week, the transaction handling and TPL. From what I understand at
> this point, the role of the TPL is to enable recover prepared but not
> committed transaction actions. And, this is mostly needed because the
> journal is not transactional. Is this correct?
Correct - the TPL simply records the transaction boundaries for recovery
- something that is usually internal to traditional databases. The
previous BDB version used BDB's internal transactions to provide this
capability to the store.
> If this is correct, and I am looking primarily at providing an
> SQL-backed store for Windows (at least right now), I don't really need
> to worry about the TPL stuff (yet) since SQL transactions don't
> require an external assist in the form of the TPL.
>
> If I use two layers of transaction, one around the 2PC prepare/commit
> sequence, and others around the individual enqueue/dequeue ops, that
> would do it, I think. Does this make sense?
Sounds good. Make sure that the multi-queue cases are handled correctly,
ie a transaction that spans one or more messages being enqueued and/or
dequeud on multiple queues.
> Thanks,
> -Steve
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org
Re: Question on the role of the TPL in the message store
Posted by Carl Trieloff <cc...@redhat.com>.
you can tie the txn from qpid to the txn in the DB. This is how it was
done in the first
store implementation when built on BDB. Then most of the TPL stuff falls
away, but it
will be slow.
Carl.
Steve Huston wrote:
> I've been studying the Red Hat message store code and, in particular
> this week, the transaction handling and TPL. From what I understand at
> this point, the role of the TPL is to enable recover prepared but not
> committed transaction actions. And, this is mostly needed because the
> journal is not transactional. Is this correct?
>
> If this is correct, and I am looking primarily at providing an
> SQL-backed store for Windows (at least right now), I don't really need
> to worry about the TPL stuff (yet) since SQL transactions don't
> require an external assist in the form of the TPL.
>
> If I use two layers of transaction, one around the 2PC prepare/commit
> sequence, and others around the individual enqueue/dequeue ops, that
> would do it, I think. Does this make sense?
>
> Thanks,
> -Steve
>
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project: http://qpid.apache.org
> Use/Interact: mailto:dev-subscribe@qpid.apache.org
>
>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org