You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by franz1981 <gi...@git.apache.org> on 2018/11/14 16:52:48 UTC
[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
0 12 (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 4 int FifoMessageQueueConsumerFields.state N/A
300 4 (alignment/padding gap)
304 8 long FifoMessageQueuePad2.p01 N/A
312 8 long FifoMessageQueuePad2.p02 N/A
320 8 long FifoMessageQueuePad2.p03 N/A
328 8 long FifoMessageQueuePad2.p04 N/A
336 8 long FifoMessageQueuePad2.p05 N/A
344 8 long FifoMessageQueuePad2.p06 N/A
352 8 long FifoMessageQueuePad2.p07 N/A
360 8 long FifoMessageQueuePad2.p08 N/A
368 8 long FifoMessageQueuePad2.p10 N/A
376 8 long FifoMessageQueuePad2.p11 N/A
384 8 long FifoMessageQueuePad2.p12 N/A
392 8 long FifoMessageQueuePad2.p13 N/A
400 8 long FifoMessageQueuePad2.p14 N/A
408 8 long FifoMessageQueuePad2.p15 N/A
416 8 long FifoMessageQueuePad2.p16 N/A
424 8 long FifoMessageQueuePad2.p17 N/A
432 8 long FifoMessageQueueSharedFields.waitingThreads N/A
440 4 java.util.concurrent.locks.ReentrantLock FifoMessageQueueSharedFields.notEmptyLock N/A
444 4 java.util.concurrent.locks.Condition FifoMessageQueueSharedFields.notEmptyCondition N/A
448 8 long FifoMessageQueuePad3.p01 N/A
456 8 long FifoMessageQueuePad3.p02 N/A
464 8 long FifoMessageQueuePad3.p03 N/A
472 8 long FifoMessageQueuePad3.p04 N/A
480 8 long FifoMessageQueuePad3.p05 N/A
488 8 long FifoMessageQueuePad3.p06 N/A
496 8 long FifoMessageQueuePad3.p07 N/A
504 8 long FifoMessageQueuePad3.p08 N/A
512 8 long FifoMessageQueuePad3.p10 N/A
520 8 long FifoMessageQueuePad3.p11 N/A
528 8 long FifoMessageQueuePad3.p12 N/A
536 8 long FifoMessageQueuePad3.p13 N/A
544 8 long FifoMessageQueuePad3.p14 N/A
552 8 long FifoMessageQueuePad3.p15 N/A
560 8 long FifoMessageQueuePad3.p16 N/A
568 8 long FifoMessageQueuePad3.p17 N/A
576 8 long FifoMessageQueue.mask N/A
584 4 int FifoMessageQueue.lookAheadStep N/A
588 4 java.util.concurrent.atomic.AtomicReferenceArray FifoMessageQueue.messages N/A
```
---
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org