Keith Wall created QPID-7435:
--------------------------------

             Summary: Avoid BDB fetching empty database entry during message 
instance recovery
                 Key: QPID-7435
                 URL: https://issues.apache.org/jira/browse/QPID-7435
             Project: Qpid
          Issue Type: Improvement
          Components: Java Broker
            Reporter: Keith Wall
             Fix For: qpid-java-6.1


We represent message instances in BDB as a tuple comprising a key (formed of 
queue id and message id) and a dummy record (formed of 1 byte).  The dummy 
record serves no purpose other than to fulfil the contract with JE's 
Database#put() which cannot accept a null entry value.

The JE API has a mechanism to instruct a cursor operations to retrieve only the 
key values.  We can exploit this feature when recovering message instances to 
suppress the retrieval of the dummy entry.

On my box, this improves (synchronous) recovery time for a store containing 4 
queues with 2,000,000 messages from about 1min to about 30seconds.  This should 
benefit any user who uses BDB and has a large store.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to