Return-Path: Delivered-To: apmail-geronimo-activemq-users-archive@www.apache.org Received: (qmail 14836 invoked from network); 16 Jan 2007 10:09:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Jan 2007 10:09:36 -0000 Received: (qmail 18293 invoked by uid 500); 16 Jan 2007 10:09:42 -0000 Delivered-To: apmail-geronimo-activemq-users-archive@geronimo.apache.org Received: (qmail 18274 invoked by uid 500); 16 Jan 2007 10:09:42 -0000 Mailing-List: contact activemq-users-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-users@geronimo.apache.org Delivered-To: mailing list activemq-users@geronimo.apache.org Received: (qmail 18265 invoked by uid 99); 16 Jan 2007 10:09:42 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Jan 2007 02:09:42 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: local policy) Received: from [85.218.33.218] (HELO mail.qos.ch) (85.218.33.218) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Jan 2007 02:09:33 -0800 Received: from [192.168.1.6] (unknown [192.168.1.6]) by mail.qos.ch (Postfix) with ESMTP id 8271E16A079 for ; Tue, 16 Jan 2007 11:09:11 +0100 (CET) Message-ID: <45ACA44D.8020206@qos.ch> Date: Tue, 16 Jan 2007 11:09:17 +0100 From: Sebastien Pennec User-Agent: Thunderbird 2.0b1 (Windows/20061206) MIME-Version: 1.0 To: activemq-users@geronimo.apache.org Subject: Re: Topic and Queue performances References: <45ABB0A5.2000902@qos.ch> <45ABD2ED.4040007@qos.ch> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org Hello Rob, Then that is certainly why I was observing such different results. Although my setup (client code and environment) where very similar, the messages were handled in a rather different manner on the server side. I've tried to disable persistence by using the persistant="false" attribute in the broker element. I now have Queue results that are very close to the Topic results, at around 0.25 milliseconds. James and Rob, thanks for your help :) Cheers, S�bastien Rob Davies wrote: > The big difference between topics and queues is that for queues, if the > messages have a persistent delivery mode, they are always added to the > message store. This is only true for topics if a durable subscriber > exists and is interested in that topic. > > By default, the message store used is the journal, which uses a jdbc > store for its long term storage. > > cheers, > > Rob > > On 15 Jan 2007, at 19:39, James Strachan wrote: > >> Are you positive you are using like for like - i.e. persistent >> messages for both queues and topics? >> >> You might also wanna try out using our maven based performance test >> harness which makes it easy to test out your environment - it might be >> worth seeing if your JMS code gets wildly different results which >> could indicate some issue in how you are using JMS... >> >> http://incubator.apache.org/activemq/activemq-performance-module-users-manual.html >> >> >> >> On 1/15/07, Sebastien Pennec wrote: >>> Hello James, >>> >>> I understand very well that there are many factors that influence >>> such tests. In my >>> setup, I've tried to make the environment for both Queue and Topic as >>> similar as >>> possible, not to have the best results possible but to have results >>> that can be compared. >>> >>> As far as I know, the default config for Active MQ does not use JDBC, >>> or does it? >>> Also, on my tests, it's the Queue that is 40 times slower that the >>> Topic. >>> >>> My goal was more to have your opinion on the fact that, using the >>> same environment, >>> sending messages to a Queue is *much* slower that sending to a Topic. >>> Does that make >>> you thing that I've done something wrong, or is it something that can >>> be expected? >>> >>> I am currently checking out the source code of ActiveMQ to run some >>> tests as >>> described on your website[1] so I'll see how far my figures are from >>> your tests. >>> >>> Thanks for the answer, >>> >>> S�bastien >>> >>> [1] http://incubator.apache.org/activemq/jmeter-performance-tests.html >>> >>> >>> James Strachan wrote: >>> > In general, it all depends >>> > >>> > http://incubator.apache.org/activemq/how-fast-is-activemq.html >>> > >>> > if using JDBC persistence, there is a bit more work required to store >>> > a topic message than a queue (since topics need to maintain a list of >>> > messages each consumer requires, whereas a queue is logically >>> > equivalent to a single row insert). Also obviously, if there are more >>> > than one consumer, then the broker has more work to do with topics. >>> > >>> > But like many things, it all depends on what you are doing, how you're >>> > doing it and what your environment is. YMMV >>> > >>> > >>> > On 1/15/07, Sebastien Pennec wrote: >>> >> Hello, >>> >> >>> >> I checked on the list archive, but couldn't find the answer to my >>> >> current situation, >>> >> so here I am :) >>> >> >>> >> I've launched an ActiveMQ server on my machine, with the default >>> >> configuration stuff. >>> >> The only thing I've added is the jndi.properties file that I've found >>> >> in the >>> >> documentation. >>> >> >>> >> This jndi config file helps create an example Queue and an example >>> >> Topic. I can >>> >> easily connect message producers and consumers to the Queue and >>> Topic. >>> >> The server, as >>> >> well as the two message producers and the two message consumers, are >>> >> on my local machine. >>> >> >>> >> When I send messages to the Topic, I observe that the time it >>> takes to >>> >> send the >>> >> message is about 0.25 milliseconds. When I send messages to the >>> Queue, >>> >> the figure >>> >> goes up to 10 milliseconds. These figures are the average time >>> that is >>> >> observed when >>> >> sending 10'000 messages. >>> >> They are modified by the presence or absence of a consumer: it takes >>> >> approximately >>> >> 10% less time when there is no consumer. >>> >> >>> >> Is it a normal behavior? I expected the performance between Topic and >>> >> Queue to be >>> >> closer than that. >>> >> >>> >> Thanks for your help, >>> >> >>> >> S�bastien >>> >> >>> >> -- >>> >> S�bastien Pennec >>> >> sebastien@qos.ch >>> >> >>> >> Logback: The reliable, generic, fast and flexible logging framework >>> >> for Java. >>> >> http://logback.qos.ch/ >>> >> >>> > >>> > >>> >>> -- >>> S�bastien Pennec >>> sebastien@qos.ch >>> >>> Logback: The reliable, generic, fast and flexible logging framework >>> for Java. >>> http://logback.qos.ch/ >>> >> >> >> -- >> James >> ------- >> http://radio.weblogs.com/0112098/ > > -- S�bastien Pennec sebastien@qos.ch Logback: The reliable, generic, fast and flexible logging framework for Java. http://logback.qos.ch/