Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7435

[Java Broker] Avoid BDB fetching dummy single byte database entries during message instance recovery

    XMLWordPrintableJSON

Details

    Description

      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.

      Attachments

        Activity

          People

            kwall Keith Wall
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: