I just looked at the source.
Could please one explain the following settings from HashIndex

            DEFAULT_PAGE_SIZE =
Integer.parseInt(System.getProperty("defaultPageSize", "1024"));
            DEFAULT_KEY_SIZE =
Integer.parseInt(System.getProperty("defaultKeySize", "96"));
            DEFAULT_BIN_SIZE=
Integer.parseInt(System.getProperty("defaultBinSize", "1024"));
            MAXIMUM_CAPACITY =
Integer.parseInt(System.getProperty("maximumCapacity", "16384"));
           
DEFAULT_LOAD_FACTOR=Integer.parseInt(System.getProperty("defaultLoadFactor","50"));

which are used within AMQPersistanceAdapter:
        private int maxFileLength =
AsyncDataManager.DEFAULT_MAX_FILE_LENGTH;
        private int indexBinSize = HashIndex.DEFAULT_BIN_SIZE;
        private int indexKeySize = HashIndex.DEFAULT_KEY_SIZE;
        private int indexPageSize = HashIndex.DEFAULT_PAGE_SIZE;
        private int indexMaxBinSize = HashIndex.MAXIMUM_CAPACITY;
        private int indexLoadFactor = HashIndex.DEFAULT_LOAD_FACTOR;

If I currently look into my activemq/data/kr-store/data directory it looks
like 
-rw-r--r-- 1 activemq java    2097119 2009-01-22 09:06 data-queue-data-994
-rw-r--r-- 1 activemq java    2097108 2009-01-22 09:06 data-queue-data-995
-rw-r--r-- 1 activemq java    2097119 2009-01-22 09:07 data-queue-data-996
-rw-r--r-- 1 activemq java    2097141 2009-01-22 09:08 data-queue-data-997
-rw-r--r-- 1 activemq java    2097134 2009-01-22 09:09 data-queue-data-998
-rw-r--r-- 1 activemq java    2097133 2009-01-22 09:10 data-queue-data-999
-rw-r--r-- 1 activemq java 1036253185 2009-01-22 12:05
hash-index-queue-data_queue#3a#2f#2ftracking
-rw-r--r-- 1 activemq java        153 2009-01-21 16:47 index-container-roots
-rw-r--r-- 1 activemq java  491847009 2009-01-22 12:05 index-queue-data
-rw-r--r-- 1 activemq java          0 2009-01-21 16:46 lock


It looks like each file is about 2MB big. Which attribute controls this file
size?
I don't see it match any of the above attibutes.
What is the content of "hash-index-queue-data_queue#3a#2f#2ftracking"?
This file is quite big.

Thanks for helping!


Jörg








rajdavies wrote:
> 
> The index will grow up to  a max number of bins - increasing that  
> maximum will increase performance - e.g.
> 
>     <bean id="store"
> class="org.apache.activemq.store.amq.AMQPersistenceAdapter">
>                 <property name="directory" value="${activemq.base}/ 
> data"/>
>                 <property name="maxFileLength" value="10000000"/>
>                 <property name="checkpointInterval" value="60000"/>
>                 <property name="cleanupInterval" value="30000"/>
>                 <property name="persistentIndex" value="true"/>
>               <property name="indexMaxBinSize" value="131072"/>
>         </bean>
> 
> 
> 
> 
> cheers,
> 
> Rob
> 
> Rob Davies
> http://fusesource.com
> http://rajdavies.blogspot.com/
> 
> 
> On 22 Jan 2009, at 10:32, Cybexion wrote:
> 
>>
>> Hi,
>>
>> I have a queue that should hold up to 30 GB of small persistent  
>> messages:
>> <systemUsage sendFailIfNoSpace="true">
>>                <memoryUsage>
>>                    <memoryUsage limit="1gb"/>
>>                </memoryUsage>
>>                <storeUsage>
>>                    <storeUsage limit="30gb" store="#store"/>
>>                </storeUsage>
>>
>> The queue consists of 10 MB files and are specified like this:
>>       <bean id="store"
>> class="org.apache.activemq.store.amq.AMQPersistenceAdapter">
>>                <property name="directory" value="${activemq.base}/ 
>> data"/>
>>                <property name="maxFileLength" value="10000000"/>
>>                <property name="checkpointInterval" value="60000"/>
>>                <property name="cleanupInterval" value="30000"/>
>>                <property name="persistentIndex" value="true"/>
>>        </bean>
>>
>> This night I made a test with lots of produceds an just 5 consumer.  
>> I wanted
>> to fill the queue to its limit.
>> Well, so far I managed to send 18 Million messages into the queue. I  
>> have 20
>> % Store usage so far.
>> What I noticed is, that mostly the messages are send within 0-20
>> milliseconds. However sometimes I have a lot of messages which take  
>> 10+
>> seconds to be send. This is not good in my scenario. I need a  
>> producer that
>> should be very very fast in sending the messages.
>> Question now:
>> Could it be that the number of data files or the size of the  
>> datafiles has
>> impact on the performance?
>> Would it be better to have one queue big file with 30GB of size  
>> instead of
>> hundreds of files having 1 MB?
>>
>> The key index ist persistent. I tested this and it seems to be the  
>> only way
>> of NOT getting an out of memory error.
>> Does it make sense to change the indexkeysize or the indexpagesize  
>> in the
>> store? Would this maybe gice additional constant performance?
>>
>> Btw:
>> I'm using AMQ 5.2
>>
>> Thanks and best regards
>>
>> Jörg
>>
>>
>>
>>
>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/Performance-in-relation-to-queue-size-tp21601585p21601585.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
> 
> 
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Performance-in-relation-to-queue-size-tp21601585p21605634.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to