From 649ca0e46c614e30c3bac4d26eb5e829fe7f6933 Mon Sep 17 00:00:00 2001 From: Tomasz Grabiec Date: Fri, 19 Jan 2024 12:14:07 +0100 Subject: [PATCH] tablets: Introduce get_migration_streaming_info() which works on migration request Will be used by tablet load balancer to compute impact on load of planned migrations. Currently, the logic is hard coded in the load balancer and may get out of sync with the logic we have in get_migration_streaming_info() for already running tablet transitions. The logic will become more complex for rebuild transition, so use shared code to compute it. --- locator/tablets.cc | 4 ++++ locator/tablets.hh | 1 + 2 files changed, 5 insertions(+) diff --git a/locator/tablets.cc b/locator/tablets.cc index 41f9da2dfe..836cd083ae 100644 --- a/locator/tablets.cc +++ b/locator/tablets.cc @@ -79,6 +79,10 @@ tablet_transition_info::tablet_transition_info(tablet_transition_stage stage, , reads(get_selector_for_reads(stage)) { } +tablet_migration_streaming_info get_migration_streaming_info(const tablet_info& tinfo, const tablet_migration_info& trinfo) { + return get_migration_streaming_info(tinfo, migration_to_transition_info(tinfo, trinfo)); +} + tablet_migration_streaming_info get_migration_streaming_info(const tablet_info& tinfo, const tablet_transition_info& trinfo) { tablet_migration_streaming_info result = { .read_from = std::unordered_set(tinfo.replicas.begin(), tinfo.replicas.end()), diff --git a/locator/tablets.hh b/locator/tablets.hh index 171477380c..4d136645b6 100644 --- a/locator/tablets.hh +++ b/locator/tablets.hh @@ -220,6 +220,7 @@ struct tablet_migration_streaming_info { }; tablet_migration_streaming_info get_migration_streaming_info(const tablet_info&, const tablet_transition_info&); +tablet_migration_streaming_info get_migration_streaming_info(const tablet_info&, const tablet_migration_info&); // Describes if a given token is located at either left or right side of a tablet's range enum tablet_range_side {