summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Got rid of unused function and warnings.Francesco Mazzoli2012-02-091-10/+3
|
* Merged defaultFrancesco Mazzoli2012-02-09129-472/+691
|\
| * 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.
| * | 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
| | | | | | |
| * | | | | | correct some signatures and return typesMatthias Radestock2012-02-062-3/+3
| | | | | | |
| * | | | | | Merged bug24624 into defaultEmile Joubert2012-02-067-71/+124
| |\ \ \ \ \ \
| | * \ \ \ \ \ merge default into bug24624 and use new rabbit_misc:format/2Matthias Radestock2012-02-026-28/+22
| | |\ \ \ \ \ \
| | * | | | | | | Move cookie_hash/0 too.Simon MacMullen2012-02-023-8/+8
| | | | | | | | |
| | * | | | | | | Move rabbit_misc:nodeparts/1 and rabbit_misc:makenode/1 into rabbit_nodesSimon MacMullen2012-02-025-27/+26
| | | | | | | | |
| | * | | | | | | "to contact" isn't correct in the duplicate check case.Simon MacMullen2012-02-021-1/+1
| | | | | | | | |
| | * | | | | | | Unify the more resilient hostname check, refactor out this code into a new ↵Simon MacMullen2012-02-024-50/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | module.
| | * | | | | | | Clean up diagnostics code, clean up diagnostics messages.Simon MacMullen2012-02-021-27/+33
| | | | | | | | |
| | * | | | | | | Remove nodes file immediately after starting Mnesia.Simon MacMullen2012-02-022-4/+3
| | | | | | | | |
| | * | | | | | | OopsSimon MacMullen2012-02-021-1/+1
| | | | | | | | |
| | * | | | | | | Merge in defaultSimon MacMullen2012-02-024-28/+46
| | |\ \ \ \ \ \ \
| | | * | | | | | | Make rabbit:diagnostics/1 just return a string. It's still most convenient ↵Simon MacMullen2011-12-163-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to assemble it the way we did before, but now the API is saner.
| | | * | | | | | | Ahem2Simon MacMullen2011-12-131-1/+1
| | | | | | | | | |
| | | * | | | | | | Ahem.Simon MacMullen2011-12-131-1/+1
| | | | | | | | | |