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.
This commit is contained in:
@@ -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<tablet_replica>(tinfo.replicas.begin(), tinfo.replicas.end()),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user