There will be some changes to the message store api for the following:
getNextMessage(String clientId, String subsName) - next message that
hasn't been acknowledged
getNextMessage(String clientId, String subsName, MessageId from,
RecoveryListener) - allow batches of messages to be processed
etc.
In addition the pending LinkedList in Prefetch Subscription has been
replaced with a PendingMessageCursor interface - to allow different
implementations to be plugged in.
So a durable subscriber will not have to be recovered - but can
retrieve messages in batches - taking into account the available
memory in the message store.
There is a FilePendingMessageCursor - which can be used optionally
for the temporary offline storage for non-durable Topic subscribers
On 5 Sep 2006, at 18:35, Fateev, Maxim wrote:
Rob,
Would you give overview of the proposed design for the paging
support in ActiveMQ? The AMQ-845 doesn't provide any specifics.
-----Original Message-----
From: Rob Davies [mailto:[EMAIL PROTECTED]
Sent: Tuesday, September 05, 2006 10:22 AM
To: activemq-users@geronimo.apache.org
Subject: Re: Paging support
A message reference is kept in memory (which consists of a
messageId and information like sequence Id to enable faster
retrieval from storage).
There is some work currently in progress in enable paging support
in ActiveMQ - see http://issues.apache.org/activemq/browse/AMQ-845
On 5 Sep 2006, at 18:07, pradeep wrote:
Maxim,
Can you clarify this
Are you storing just the message id or the whole message in memory?
Your
help will be highly appreciated.
Thanks
pradeep
Fateev, Maxim wrote:
It would be interesting to see some numbers about memory utilization
per message in backlog.
IMHO the main problem with keeping references in memory is that it
needs recovery phase on broker startup. It can take a while when
backlog is really big.
-----Original Message-----
From: James Strachan [mailto:[EMAIL PROTECTED]
Sent: Sunday, September 03, 2006 11:51 PM
To: activemq-users@geronimo.apache.org
Subject: Re: Paging support
Note that MessageReferences != message contents; they are mostly
just
a MessageId which is pretty small.
On 8/29/06, Fateev, Maxim <[EMAIL PROTECTED]> wrote:
AFAIK messages are moved from journal to permantent storage
(JDBC) on
every checkpoint. The problem is that references for every message
are still kept in memory.
IMHO it is inherent limitation of MessageStore API as it is defined
now.
The only way to get message is by id. And the only way to have
id is
to keep it in memory.
I'm looking into changing MessageStore API to one that instead of
Message getMessage(MessageId identity)
Would provide
Message getNextMessage()
method eliminating need to keep references in memory.
-----Original Message-----
From: Anders Bengtsson [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 29, 2006 1:23 AM
To: activemq-users@geronimo.apache.org
Subject: Re: Paging support
gnodet wrote:
If you don' t use any persistent store, messages must be kept in
memory, so you are obvisouly limited by the available mem.
Yes, this is what I would expect.
If you use a jdbc store, messages can be removed from memory and
store for later consumption.
Yes, except it doesn't actually work!
It writes things to the store, but it is still very much limited by
memory for some reason. (Someone reported this as AMQ-845 earlier,
but with no response).
--
View this message in context:
http://www.nabble.com/Paging-support-tf2163517.html#a6034790
Sent from the ActiveMQ - User forum at Nabble.com.
--
James
-------
http://radio.weblogs.com/0112098/
--
View this message in context: http://www.nabble.com/Paging-support-
tf2163517.html#a6156162
Sent from the ActiveMQ - User forum at Nabble.com.