summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove vestigial use of read_ahead.Simon MacMullen2014-12-121-4/+2
|
* Use msg_in_ram/1 more.Simon MacMullen2014-12-121-21/+19
|
* Rephrase, and add a high level introduction.Simon MacMullen2014-12-111-6/+19
|
* Reduce distance to default, add a tiny bit more explanation.Simon MacMullen2014-12-112-16/+10
|
* Merge in defaultSimon MacMullen2014-12-114-248/+464
|\
| * Run the VQ tests both while embedding messages in the QI and sending them to ↵Simon MacMullen2014-12-111-5/+9
| | | | | | | | the store.
| * A few fixes to VQ book-keeping, which get the tests passing again:Simon MacMullen2014-12-113-109/+139
| | | | | | | | | | | | | | | | | | * Don't count messages / bytes read during read, do so in betas_from_index_entries since unacked msgs don't count * Introduce qi_pending_ack to prevent us trying to page out messages that don't touch the store * Fix purge bookkeeping, account for the fact messages can be paged in to be purged
| * Clearer test failures.Simon MacMullen2014-12-051-5/+14
| |
| * API changesSimon MacMullen2014-12-051-8/+12
| |
| * Don't recover transient messages.Simon MacMullen2014-12-051-2/+2
| |
| * Update essay.Simon MacMullen2014-12-051-6/+8
| |
| * Introduce a selection mechanism so that small messages go to the index, and ↵Simon MacMullen2014-12-052-13/+34
| | | | | | | | large ones go to the store.
| * Fix bookkeeping of ram_msg_{count,bytes} - don't assume it decrements on ↵Simon MacMullen2014-12-051-23/+28
| | | | | | | | alpha -> beta transition, allow it to decrement on beta -> delta as well if the message went to the QI. (We were already correct on delta -> beta, and there isn't a bulk beta -> alpha move.)
| * Reinstate this.Simon MacMullen2014-12-051-1/+1
| |
| * UpgradeSimon MacMullen2014-12-051-3/+36
| |
| * Don't leak on noack.Simon MacMullen2014-12-041-3/+4
| |
| * Fix dirty recovery.Simon MacMullen2014-12-031-1/+5
| |
| * Fix confirmsSimon MacMullen2014-12-033-39/+69
| |
| * Rename msg_on_disk to msg_in_store and fix up its semantics. We now don't ↵Simon MacMullen2014-12-031-27/+24
| | | | | | | | need to guard msg_store read and remove as we should just naturally not need to do them.
| * Hacked-together implementation of persisting messages in the QI. Currently ↵Simon MacMullen2014-12-032-98/+181
| | | | | | | | does it for all messages, but in reality we'd only want to do this for small ones (and make it configurable). Confirms are probably broken, maybe some other things.
* | stable to defaultSimon MacMullen2014-12-111-2/+13
|\ \
| * \ Merge bug26498Simon MacMullen2014-12-111-2/+13
| |\ \
| | * | Minor refactor.Simon MacMullen2014-12-111-8/+10
| | | |
| | * | Backport the part of 505868f421db which fixes ram_bytes when requeueing an ↵Simon MacMullen2014-12-111-2/+11
| |/ / | | | | | | | | | in-memory message to delta, and do the same for beta.
* | | merge bug26475 into defaultMichael Klishin2014-12-107-25/+142
|\ \ \
| * \ \ stable to defaultSimon MacMullen2014-12-1017-187/+507
| |\ \ \ | | |/ / | |/| |
| | * | stable to default (Alvaro forgot)Simon MacMullen2014-12-0917-187/+507
| | |\ \
| | | * \ stable to defaultSimon MacMullen2014-12-0517-187/+507
| | | |\ \
| | | | * \ stable to defaultSimon MacMullen2014-12-0517-187/+507
| | | | |\ \ | | | | | |/
| | | | | * stable to defaultSimon MacMullen2014-11-281-4/+14
| | | | | |\
| | | | | * \ stable to defaultSimon MacMullen2014-11-281-15/+27
| | | | | |\ \
| | | | | * \ \ stable to defaultSimon MacMullen2014-11-262-0/+9
| | | | | |\ \ \
| * | | | | \ \ \ Merge bug26491Simon MacMullen2014-12-100-0/+0
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| * | | | | | | | Minor language corrections.Simon MacMullen2014-12-101-4/+4
| | | | | | | | |
| * | | | | | | | Autoheal: Make sure Mnesia is stopped on all losers before they restartJean-Sebastien Pedron2014-12-101-0/+29
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This works around a race in Mnesia where a starting loser would hang forever. This happens when a starting loser connects to another loser, negotiates the Mnesia protocol and attempts to acquire a write lock on the other node's schema. If the other nodes stops right between the protocol negotiation and the lock request, the starting node never receives an answer to its request. Before this fix, the hang occurred after at most 30 minutes looping on the partitions:autoheal test in rabbitmq-test. With the fix, RabbitMQ survived an all night long run.
| * | | | | | | merges bug26478 into stableAlvaro Videla2014-12-083-25/+101
| |\ \ \ \ \ \ \ | | |/ / / / / /
| | * | | | | | Merge bug26446Simon MacMullen2014-12-051-1/+21
| | |\ \ \ \ \ \ | | | |/ / / / / | | |/| | | | |
| | | * | | | | Throw an error if at least one plugin's module can't be loadedJean-Sebastien Pedron2014-12-031-1/+21
| | | | |_|_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prevents a plugin from being enabled if it won't be able to actually run later. A use case for this is a plugin built with Erlang version N, but executed on Erlang version M, where M isn't capable of running the bytecode from N. This was the case with Eralng R14B vs. R15B. The "rabbitmq-plugins enable <plugin>" command reports the error and the plugin remains disabled. A node reports the error too and refuses to start, exactly as if the plugin was missing.
| | * | | | | Merge bug26493Simon MacMullen2014-12-050-0/+0
| | |\ \ \ \ \ | | | |/ / / /
| | * | | | | Abstraction: safe process_info().Simon MacMullen2014-12-051-10/+16
| | | | | | |
| | * | | | | Add top_memory_use() and top_binary_refs().Simon MacMullen2014-12-051-3/+31
| | |/ / / /
| | * | | | Merge bug26265Simon MacMullen2014-11-285-22/+71
| | |\ \ \ \ | | | | |_|/ | | | |/| |
| | | * | | Merge bug 26081Simon MacMullen2014-11-280-0/+0
| | | |\ \ \ | | | | | |/ | | | | |/|
| | | * | | Rename this to indicate what it does, not the current circumstances in which ↵Simon MacMullen2014-11-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | it is called.
| | | * | | Check cluster consistency before joining a clusterJean-Sebastien Pedron2014-11-271-15/+27
| | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, the node would join the cluster and the consistency would be only checked during application restart (rabbitmqctl start_app). This could lead to crash during the join due to Erlang, Mnesia or RabbitMQ incompatibilities. Now, the join_cluster command reports the problem. Here's an example: $ rabbitmqctl join_cluster <remote_node> Clustering node <local_node> with <remote_node> ... Error: {inconsistent_cluster, "OTP version mismatch: local node is R16B03-1, remote node 17.3"}
| | * | | No need to load/unload the plugin around the plugin_provided_by_otp/1 checkJean-Sebastien Pedron2014-11-281-14/+3
| | | | | | | | | | | | | | | | | | | | While here, remove the unused PluginVsn variable.
| | * | | Remove "Plugins: adding to code path" log messageJean-Sebastien Pedron2014-11-281-2/+0
| | | | |
| | * | | Only check ERTS version to determine if we accept an external eldapJean-Sebastien Pedron2014-11-261-31/+3
| | | | |
| | * | | Add plugin paths to the beginning of the code pathJean-Sebastien Pedron2014-11-241-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goal is to make sure the right application is picked, in case the same one is available as both a RabbitMQ plugin and an external Erlang application. For instance, this could be the case with the Cowboy application: a version is available in the plugins, but the user could add an incompatible version to Erlang/OTP libdir or set ERL_LIBS to point to it. There's one exception currently: eldap. This application used to be available as a 3rd party one. But since Erlang R15B01, it's included in the standard library. We trust this version to have a stable API. Therefore, if the node runs on R15B01 or later and eldap version is 1.0+, we use this one. In all other cases, we don't trust it and prefer the RabbitMQ plugin.
| * | | | Don't halt execution if RABBITMQ_CTL_ERL_ARGS is set.Simon MacMullen2014-11-261-0/+3
| | |/ / | |/| |