summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* merge default into bug21673Matthias Radestock2010-04-092-2/+4
|\
| * add worker_pook:submit_async/1Matthias Radestock2010-04-092-6/+34
| | | | | | | | This was on the todo list and got cherry-picked from the bug21673 branch.
* | Corrections to specs, docs and exportsMatthew Sackman2010-04-093-9/+8
| |
* | Merging in from defaultMatthew Sackman2010-04-091-2/+2
|\ \ | |/
| * CosmeticMatthew Sackman2010-04-091-2/+2
| |
* | Merging headsMatthew Sackman2010-04-090-0/+0
|\ \
| * \ merge default into bug21673Matthias Radestock2010-04-090-0/+0
| |\ \ | | |/
| | * tweak: better signature for 'ceil'Matthias Radestock2010-04-091-1/+1
| | | | | | | | | | | | This was cherry-picked from the bug21673 branch
* | | Converted the maybe_run_queue_via_backing_queue to take a thunk, and also ↵Matthew Sackman2010-04-097-40/+34
|/ / | | | | | | vq:needs_sync => vq:sync_callback
* | Merging headsMatthew Sackman2010-04-090-0/+0
|\ \
| * \ merge headsMatthias Radestock2010-04-094-1/+15
| |\ \
| * \ \ merge default into bug21673Matthias Radestock2010-04-090-0/+0
| |\ \ \ | | | |/ | | |/|
| | * | refactor: add rabbit_misc:unlink_and_capture_exit/1Matthias Radestock2010-04-092-5/+9
| | | | | | | | | | | | | | | | This was cherry-picked from the bug21673 branch
| | * | Added type specs to version_compareMatthew Sackman2010-04-091-0/+3
| | | |
* | | | Startup only requires durable queue names, not the whole amqqueue recordMatthew Sackman2010-04-094-9/+9
| |_|/ |/| |
* | | Hide the startup of the msg_stores behind the pluggable APIMatthew Sackman2010-04-094-1/+15
|/ /
* | merge headsMatthias Radestock2010-04-092-9/+7
|\ \
| * \ merge default into bug21673Matthias Radestock2010-04-092-9/+7
| |\ \ | | |/
| | * refactor: introduce rabbit_misc:dict_cons/3Matthias Radestock2010-04-094-29/+19
| | | | | | | | | | | | This has been cherry-picked from the bug21673 branch.
* | | All sorts of tidying, cosmetics, reorganisation and pruning. A veritable ↵Matthew Sackman2010-04-0915-239/+268
|/ / | | | | | | smörgåsbord of improvements.
* | Just making the order of the specs match the order in the behaviourMatthew Sackman2010-04-081-9/+9
| |
* | Ooops, missed a fewMatthew Sackman2010-04-081-3/+3
| |
* | set_queue_ram_duration_target => set_queue_duration_target and ram_duration ↵Matthew Sackman2010-04-084-13/+13
| | | | | | | | => queue_duration for censistency
* | Rearranging GC code and tidying up of some common dialyzer type defsMatthew Sackman2010-04-0812-309/+268
| |
* | Pluggable queues landMatthew Sackman2010-04-087-108/+202
| |
* | Rationalise the entire VQ api in preparation for making it pluggable. Just a ↵Matthew Sackman2010-04-084-187/+180
| | | | | | | | behaviour, the externalisation of the specs to follow, and a means to specify the internal_queue module to come.
* | Unify the APIs of the various commit callbacks. Prevents running the queue ↵Matthew Sackman2010-04-082-15/+22
| | | | | | | | when we are doing ack-only txns
* | Cleanup and improvements to the txn commit system. We now ensure: a) if the ↵Matthew Sackman2010-04-074-37/+69
| | | | | | | | txn consists only of acks, we do sync those acks in the qi (assuming the acks were on disk already); b) txns in non-durable queues never cause fsyncs, even if the messages are persistent (or the acks are for persistent messages); c) transactions which contain no publishes can now overtake txns which do contain publishes; d) txns which do not need to be sync'd in the qi can overtake those that do need to be sync'd in the qi (eg a txn with only acks for non-persistent msgs can overtake a txn with persistent publishes). The overtakings are all safe as commit is a sync operation on a channel, and can only overtake other txns, not other operations in general.
* | Fix a leak in the fhc - all clients of the fhc now have a monitor created ↵Matthew Sackman2010-04-071-14/+34
| | | | | | | | for them to enable us to tidy up after the process dies. The distinction between these monitors and the ones created in release_on_death is that the release_on_death ones are not stored in the client_mrefs dict, thus if a monitor DOWN message appears which we can't find in that dict, it is assumed it is a release_on_death monitor
* | Merging default into bug 21673Matthew Sackman2010-04-071-5/+5
|\ \ | |/
| * Merging bug 22582 into defaultMatthew Sackman2010-04-061-5/+5
| |\
| | * Use atomic renameTony Garnock-Jones2010-04-011-2/+2
| | |
| | * Split up a long command into several shorter ones without continuation lines.Tony Garnock-Jones2010-04-011-5/+5
| | | | | | | | | | | | This doesn't change the meaning of the stanza with respect to temporary files.
| | * Avoid deeply quoted quotingTony Garnock-Jones2010-04-011-1/+1
| | |
* | | Simplification of function called from one place onlyMatthew Sackman2010-04-071-6/+6
| | |
* | | Large accountancy bug in queue index leading to great confusion and indeed ↵Matthew Sackman2010-04-062-25/+51
| | | | | | | | | | | | infinite loop. Fixed.
* | | Removed code duplicationMatthew Sackman2010-04-064-13/+11
| | |
* | | Whoops, API changed...Matthew Sackman2010-04-061-1/+1
| | |
* | | Fixed a leak - if we have many queue index segments which were written to ↵Matthew Sackman2010-04-062-49/+77
| | | | | | | | | | | | disk but contained only references to transient messages then on restart, they would never be removed. Unfortunately, this does potentially introduce further work on startup (the queue will try to ensure that it loads the persistent contents of the first segment which contains a persistent message, which can involve scanning through a lot of segments. However, this is actually pretty quick. The only way to fix this would be to keep per segment counters of persistent messages and ensure that's written to disk too, but the extra code cost and complexity may make this just not worth it.
* | | The walker is run within the msg_store process, which traps exits. Thus need ↵Matthew Sackman2010-04-051-1/+5
| | | | | | | | | | | | to be careful to unlink and ensure we have received any EXIT message generated
* | | Corrected commentMatthew Sackman2010-04-051-2/+3
| | |
* | | Forgot to remove a printfMatthew Sackman2010-04-051-2/+1
| | |
* | | Given a clean shutdown, near instantaneous startup, regardless of queue ↵Matthew Sackman2010-04-054-97/+155
| | | | | | | | | | | | length. Note most expensive element in startup is loading in the msg_store index. Also note for some unexplained reason, this currently doesn't work with toke - the toke plugin will need reworking to become available to both msg_stores simultaneously.
* | | The msg_store now avoids building the index and scanning files iff it is ↵Matthew Sackman2010-04-056-94/+237
| | | | | | | | | | | | shutdown cleanly, and all the clients that it previously knew about were also shutdown cleanly and found on startup.
* | | Altered API of rabbit_msg_store_index so that terminate is mean to save out ↵Matthew Sackman2010-04-044-19/+32
| | | | | | | | | | | | state too, and init can be asked to attempt to recover previously saved index
* | | Merging in from defaultMatthew Sackman2010-04-042-5/+7
|\ \ \ | |/ /
| * | Missing hibernate timeoutMatthew Sackman2010-04-042-4/+6
| | |
| * | No, Mike didn't forget to merge, I forgot to pull. SighMatthew Sackman2010-04-010-0/+0
| |\ \ | | |/ | |/|
| * | Merge bug22563 into defaultMichael Bridgen2010-04-011-3/+14
| |\ \
* | | | Abstract out the "farming out work to the worker_pool and gathering it back ↵Matthew Sackman2010-04-043-55/+213
| | | | | | | | | | | | | | | | in" pattern (gatherer.erl), and then make use of it when scanning queue indices and msg store files. Note the gatherer's exit signal was being caught in the handle_info of msg_store because trap_exits was on, hence moving that to later on in the msg_store init.