Add ability for KahaDB log files to be created on a per-destination basis.
--------------------------------------------------------------------------

                 Key: AMQ-2922
                 URL: https://issues.apache.org/activemq/browse/AMQ-2922
             Project: ActiveMQ
          Issue Type: New Feature
          Components: Message Store
    Affects Versions: 5.4.0
         Environment: All
            Reporter: Peter Blackburn


KahaDB persistence uses rolling log files to store unconsumed messages. These 
are named db-1.log, db-2.log ... db3.log. At present these files contain 
messages for all destinations managed by the broker.

A configurable option could be added that would allow these files to be created 
on a per-destination basis. For example, if the broker contained two queue 
destinations, queue_1 and queue_2, the log files would become:

queue_1-1.log, queue_1-2.log....etc
queue_2-1.log, queue_2-2.log....etc

Each set of log files would only contain messages for the relevant destination. 

This would help in the following situation:

queue_1: receives one message every 15 seconds or so. These messages remain 
unconsumed for several hours.
queue_2: receives thousands of messages per second. These messages are consumed 
as they arrive.

At present, the scenario above leads to each log files containing a few 
messages that have yet to be consumed and thousands of messages that have been 
consumed, but the log file cannot be deleted until all messages logged in it 
have been consumed (which may be hours later).

Logging on a per-destination basis would allow the log files for queue_2 in the 
above example to be deleted, meaning the unconsumed messages on queue_1 take up 
far less disk space. This would also reduce the number of file handles required.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to