Hi, Artemis team!
I have some problem with Artemis paging in my highload application.
In a nutshell, in my application producers produces messages very often -
about 500 messages per second.
At the same time, consumer is sometimes pretty slow. So consumer processess
messages slower than producer produces them. In this case why messages
accumulate in queue, clog it up and application fails with OutOfMemoryError.
I'm trying to use paging for "mitigating" this problem. As a result,
application doesn't fail with OutOfMemoryError, messages are stored on disk
- not in memory.
But... I have an issue here. If application paged a lot of messages (100k)
once - consumer can not process messages from paging and "new" messages from
queue. Even if consumer in very fast - even if he doesn't do anything during
processing.
So, if application jumped to paging once - it will never recover its initial
message processing speed.
 
This is how I test it on my local environment:
I have following jms architecture

Producer => QueueOUT => Bridge => QueueIN => Consumer.

Consumer DOES NOT DO ANYTHING. This is just a listener for queue with blank
method.

I stop the bridge.
Wait until  QueueOUT will have 100k messages
Start a bridge - messages are transfered to QueueIN and Consumers starts to
process them.
At the same time producer produces new messages, which are transfered to
QueueIN. But consumer can not proccess "old" messages form paging and "new"
messages, which just delivered from producer.

As I understood from investigation of the paging code - method
org.apache.activemq.artemis.core.paging.impl.Page.read(StorageManager)
Artemis gets messages from disk one by one this algorithm is hardcoded. And
there are no settings to be configured for Artemis batch retrieving messages
from disk.

Could you please, clarify me does paging can be tuned for bath-retrievig
messages form disk for the faster message processing.
And, in general, is paging a good solution for my case, may be there are
some better solutions for solving my problem?

Thanks in advance for your help 
Sergey




--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-Dev-f2368404.html

Reply via email to