1 2 Previous Next 24 Replies Latest reply on Aug 19, 2008 12:36 PM by timfox Go to original post
      • 15. Re: Message redistribution in JBM 2.0 - request for feedback
        jeffdelong

        Sorry, but I don't find this topic mentioned in the JBoss Messaging 1.4 User's Guide. What is a partial queue?

        • 16. Re: Message redistribution in JBM 2.0 - request for feedback
          timfox

          A logical clustered queue is composed of a set of partial queues one on each node of the cluster.

          When a message is sent to a logical queue it is sent to one of the nodes of the cluster and it goes into the partial queue on that node.

          If there are local consumers on that node, all well and good, the local consumer will consume the message.

          If there are no local consumers, or the local consumer is busy (it's buffer is full), and there are idle consumers on other nodes, then the message can be sent to another (redistributed) so it can be consumed by a different consumer.

          That's what we call message redistribution.

          • 17. Re: Message redistribution in JBM 2.0 - request for feedback
            jeffdelong

            Ok, so partial queue is what others might call a "physical" queue. It is the representation of a logical queue in a particular node.

            You said:

            When a message is sent to a logical queue it is sent to one of the nodes of the cluster and it goes into the partial queue on that node.


            How does JBM decide which node to send it to?

            • 18. Re: Message redistribution in JBM 2.0 - request for feedback
              timfox

               

              "jeffdelong" wrote:
              Ok, so partial queue is what others might call a "physical" queue. It is the representation of a logical queue in a particular node.


              Yes, pretty much.

              When a message is sent to a logical queue it is sent to one of the nodes of the cluster and it goes into the partial queue on that node.


              If you use a ClusteredConnectionFactory subsequent connections are round robin'd between nodes.


              • 19. Re: Message redistribution in JBM 2.0 - request for feedback
                jay.howell

                I would vote to abandon it too, but doesn't it go hand in hand with partial queues? The whole idea of a partial queue is that all the partial queues together represent the whole. The message distribution is the method to simulate the entire queue. If you have a partial queue and there is no way to get to the messages in another partial queue, is it really a partial queue or just a stand alone queue that supports failover. So getting rid of message distribution breaks the whole, doesn't it.

                I think the whole idea of message distribution and partial queues goes hand in hand. If you get rid of one, you really have to get rid of the other don't you? I think this is why this topic got off subject early on, because intuitively have partial queues and message distribution between nodes linked.

                If we are going to support the connection round robin aspect of the clustered connection factory, we have to keep the message distribution. I mean it's possible that a producer could make 3 connections to nodes 1, 2, and 4. Now the client is completley unaware which servers in the cluster it's connected to(and it should be). Now a consumer uses the clustered connection factory and gets 3, 4, 5 as it's connections. If we don't have redistribution of messages, messages on 1 and 2 will be stranded wont they.

                Sorry if I'm being a little dense but....Partial queues and message distribution seem to be linked...

                So if we still have partial queues, I'd say that we can't really get rid of message distribution. Message distribution is what stitches the partials together to simulate the total queue, while allowing for performance driven locks and acks on a clustered node.

                Jay:)

                • 20. Re: Message redistribution in JBM 2.0 - request for feedback
                  jay.howell

                  So I guess I would only vote to get rid of message distribution if we got rid of the notion of partial queues(I guess that would force us to move to the IBM MQ model) . If we're not going to visit that question, I think we're stuck with message redistribution.

                  Jay:)

                  • 21. Re: Message redistribution in JBM 2.0 - request for feedback
                    jay.howell

                    So I guess I would only vote to get rid of message distribution if we got rid of the notion of partial queues(I guess that would force us to move to the IBM MQ model) . If we're not going to visit that question, I think we're stuck with message redistribution.

                    Jay:)

                    • 22. Re: Message redistribution in JBM 2.0 - request for feedback
                      jay.howell

                      I believed in that so strongly I said it twice. :)

                      • 23. Re: Message redistribution in JBM 2.0 - request for feedback
                        jeffdelong

                        Thanks for the explanation of the round-robin nature of the clustered connection factory as well as message redistribution and partial queues. In general round robin is not as efficient as a "single" queue with multiple servers (as Tim pointed out in the initial email), which is what your partial queues with message redistribution attempts to simulate. So if you removed message redistribution (and partial queues), you would need another way to emulate a single logical queue for all nodes to consume from.

                        • 24. Re: Message redistribution in JBM 2.0 - request for feedback
                          timfox

                          I think partial queues and message redistribution are orthogonal. You can have one without the other.

                          In most cases consumers are deployed heterogenously across the cluster, so no message redistribution is necessary anyway.

                          Some of our competitors who also use a similar partial queue approach don't have message redistribution I believe, or at least it is off by default.

                          1 2 Previous Next