summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-11-30 16:57:44 +0000
committerMatthew Sackman <matthew@lshift.net>2009-11-30 16:57:44 +0000
commit4d73f607eb390f4a231002dc1327b0d3da58194a (patch)
treeac73b215c35284ec1884eaa37172eda1a1710032
parent8a33d0617d912504364421f217aff8c93b17fec5 (diff)
downloadrabbitmq-server-git-4d73f607eb390f4a231002dc1327b0d3da58194a.tar.gz
Garbage collect on memory reduction; remove delayed_write in queue index as we're handling buffering ourselves; add a hack to get the raw vq status out of rabbitmqctl
-rw-r--r--src/rabbit_amqqueue_process.erl5
-rw-r--r--src/rabbit_queue_index.erl3
-rw-r--r--src/rabbit_variable_queue.erl4
3 files changed, 8 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index 9b9515c1dd..9cefa92694 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -90,7 +90,8 @@
acks_uncommitted,
consumers,
transactions,
- memory
+ memory,
+ raw_vq_status
]).
%%----------------------------------------------------------------------------
@@ -585,6 +586,8 @@ i(transactions, _) ->
i(memory, _) ->
{memory, M} = process_info(self(), memory),
M;
+i(raw_vq_status, State) ->
+ rabbit_variable_queue:status(State#q.variable_queue_state);
i(Item, _) ->
throw({bad_argument, Item}).
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index 6e1f496ac6..91ecd66925 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -375,7 +375,7 @@ get_journal_handle(State = #qistate { dir = Dir, seg_num_handles = SegHdls }) ->
{Hdl, State};
error ->
Path = filename:join(Dir, ?JOURNAL_FILENAME),
- Mode = [raw, binary, delayed_write, write, read, read_ahead],
+ Mode = [raw, binary, write, read, read_ahead],
new_handle(journal, Path, Mode, State)
end.
@@ -426,7 +426,6 @@ get_seg_handle(SegNum, State = #qistate { dir = Dir, seg_num_handles = SegHdls }
error ->
new_handle(SegNum, seg_num_to_path(Dir, SegNum),
[binary, raw, read, write,
- {delayed_write, ?SEGMENT_TOTAL_SIZE, 1000},
{read_ahead, ?SEGMENT_TOTAL_SIZE}],
State)
end.
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 6fc89cb4cf..919af6c13d 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -245,7 +245,9 @@ set_queue_ram_duration_target(
case TargetRamMsgCount1 == undefined orelse
TargetRamMsgCount1 >= TargetRamMsgCount of
true -> State1;
- false -> reduce_memory_use(State1)
+ false -> State2 = reduce_memory_use(State1),
+ garbage_collect(self()),
+ State2
end.
remeasure_rates(State = #vqstate { egress_rate = Egress,