summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* merging default into bug 20072 as default has moved a long way in the meantimebug20072Matthew Sackman2010-01-213-63/+194
|\
| * Split queues to limited and unlimited queues, thus we don't need to filter ↵Matthew Sackman2010-01-211-63/+97
| | | | | | | | out unlimited queues when trying to unblock. There's still the dict:fold over all the limited queues, otoh, this can't be avoided given the probabilistic nature of the solution - we just don't know in advance how many queues we're going to attempt to unblock. Also, found a large number of bugs here with the previous version - such as the inability to cope with several queues of the same length and others too.
| * inability to do mathsMatthew Sackman2009-11-241-2/+2
| |
| * Don't bother working through a bunch of queues which have zero length. Of ↵Matthew Sackman2009-11-241-16/+21
| | | | | | | | course when being called through unblock_all, we really do need to tell everyone.
| * Well, there's been a reorganisation of the algorithm. It's an approximation ↵Matthew Sackman2009-11-241-28/+36
| | | | | | | | of what we really want, but with the advantage that we don't need to build a new data structure, but the disadvantage that there may be too many calls to random:uniform. However, it does it in one pass (well, max 2 passes) of the list of queues, instead of N. For massive numbers of queues, this'll actually be better as the cost of manipulating a huge data structure will be higher than the additional calls to random:uniform. The QoS fairness tests pass randomly.
| * All the low hanging fruit from the QA notesMatthew Sackman2009-11-243-11/+20
| |
| * And now it can't deadlock. Beautiful.Matthew Sackman2009-11-233-20/+32
| |
| * First hack. Note that whilst this does the "right" thing, there is no ↵Matthew Sackman2009-11-203-56/+119
| | | | | | | | | | | | attempt made to avoid deadlock. The Java tests (in particular the QoS Tests) all pass. Basically, I take the longest queue length, double it. The probability of that queue being unblocked is 50% (i.e. len >= 2*Len). That 2*Len is then used against all the queues, with their own length. Thus the shorter they are, the lower their probability of being unblocked. We stop work when we guarantee that either we've woken everyone up, or we've woken up enough to guarantee that we're now reblocked. In general, this is pretty rough and ready and more like a proof of concept. Needs refinement.
* | this looks prettierMatthias Radestock2010-01-211-1/+1
| |
* | merge v1_7 into defaultMatthias Radestock2010-01-197-119/+269
|\ \
| * | bug22209: added a comment to use upmap carefully.Alexander Schmolck2010-01-131-2/+5
| | |
| * | merge bug 22039 into defaultMatthew Sackman2009-12-2218-681/+235
| |\ \
| | * \ merging v1_7 into defaultMatthew Sackman2009-12-191-7/+15
| | |\ \
| | * \ \ merge bug22082 into defaultMatthias Radestock2009-12-1817-670/+220
| | |\ \ \
| * | | | | Refactor away boot_core_processes.bug22039Tony Garnock-Jones2009-12-172-33/+60
| | | | | |
| * | | | | Refactor boot_recovery, boot_tcp_listeners and boot_ssl_listenersTony Garnock-Jones2009-12-172-40/+39
| | | | | |
| * | | | | Merge default into bug22039Tony Garnock-Jones2009-12-174-115/+240
| |\ \ \ \ \ | | |/ / / / | |/| | | |
| | * | | | cosmetics (mainly line length, alignment and trailing WS)Matthew Sackman2009-12-161-48/+69
| | | | | |
| | * | | | Split up and tweak startup order.Tony Garnock-Jones2009-12-143-50/+48
| | | | | |
| | * | | | Switch to explicit MFA, and symbolic boot step names.Tony Garnock-Jones2009-12-141-56/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add comments to sort_boot_steps. Reject duplicate boot step names.
| | * | | | Move planning code out of activator and into rabbit proper.Tony Garnock-Jones2009-12-143-103/+95
| | | | | |
| | * | | | Enforce acyclicity; check presence and export of steps.Tony Garnock-Jones2009-12-141-4/+36
| | | | | |
| | * | | | Fixup specs.Tony Garnock-Jones2009-12-141-2/+2
| | | | | |
| | * | | | Add "-rabbit_boot_step" module attribute to specify startup sequence.Tony Garnock-Jones2009-12-143-121/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - The plugin activator prepares the startup plan. - This means that it's no longer going to work to run without a boot script. Consequently, I've added a call to rabbitmq-activate-plugins to the Makefile for the 'all' target. - I've refactored the old boot sequence to use the new method for specifying boot steps. I've conservatively put dependencies forcing them into a straight line, as they were before. - Since the plugin activator runs so frequently, I've made it suppress the (spurious) warnings we get about core beam files being out of date on Ubuntu.
| | * | | | Merge default into bug22039Tony Garnock-Jones2009-12-141-12/+12
| | |\ \ \ \
| | * \ \ \ \ Merge default into bug22039Tony Garnock-Jones2009-12-145-66/+91
| | |\ \ \ \ \
| | * \ \ \ \ \ Merge default into bug22039Tony Garnock-Jones2009-12-011-10/+33
| | |\ \ \ \ \ \
| | | * | | | | | Avoid compiler warning about unused term; weirdly, the replaced idiom works ↵Tony Garnock-Jones2009-11-301-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | elsewhere
| | | * | | | | | Change tactic to examine modules in .app files for rabbit_static_hook_* modulesTony Garnock-Jones2009-11-301-14/+16
| | | | | | | | |
| | | * | | | | | Initial stab at the problemTony Garnock-Jones2009-11-301-10/+30
| | | | | | | | |
* | | | | | | | | merge bug22223 into v1_7Matthias Radestock2010-01-192-22/+29
|\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ merge bug22221 into v1_7Matthias Radestock2010-01-192-22/+29
| |\ \ \ \ \ \ \ \ \
| | * | | | | | | | | no need to match on 'ok' twicebug22221Matthias Radestock2010-01-191-5/+5
| | | | | | | | | | |
| | * | | | | | | | | vertical alignment of -> in queue_foldDavid R. MacIver2010-01-191-1/+1
| | | | | | | | | | |
| | * | | | | | | | | rebranch off v1_7 rather than defaultDavid R. MacIver2010-01-192-24/+31
| |/ / / / / / / / /
* | | | | | | | | | Bumped priority of acks to match that of the unblock and notify_sent callsbug22223Matthew Sackman2010-01-181-1/+1
|/ / / / / / / / /
* | | | | | | | | merge bug22013 into v1_7Matthias Radestock2010-01-1524-706/+436
|\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ merge bug19111 into v1_7Matthias Radestock2010-01-150-0/+0
| |\ \ \ \ \ \ \ \ \ | | | |_|_|_|_|_|/ / | | |/| | | | | | |
| * | | | | | | | | recreate branch in correct placebug19111Matthias Radestock2010-01-151-0/+36
| |/ / / / / / / /
| * | | | | | | | merging bug 20916 into v1_7Matthew Sackman2009-12-190-0/+0
| |\ \ \ \ \ \ \ \
| * | | | | | | | | not_found error on attempt to declare a queue that exists on a stopped nodebug20916Matthias Radestock2009-12-181-7/+15
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this prevents loss or duplication of messages when that node recovers I considered returing {ok, Q} | {error, not_found} from internal_declare (and subsequently declare), and let the channel deal with throwing the appropriate amqp error. But - that would be a change to a crucial internal API that is used by quite a few extensions - it would make the return type inconsistent with rabbit_exchange:declare, which too only returns X, not {ok, X}. - the rabbit_amqqueue module already knows about amqp errors - see with_or_die. So this is not breaking any concern separation.
| * | | | | | | | Merge no-pluggable-exchange branch into v1.7-series branch.Michael Bridgen2009-12-1841-758/+980
| |\ \ \ \ \ \ \ \ | | | |_|_|_|_|/ / | | |/| | | | | |
| | * | | | | | | post-backout mergebug22082Matthias Radestock2009-12-1815-561/+220
| | |\ \ \ \ \ \ \
| | | * | | | | | | Backed out changeset 71e93e17450cMatthias Radestock2009-12-1815-561/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pluggable exchange types are not ready for prime time yet
| | * | | | | | | | post-backout mergeMatthias Radestock2009-12-181-1/+0
| | |\ \ \ \ \ \ \ \
| | | * | | | | | | | Backed out changeset b2363fc1a51aMatthias Radestock2009-12-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pluggable exchange types are not ready for prime time yet
| | * | | | | | | | | post-backout mergeMatthias Radestock2009-12-183-117/+9
| | |\ \ \ \ \ \ \ \ \
| | | * | | | | | | | | Backed out changeset 3ab59ae0f0e9Matthias Radestock2009-12-183-117/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pluggable exchange types are not ready for prime time yet
| | * | | | | | | | | | create branch for bug 22082Matthias Radestock2009-12-180-0/+0
| | | |_|_|/ / / / / / | | |/| | | | | | | |
| | * | | | | | | | | merge bug22013 into defaultMatthias Radestock2009-12-1712-146/+282
| | |\ \ \ \ \ \ \ \ \ | | | |/ / / / / / / /