| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |_|_|_|_|/
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- make credit specs contain the InitialCredit and
MoreCreditAfter. This is more intuitive and means the message sender
only needs to look at the former and the receiver at the latter.
- narrow the condition on which handle_bump_msg invokes unblock - it
only needs to do that on *transition* from =< 0 to > 0.
- refactor: extract process dict update
- cosmetic: more logical order of exported functions
|
| | | | | | |
|
|\ \ \ \ \ \ |
|
| | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
since they have limited use
This does make the rabbit_log server somewhat superfluous, but it does
get a new lease of life in bug 22470
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
from O(n^2) to O(n).
The solution comes in two parts:
1) a new table, rabbit_topic_trie_node, to explicitly track edge and
binding counts of nodes in the trie. This eliminates expensive
mnesia:match_object operations to determine these counts when needed.
2) table-scope write locks to eliminate row-level locking, which is
expensive when there are many such locks in a single transaction
|
| | | | | |
|
|/ / / / |
|
|/ / / |
|
| | |
| | |
| | |
| | | |
Turns out the token parser was broken: it didn't work with nested tuples.
|
| | | |
|
| | | |
|
|\ \ \ |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
...and mostly from amqqueue_process
|
|/ / / |
|
| | |
| | |
| | |
| | | |
deal with non-local queue declaration, and introduce ha policy and ha policy params. (does not compile)
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
messier than I'd hoped as the principle problem becomes ensuring an add after a drop works. Normally, an add would only occur on a node that has not seen said queue before: if it had, in a previous lifetime, then the booting of rabbit would have ripped out any locally stored files regarding that queue. But now this step may be missed. Having tried many different approaches, the simplest became expanding bq so that the shutdown reason is exposed to the BQ. Thus both slave and master can then detect that they're being dropped, and, in the case of master, it can convert a bq:terminate to a bq:delete_and_terminate. Every other approach I could think of turned out worse.
|
| |\ \ \ |
|
| | |\ \ \ |
|
| | |\ \ \ \ |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
immediate delivery, though hopefully in a way which has not leaked through to the lower layers...
|
| | | | | | | |
|
| | | |\ \ \ \ |
|
| | | |\ \ \ \ \ |
|
| | | | | | | | | |
|
| | | | | | | | | |
|
| | | | |\ \ \ \ \
| | | |/ / / / / / |
|
| | | | |\ \ \ \ \ |
|
| | | | |\ \ \ \ \ \ |
|
| | | | |\ \ \ \ \ \ \ |
|
| | | | | |\ \ \ \ \ \ \ |
|
| | | | | | |\ \ \ \ \ \ \ |
|
| | | | | | |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
maybe_run_queue_via_backing_queue. The principle problem is that the state with which the function is to be run is dependent on the caller. Sometimes it's the 'top level' BQ state (eg invocations called by amqqueue_process). Sometimes it's the 'bottom level' state (eg invocations called by vq or qi or msg_store). We didn't used to have multiple layers, but now we do. Consequently, the invocation must indicate 'where' the fun is to be run. The clearest explanation is in master:invoke/3
|
| | | | | | | |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
hard code that rabbit_mnesia takes care of gm - the problem being that we need access to the table dfns even when rabbit app is stopped, thus the registry would be down
|
| | | | | | | | |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
exist as a plugin
|
| | | | | | | | |\ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
requeued messages. This makes it match the spec of ack closely and is more logical. Also, entirely coincidentally, happens to be necessary for HA...
|
| | | | | | | | |\ \ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
tests/types/specs)
|
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
it could be reusable for other purposes
|
| | | | | | | | | | | | | | | | | | | |
|
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
flag, correct BQ callbacks)
|
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|/
| |/| | | | | | | | | | | | | | | | | |
|
| | |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|/
| |/| | | | | | | | | | | | | | | | |
|
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
management-specific wart.
|