summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* | | | If we submit to the workers jobs which use the fhc, the workers may receive ↵Matthew Sackman2010-04-042-7/+20
| | | | | | | | | | | | | | | | messages from the fhc, thus need to be able to process them. Also, that then requires that the fhc is started before the workers
* | | | Mistake in opening files leading to process dictionary being wrongly ↵Matthew Sackman2010-04-041-15/+15
| | | | | | | | | | | | | | | | populated and updated when file opening fails (eg enoent)
* | | | Cosmetic simplification of logicMatthew Sackman2010-04-041-6/+6
| | | |
* | | | Introduced rabbit_misc:dict_cons/3 which ends up being used in 3 places. ↵Matthew Sackman2010-04-036-149/+166
| | | | | | | | | | | | | | | | Also fixed a bug which I'd sleepily introduced in vq:requeue where a msg_store:release had accidentally become a msg_store:remove (no idea how the tests managed to pass after that enough to convince me to commit - certainly had the tests failing today due to that one). Finally, persistent msgs in a non-durable queue should be sent to the transient msg_store, not the persistent msg_store. Thus they will survive a crash of the queue, but not a restart of the server.
* | | | The 2 part init of the queue must be complete before the queue is committed ↵Matthew Sackman2010-04-022-9/+17
| | | | | | | | | | | | | | | | into mnesia. Furthermore, it must be a call, not a cast otherwise it could be overtaken (though it returns first, and inits second). Note that this means on a collision, the queue may get > 1 init calls, hence need for idempotency, and the 2nd call may be delayed while the first init completes. Also note that the queue index init alters disk content. Thus initing the same queue with disk content concurrently will lead to unexpected results. However, this can't occur because durable queue recovery is the only time we are initing queues with disk content, and there will be no collisions at that point, so safe. In normal queue declaration collisions, there will be no disk content anyway.
* | | | Next step on making startup faster is to allow the scanning of the queue ↵Matthew Sackman2010-04-026-52/+130
| | | | | | | | | | | | | | | | indicies to occur in parallel (per queue). Also, queue creation can take some substantial time due to queue_index:init. Therefore, stagger the startup of a queue so that this potentially expensive step (a) doesn't get done at all if the queue already exists etc (b) doesn't block amqqueue_process:init from returning. Thus on startup now not only do we do the seeding of the msg_store in parallel (per queue), but the durable queues that come up can also do the bulk of their work in parallel, thus speeding recovery substantially.
* | | | Support async job submissionMatthew Sackman2010-04-022-6/+32
| | | |
* | | | Merged default into bug 21673Matthew Sackman2010-04-0132-1088/+2407
|\ \ \ \ | | |_|/ | |/| |
| * | | Merging bug 22563 into default (MikeB QA+'d it and forgot to merge to default)Matthew Sackman2010-04-011-3/+14
| |\ \ \ | | |/ / | |/| / | | |/
| | * Fractionally better - the actions of the recursive call are now displayed, ↵Matthew Sackman2010-04-011-1/+1
| | | | | | | | | | | | though sadly only once they're completed
| | * 1. If our entire goalset is to make the deps file, don't include it; 2. We ↵Matthew Sackman2010-04-011-0/+5
| | | | | | | | | | | | don't want the error msg when including the deps file when it doesn't exist, but at the same time we do want all errors if they occur when generating the deps. Hence -include is not permitted. Thus if we need the deps file then make it explicitly before including it.
| | * Merging in from defaultMatthew Sackman2010-04-0112-24/+345
| | |\ | | |/ | |/|
| * | Merging heads of defaultMatthew Sackman2010-03-292-4/+2
| |\ \
| | * | A couple more cosmetic fixes to the usage messages.Simon MacMullen2010-03-292-4/+2
| | | |
| * | | Merging bug 22559 onto defaultMatthew Sackman2010-03-293-4/+6
| |\ \ \ | | |/ / | |/| |
| | * | Don't reinterpret the usage message.Simon MacMullen2010-03-292-3/+3
| | | |
| | * | Make the generated usage functions just return a string, not print and halt.Simon MacMullen2010-03-243-4/+6
| | | |
| * | | Reinstate whitespace and [] in usage message broken in 600668c4da36.Simon MacMullen2010-03-291-2/+2
| | | |
| * | | Merging bug 22554 onto defaultMatthew Sackman2010-03-293-8/+19
| |\ \ \
| | * | | Handle multiline examples in man pages separately.Simon MacMullen2010-03-233-8/+19
| | | | |
| * | | | Merge bug22560 (worker pool to avoid stacking mnesia txns) into defaultMichael Bridgen2010-03-245-6/+316
| |\ \ \ \
| | * | | | cosmeticMatthew Sackman2010-03-231-1/+1
| | | | | |
| | * | | | Created worker pool system, and pushed the rabbit_misc:execute_mnesia_txn ↵Matthew Sackman2010-03-235-6/+316
| | | | | | | | | | | | | | | | | | | | | | | | through it.
| | | | | * Remove pipeline use in the _usage.erl target.Simon MacMullen2010-03-241-3/+9
| | |_|_|/ | |/| | |
| * | | | Merged bug22550 to default.Simon MacMullen2010-03-245-35/+39
| |\ \ \ \ | | |_|_|/ | |/| | |