summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Resurrect default without bug24494, for real this time.Simon MacMullen2012-02-211-1/+1
|
* Merged bug24365 into defaultEmile Joubert2012-02-202-4/+21
|\
| * How do I hate thee, coverage? Let me count the ways.Simon MacMullen2012-02-171-0/+7
| | | | | | | | Now that ctl reset disconnects us from the distributed system, it breaks coverage each time we do it. Fix all that up again.
| * Merge in defaultSimon MacMullen2012-02-152-4/+14
| |\
| | * Fix tests, at the cost of a leetle tiny bit of ugliness.Simon MacMullen2011-08-221-1/+7
| | |
| | * Leave the Erlang distributed system when resetting.Simon MacMullen2011-08-221-3/+7
| | |
* | | merge bug24381 into default (Windows INSTALL file is not readable using notepad)Alexandru Scvortov2012-02-171-0/+3
|\ \ \ | |/ / |/| |
| * | Use DOS/Windows linebreaksEmile Joubert2012-02-161-0/+3
|/ /
* | Merge bug24086Simon MacMullen2012-02-156-36/+55
|\ \
| * | refactor: less strange variable scopingMatthias Radestock2012-02-141-7/+8
| | |
| * | Remerge bug24714Emile Joubert2012-02-152-13/+8
| |\ \
| | * | Unmerge bug20337Emile Joubert2012-02-151-1/+1
| | | |
| | * | simplifying refactorMatthias Radestock2012-02-131-12/+7
| | | |
| * | | monitor nodes just onceMatthias Radestock2012-02-091-9/+12
| |/ /
| * | remove cruftMatthias Radestock2012-02-091-1/+1
| | |
| * | Merge bug24668 (make consumer flow control more like credit_flow; improve ↵Simon MacMullen2012-02-093-6/+26
| |\ \ | | | | | | | | | | | | performance along the way)
| | * | CosmeticSimon MacMullen2012-02-091-1/+1
| | | |
| | * | credit_flow-like throttling of queue->writer message flowMatthias Radestock2012-02-073-6/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we effectively had a credit_spec of {100,1}, i.e. the queue would send up to 100 messages to a consumer channel/writer, and the writer would 'ack' them individually. That is horrendeously inefficient: - when draining a queue, after the queue had sent 100 messages it would block the consumer, unblock when the notify_sent 'ack' came in, send another message to the channel/queue, block again. So a vast amount of work per message - in a cluster, the notify_sent 'acks' effectively doubled the cross-cluster traffic We now use a scheme much like credit_flow. Except we cannot *actually* use credit_flow because - rather than wanting to know whether a sender is lacking credit for *any* receiver, as indicated by credit_flow:blocked(), we need to know *which* receiver we are lacking credit for. - (lack of) credit from receiver should *not* propagate to senders, i.e. sender and receiver credits are completely decoupled. Instead the queue should, er, queue messages when receivers cannot keep up. While we could modify credit_flow to accomodate the above, the changes would be quite unpleasant and not actually reduce the amount of code vs implementing a more specialised scheme. The downside is that the contract for using rabbit_amqqueue:notify_sent becomes somewhat mysterious. In particular it sets up a monitor for queues in the caller, and expects the caller to invoke rabbit_amqqueue:notify_sent_queue_down when a 'DOWN' message is received.
* | | | handle framing errors promptlyMatthias Radestock2012-02-091-10/+10
|/ / /
* | | refactor channel frame handlingMatthias Radestock2012-02-091-24/+21
| | | | | | | | | | | | | | | | | | | | | ...so there is just one process_channel_frame call site. Also, ensure control_throttle isn't called twice, which would happen when processing a 'channel.close_ok' frame. No harm in it, really, but unnecessary.
* | | Merged bug24505 into defaultEmile Joubert2012-02-083-103/+117
|\ \ \
| * \ \ Merge bug24234Simon MacMullen2012-02-081-11/+32
| |\ \ \
| | * | | Committed some changes by mistake...Francesco Mazzoli2012-02-013-32/+13
| | | | |
| | * | | Cosmetic, restored reject/4 arguments to the previous order.Francesco Mazzoli2012-02-014-20/+40
| | | | |
| | * | | Merge default.Francesco Mazzoli2012-02-011-12/+32
| | |\ \ \
| | | * \ \ Merge default.Francesco Mazzoli2012-01-3118-257/+445
| | | |\ \ \
| | | * | | | Renamede reject_tx/4 to reject/4.Francesco Mazzoli2012-01-311-4/+4
| | | | | | |
| | | * | | | Delete extra whitespace.Francesco Mazzoli2012-01-251-2/+0
| | | | | | |
| | | * | | | Cons instead of append, reject does not change the channel state.Francesco Mazzoli2012-01-251-6/+5
| | | | | | |
| | | * | | | 'case' statement styleFrancesco Mazzoli2012-01-251-2/+3
| | | | | | |
| | | * | | | reject doesn't need to know about the channel state.Francesco Mazzoli2012-01-251-5/+6
| | | | | | |
| | | * | | | Fix to reject_tx, list comprehension instead of map.Francesco Mazzoli2012-01-251-2/+3
| | | | | | |
| | | * | | | Flatten the list of lists.Francesco Mazzoli2012-01-251-1/+1
| | | | | | |
| | | * | | | Executing basick.{nack,reject} transactionally.Francesco Mazzoli2012-01-241-15/+36
| | | | | | |
| * | | | | | Merge bug24730Simon MacMullen2012-02-082-83/+67
| |\ \ \ \ \ \
| | * | | | | | refactor: remove cruftMatthias Radestock2012-02-081-31/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The equivalence proof is left as an exercise to the reader.
| | * | | | | | refactor: extract commonality between basic.deliver and basic.getMatthias Radestock2012-02-071-52/+43
| | | |_|_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | ...and move the writer communication as early as possible, which improves latency.
| * | | | | | Don't sync the mnesia disk log when nothing got written to itMatthias Radestock2012-02-061-8/+17
| |/ / / / / | | | | | | | | | | | | | | | | | | This is imperfect but safe.
* | | | | | cosmetic: drop redundant /integer in binary matchMatthias Radestock2012-02-081-27/+27
| | | | | | | | | | | | | | | | | | | | | | | | plus re-indent comments
* | | | | | Merged default.Francesco Mazzoli2012-02-076-34/+79
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | Using gen_secure/0 only when really needed.Francesco Mazzoli2012-02-073-11/+11
| | | | | |
| * | | | | Better comments regarding gen/0, explicit range for phash/2.Francesco Mazzoli2012-01-311-4/+12
| | | | | |
| * | | | | Better comment for gen/0.Francesco Mazzoli2012-01-312-4/+5
| | | | | |
| * | | | | Update comment for gen/0.Francesco Mazzoli2012-01-312-3/+4
| | | | | |
| * | | | | Merge master in.Francesco Mazzoli2012-01-3133-450/+663
| |\ \ \ \ \
| * | | | | | Change fash guid generation function to use phash + rotating blocks.Francesco Mazzoli2012-01-311-7/+17
| | | | | | |
| * | | | | | Change the guid related entries names in the process dict.Francesco Mazzoli2012-01-171-2/+2
| | | | | | |
| * | | | | | Change naming in rabbit_guid, explicit guid passing in string/0 and binary/0.Francesco Mazzoli2012-01-176-45/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically: fast_guid() -> gen() guid() -> secure_gen() string_guid(Prefix) -> string(Guid, Prefix) binstring_guid(Prefix) -> binary(Guid, Prefix)
| * | | | | | Split guid/0 in guid/0 and the faster fast_guid/0.Francesco Mazzoli2012-01-172-13/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first function works like the old one (hashes the {serial, counter} each time. The second function (fast_guid/0) hashes the serial once, and the XORs it with the counter each time a new guid is needed. Thus, it is more predictable but should not produce less unique guids. If the fast function is used when generating ids for messages, it leads to a considerable speedup when testing with BroadcastMain (from 67k msg/s to 75k msg/s).
* | | | | | | cosmeticMatthias Radestock2012-02-061-4/+2
| | | | | | |