7 Replies Latest reply on Mar 6, 2006 3:59 PM by alexfu.novell

    Pageable channels complete

    timfox

      Pageable channels (formerly known as "lazy loading queues") is now complete.

      In the current implementation queues and subs can be configured to hold a max of x messages in memory at once, with configurable spillover caches and pages sizes to load messages from storage.

      It is likely to be extended in the near future with memory sensitivity features to allow intelligent automatic paging of messages and references to storage when memory is low.

      Although the idea is (for now) that if the parameters are tuned correctly for each queue according to the size of messages in that queue, memory exhaustion can be avoided in most cases (of course spikes must still occur).

      We also have some thoughts on intelligent self tuning according to real-time usage patterns.

      The idea here is that the server tunes the max size, page size and down cache size dynamically in real time according allowing the size to "self tune" to fit available memory, thus taking some of the burden off the administrator. (Although this is unlikely to be available for 1.0)

        • 1. Re: Pageable channels complete
          alexfu.novell

          Tim do you want me to add R/W jmx attributes for fullsize, pagesize and downcachesize? Or, since they will be eventually self-tuned, you only want them to be ReadOnly?

          Please let me know because the former will require a few changes in DestinationServiceSupport and ChannelMapper.

          Thanks.

          • 2. Re: Pageable channels complete
            timfox

            Yes, please add them as R/W MBean attributes, defaulting to the current values.

            Thanks

            • 3. Re: Pageable channels complete
              alexfu.novell

              Also, the total messages in a channel should be messageref.size +
              downcache.size +
              pm.sizefor(channelID) +
              deliveries.size

              But some reliable msgs could be duplicated in both messageref and pm. So I need to filter out those duplicated ones plus those received from uncommitted tx. Am I right?

              Thanks

              • 4. Re: Pageable channels complete
                timfox

                totalMessages in channel = messagerefs.size + deliveries.size() + refsInStorage

                no need to call the pm

                refsInStorage already contains those in the downCache

                no need to worry about tx

                • 5. Re: Pageable channels complete
                  alexfu.novell

                  Right. I ignored refsInStorage when looking at your changes :)

                  Another issue:
                  For subscriptions, do we have MBean to manage them so that I can add the three new parameters? Or we don't have one yet?

                  Thanks.


                  • 6. Re: Pageable channels complete
                    timfox

                    For subscriptions, I guess the values should be specified as MBean attributes on the corresponding topic to which the subscriptions subscribe.

                    So the 3 attributes exist on both the Topic and the Queue Mbeans.

                    • 7. Re: Pageable channels complete
                      alexfu.novell

                      That's good.

                      Changes to those attributes will only take effect after restarting the destinations.