diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-11-30 16:57:44 +0000 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-11-30 16:57:44 +0000 |
| commit | 4d73f607eb390f4a231002dc1327b0d3da58194a (patch) | |
| tree | ac73b215c35284ec1884eaa37172eda1a1710032 | |
| parent | 8a33d0617d912504364421f217aff8c93b17fec5 (diff) | |
| download | rabbitmq-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.erl | 5 | ||||
| -rw-r--r-- | src/rabbit_queue_index.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_variable_queue.erl | 4 |
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, |
