[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user franz1981 commented on the issue: https://github.com/apache/qpid-jms/pull/26 I have TBH that I'm not getting such a big boost as I was expecting, but probably because there are other bottlenecks (the consumer side on the broker) that are not' helping to measure it correctly: at least now `dequeueNoWait` is really a lock-free operation and if used could help to achieve a great performance boost. --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user tabish121 commented on the issue: https://github.com/apache/qpid-jms/pull/26 Yes, that test is exposing some issues in the 5.x broker which is unrelated to this change. --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user franz1981 commented on the issue: https://github.com/apache/qpid-jms/pull/26 The failing test `JmsConnectionCloseVariationsTest.testCloseBeforeBrokerStoppedRepeated` seems that is not allocating any `FifoMessageQueue`: i suppose its failure is indipendent by this PR. --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user franz1981 commented on the issue: https://github.com/apache/qpid-jms/pull/26 Just as a reference: I'm getting about 80 M msg/sec with the new `FifoMessageQueue` while near 2.5 M msg/sec with the original one. On a end-to-end test I'm getting a 20% more throughput with my machine (that has not many cores and not fast ones). --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user jdanekrh commented on the issue: https://github.com/apache/qpid-jms/pull/26 Won't work with JDK < 8 is fine with qpid-jms, I think https://github.com/apache/qpid-jms/blob/master/pom.xml#L37-L39 I'll check tomorrow if IBM JDK supports this. I am fairly sure OpenJDK will have it... --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user franz1981 commented on the issue: https://github.com/apache/qpid-jms/pull/26 It won't work with JDK < 8 and is specific of oracle AFAIK (I could be wrong of course!) --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user jdanekrh commented on the issue: https://github.com/apache/qpid-jms/pull/26 Wouldn't `@Contended` annotation work just as well? http://mail.openjdk.java.net/pipermail/hotspot-dev/2012-November/007309.html (I just googled it...) --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue
Github user franz1981 commented on the issue: https://github.com/apache/qpid-jms/pull/26 The reason behind the abstract classes for padding between fields to avoid false sharing (that could lead to a 1/10 of performance): ``` OFFSET SIZE TYPE DESCRIPTION VALUE 012(object header) N/A 12 4 (alignment/padding gap) 16 8 long FifoMessageQueuePad0.p01 N/A 24 8 long FifoMessageQueuePad0.p02 N/A 32 8 long FifoMessageQueuePad0.p03 N/A 40 8 long FifoMessageQueuePad0.p04 N/A 48 8 long FifoMessageQueuePad0.p05 N/A 56 8 long FifoMessageQueuePad0.p06 N/A 64 8 long FifoMessageQueuePad0.p07 N/A 72 8 long FifoMessageQueuePad0.p10 N/A 80 8 long FifoMessageQueuePad0.p11 N/A 88 8 long FifoMessageQueuePad0.p12 N/A 96 8 long FifoMessageQueuePad0.p13 N/A 104 8 long FifoMessageQueuePad0.p14 N/A 112 8 long FifoMessageQueuePad0.p15 N/A 120 8 long FifoMessageQueuePad0.p16 N/A 128 8 long FifoMessageQueuePad0.p17 N/A 136 8 long FifoMessageQueueProducerFields.tail N/A 144 8 long FifoMessageQueueProducerFields.producerLimit N/A 152 8 long FifoMessageQueuePad1.p01 N/A 160 8 long FifoMessageQueuePad1.p02 N/A 168 8 long FifoMessageQueuePad1.p03 N/A 176 8 long FifoMessageQueuePad1.p04 N/A 184 8 long FifoMessageQueuePad1.p05 N/A 192 8 long FifoMessageQueuePad1.p06 N/A 200 8 long FifoMessageQueuePad1.p07 N/A 208 8 long FifoMessageQueuePad1.p08 N/A 216 8 long FifoMessageQueuePad1.p10 N/A 224 8 long FifoMessageQueuePad1.p11 N/A 232 8 long FifoMessageQueuePad1.p12 N/A 240 8 long FifoMessageQueuePad1.p13 N/A 248 8 long FifoMessageQueuePad1.p14 N/A 256 8 long FifoMessageQueuePad1.p15 N/A 264 8 long FifoMessageQueuePad1.p16 N/A 272 8 long FifoMessageQueuePad1.p17 N/A 280 8 long FifoMessageQueueConsumerFields.head N/A 288 8 long FifoMessageQueueConsumerFields.headLock N/A 296 4int