We optimise memory usage of replication_map by storing endpoints list only once in case of natural_endpoints_depend_on_token() == false. For simplicity, this list is stored in the same unordered_map with special key default_replication_map_key. We inline both get_natural_endpoints and for_each_natural_endpoint_until from abstract_replication_strategy into vnode_erm since now the overrides in local and everywhere strategies are redundant. The default implementation works for them as empty sorted_tokens() is not a problem, we store endpoints with a special key. Function do_get_natural_endpoints was extracted, since get_natural_endpoints returns by val, but for_each_natural_endpoint_until reference in sufficient.
1.3 KiB
1.3 KiB