Skip to content

Commit 60a63be

Browse files
author
Daniil Fedotov
committed
Move queues to vhost storage on upgrade
1 parent 23396e7 commit 60a63be

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/rabbit_queue_index.erl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
-export([add_queue_ttl/0, avoid_zeroes/0, store_msg_size/0, store_msg/0]).
2626
-export([scan_queue_segments/3]).
2727

28+
%% Migration to per-vhost message store
29+
-export([move_to_vhost_store/1]).
30+
2831
-define(CLEAN_FILENAME, "clean.dot").
2932

3033
%%----------------------------------------------------------------------------
@@ -1400,3 +1403,17 @@ drive_transform_fun(Fun, Hdl, Contents) ->
14001403
{Output, Contents1} -> ok = file_handle_cache:append(Hdl, Output),
14011404
drive_transform_fun(Fun, Hdl, Contents1)
14021405
end.
1406+
1407+
move_to_vhost_store(#resource{} = QueueName) ->
1408+
OldQueueDir = filename:join([queues_base_dir(), "queues",
1409+
queue_name_to_dir_name(QueueName)]),
1410+
NewQueueDir = queue_dir(QueueName),
1411+
case rabbit_file:is_dir(OldQueueDir) of
1412+
true ->
1413+
ok = rabbit_file:ensure_dir(NewQueueDir),
1414+
ok = rabbit_file:rename(OldQueueDir, NewQueueDir);
1415+
false ->
1416+
rabbit_log:info("Queue index directoy not found for queue ~p~n",
1417+
[QueueName])
1418+
end,
1419+
ok.

src/rabbit_variable_queue.erl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2721,6 +2721,7 @@ migrate_queue(Queue, OldStore, NewStoreSup) ->
27212721
OldStoreClient = get_old_client(OldStore),
27222722
NewStoreClient = get_new_store_client(Queue, NewStoreSup),
27232723
#amqqueue{name = QueueName} = Queue,
2724+
rabbit_queue_index:move_to_vhost_store(QueueName),
27242725
%% WARNING: During scan_queue_segments queue index state is being recovered
27252726
%% and terminated. This can cause side effects!
27262727
rabbit_queue_index:scan_queue_segments(

0 commit comments

Comments
 (0)