4 Replies Latest reply on Oct 1, 2008 4:50 AM by timfox

    perfSender/perfListener is acting weird

    clebert.suconic

      if you run perfSender and perfListener as we aways used to run, sometimes you will not get all the messages on the client.

      And the performance is much lower than what we used to get.

      On persistent messages, I used to get 24K messages / second, and now I'm getting 17K messages / second.

      On non-persistent I'm getting 27 when I used to get way more than that.

      I don't mean to be early optimizing things, but we seem to be loosing messages on QueueImpl. (And this is different than the CTRL-C bug).

        • 1. Re: perfSender/perfListener is acting weird
          ataylor

           

          On persistent messages, I used to get 24K messages / second, and now I'm getting 17K messages / second.


          This is similar to the figures i was getting a few weeks ago, last time i ran the perf tests.

          if you run perfSender and perfListener as we aways used to run, sometimes you will not get all the messages on the client.


          I'll have a look today to see if this happens for me and do some investigating.

          • 2. Re: perfSender/perfListener is acting weird
            timfox

            Guys, please forget the optimising.

            We'll get to that once we have the code complete.

            • 3. Re: perfSender/perfListener is acting weird
              clebert.suconic

               

              "ataylor" wrote:
              On persistent messages, I used to get 24K messages / second, and now I'm getting 17K messages / second.


              This is similar to the figures i was getting a few weeks ago, last time i ran the perf tests.



              I have a SCSI driver what should drive it faster.

              I'm not too concerned about performance now, unless there is some basic design change that would affect performance in such way we can't optimize later.

              I wanted to raise the issue here because of perfSender/perfListener not completing.

              Just for the record, everything is fast and completing without any problems at r5023, and taking extra time and sometimes not completing at r5041+.

              • 4. Re: perfSender/perfListener is acting weird
                timfox

                I fixed an issue in QueueImpl that might be causing this, but I can't commit yet due to other changes.

                If you want to apply the fix yourself locally, add the following synchronized block in DeliverRunner in QueueImpl.java

                
                 private class DeliverRunner implements Runnable
                 {
                 public void run()
                 {
                 // Must be set to false *before* executing to avoid race
                 waitingToDeliver.set(false);
                
                 //must synchronize
                 synchronized (QueueImpl.this)
                 {
                 deliver();
                 }
                 }
                 }
                
                



                Without the synchronize block messages can get lost and get delivered out of order