This page last changed on Mar 30, 2009 by ritchiem.

Flow to Disk review points

ID Priority (H/M/L) Review Status
16 0.5 H is load() thread safe Done
13 0.5 H getMessage contract broken MUST NEVER return null Done
14 0.5 H getMessage should do a load, remember gap between load and purger Done
15 0.5 H document reuse of setDelivered Done
19 0.5 H _priorityListsindex.memoryUsed() + requriedSize is not threadSafe. Currently hard to reason about. Removed
21 0.5 H PriorityQueueEntryList add() not thread safe. Reclaiming memory and then setting later is not atomic. Removed
24 0.5 H setMemoryUsageMaximum / setMemoryUsageMinimum : not ThreadSafe - synchronize Removed
17 0.5 H Document atomicity of memory counting Removed
18 0.5 H Document test cases , plausable , implausable  
       
1 0.5 M Removal of old get* Methods from TransactionLog  
2 0.5 M Create Abstract BaseTransactionLog class to hold commonalities with existing TLogs  
3 0.5 M Refactor Ref Counting out into BaseTransactionLog  
12 0.5 M Linux ext3 means 31998 queues max per vhost per instance. as the dir is currently created even if it is not needed.  
22 0.5 M PriorityQueueEntryList _disabled -> move to isFlowed and name it better as the queue is not disabled. Only FtD is. Done
27 0.5 M VirtualHost:L208 : initialiseRoutingTable(hostConfig) should be done when transactionLog != RoutingTable  
31 0.5 M BDBMS : Enqueue has no rollback operation.  
       
8 0.5 FlowableQueueEntryList extends QueueEntryList, but there are no unflowable lists, and there shouldn't be in the future either. (AS) Done
20 0.5 Comments would help  
23   non-atomic get Methods in PriorityQueueEntryList  
29 0.5 BDBMS : _dequeueTxMap should move to StoreContext to remove synchronized  
32 0.5 BDBMS : StoreContext needs enqueue/dequeue added.  
7 0.5 Rename flow/recover -> unload/load Done
       
9 0.5 NTH Extract flow strategy in to a separate interface  
28   BDBMS : linked list per message is not memory conserving  
30   BDBMS : In simple case where there is only one copy of message can do delete in same transactions  
       
4 0.6 StoreContext update, initially to include the dequeue messageIds as per BDBStore  
5 0.6 StoreContext -> convert -> Transaction and use that for operation.(commit,abort...)  
6 0.6 Reference Count to use AtomicInts to reduce memory usage.  
10 0.6 QueueEntryImpl allows direct access to the ContentHeader via the Filterable Interface, need an improved way of doing selectors that doesn't always require the message to be pulled from disk. Some checks can be done with data already in memory with QueueEntry; MessageID  
11 0.6 NoLocal requires message to be pulled in to memory.  
25 JIRA Need to be better at stop(), decide what we actually want to do on AMQQueue.stop().
26 JIRA TransactionLog, RoutingTable interfaces separated but not actually split out the implementations.

Testing

ID Priority (H/M/L) Test Status
1   What happens when the directory cannot hold any more messages, or queues.  
2   Test flowed queues delete backing store on close.  
3   Management Console Functionality, Viewing, Moving Messages  
4   Consuming from flowed queues with all ack modes : Client, Transacted, No-Ack  
5   Browsers with selectors. DONE
6   Selectors on normal consumer to be completed  
7   Test No_local on flowed queues : Currently flowed messages will be reloaded to check no_local values. Does it make sense to move them to the QueueEntry?  
8   Failure testing: What happens when disk runs out?  
9   Failure testing: Current implementation should log error and keep message in memory. Eventually though it will OOME the broker as it can't keep messages in memory.  
10   Testing on all supported OSes and File systems. Linux : ext3, SAN(vxfs); Solaris (ZFS); Windows NTFS?  
11   What happends if the disk fails/is removed?  
12 0.5 Selector test, 1..4 consumers consuming message ids by chunk of 1000. Fill half then start consuming with consumer 4. Then send final half. How does it performs?  
Still to be discussed
Priority Queues
RoutingTable
Document generated by Confluence on May 26, 2010 10:32