[GitHub] qpid-jms issue #26: QPIDJMS-430 Lock-Free FifoMessageQueue

2018-11-14 Thread franz1981
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

2018-11-14 Thread tabish121
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

2018-11-14 Thread franz1981
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

2018-11-14 Thread franz1981
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

2018-11-14 Thread jdanekrh
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

2018-11-14 Thread franz1981
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

2018-11-14 Thread jdanekrh
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

2018-11-14 Thread franz1981
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