On 7/10/06, Rob Davies <[EMAIL PROTECTED]> wrote:



Something we need to address for the  Kaha persistent store is
pluggable strategies for the indexing of data for both the List and
Map container types.


+1

Currently, an  IndexItem is a fixed size, but can be iterated as a bi-
directional linked list. The IndexItem holds offsets to the the data
value and optional data key which is held in rolling data logs. Data
values/keys are variable in length.
When a Container is loaded, the IndexItem is loaded in to an in-
memory structure - so for a Map Container a Map will hold the key -
the value being the IndexItem - so that getting a data value involves
looking up the IndexItem - then retrieving the data value associated
with the IndexItem from disk.

This works reasonably well and is fine medium size collections of
messages (~20-30million with the default heap size for a message
broker).  But to ensure the Kaha Store can handle indexing larger
number of messages with a relatively small memory footprint - we are
obviously going to need something a little more sophisticated.

Apart from a B-Tree - something that I've though about is using
different types of caching - as the activemq message store really
uses FIFO queues, a FIFO cache strategy would seem like a good
strategy? thoughts ?


+1

cheers,

Rob




--
Regards,
Hiram

Blog: http://hiramchirino.com

Reply via email to