this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Use ClusterConfig directly in Manager

garrison bbdb70e0 8c34206b

+7 -34
+7 -34
lib/servers/manager.ex
··· 25 25 generation: non_neg_integer | nil, 26 26 supervisors: [pid], 27 27 recovered_tlogs: [TLogStatus.t], 28 - config: Config.t, 28 + config: ClusterConfig.t, 29 29 cluster: Cluster.t, 30 30 server_monitors: %{reference => non_neg_integer}, 31 31 next_id: non_neg_integer, ··· 45 45 ] ++ @enforce_keys 46 46 end 47 47 48 - defmodule Config do 49 - @type t :: %__MODULE__{ 50 - num_begin_buffers: pos_integer, 51 - num_commit_buffers: pos_integer, 52 - num_tlog_teams: pos_integer, 53 - num_storage_teams: pos_integer, 54 - num_replicas: 1 | 2 | 3, 55 - initial_shards: [binary], 56 - } 57 - @enforce_keys [ 58 - :num_begin_buffers, 59 - :num_commit_buffers, 60 - :num_tlog_teams, 61 - :num_storage_teams, 62 - :num_replicas, 63 - :initial_shards, 64 - ] 65 - defstruct @enforce_keys 66 - end 67 - 68 48 @tick_interval_ms 100 69 49 70 50 def start_link(opts) do ··· 150 130 assert is_integer(generation) 151 131 assert is_list(config_pairs) 152 132 153 - config = load_config(config_pairs) 133 + config = ClusterConfig.from_pairs(config_pairs) 154 134 assert config.num_replicas in [1, 2, 3] 155 135 156 136 tlog_generations = load_generations(generation_pairs) ··· 407 387 # 3 -> Sequencer, Resolver, Distributor 408 388 {num_begin_buffers, num_commit_buffers} = compute_buffer_counts(open_stateless_slots - 3) 409 389 410 - %Config{} = config = state.config 390 + %ClusterConfig{} = config = state.config 411 391 412 392 # TODO: this is not fault-tolerant if there is more than one TLog slot per node 413 393 open_tlog_teams = div(open_tlog_slots, config.num_replicas) ··· 495 475 # 3 -> Sequencer, Resolver, Distributor 496 476 {num_begin_buffers, num_commit_buffers} = compute_buffer_counts(open_stateless_slots - 3) 497 477 498 - %Config{} = config = state.config 478 + %ClusterConfig{} = config = state.config 499 479 500 480 # TODO: this is not fault-tolerant if there is more than one TLog slot per node 501 481 open_tlog_teams = div(open_tlog_slots, config.num_replicas) ··· 888 868 end 889 869 end 890 870 891 - defp load_config(pairs) when is_list(pairs) do 892 - fields = 893 - ClusterConfig.from_pairs(pairs) 894 - |> Map.from_struct() 895 - struct!(Config, fields) 896 - end 897 - 898 871 defp load_generations(pairs) when is_list(pairs) do 899 872 pairs 900 873 |> Enum.map(&unpack_tlog_generation_pair/1) ··· 911 884 |> Enum.reverse() 912 885 end 913 886 914 - defp build_seed_meta(%Config{num_replicas: num_replicas} = config, storage_server_ids) do 887 + defp build_seed_meta(%ClusterConfig{num_replicas: num_replicas} = config, storage_server_ids) do 915 888 num_storage_teams = div(length(storage_server_ids), num_replicas) 916 889 storage_team_ids = Enum.to_list(0..(num_storage_teams - 1)) 917 890 ··· 930 903 Enum.sort(storage_pairs ++ shard_pairs ++ other_pairs) 931 904 end 932 905 933 - defp build_storage_meta(%Config{num_replicas: num_replicas}, storage_teams, storage_server_ids) do 906 + defp build_storage_meta(%ClusterConfig{num_replicas: num_replicas}, storage_teams, storage_server_ids) do 934 907 server_tag_pairs = 935 908 Enum.map(storage_server_ids, fn id -> 936 909 { ··· 950 923 server_tag_pairs ++ storage_teams_pairs 951 924 end 952 925 953 - defp build_shard_meta(%Config{initial_shards: shards}, storage_teams) do 926 + defp build_shard_meta(%ClusterConfig{initial_shards: shards}, storage_teams) do 954 927 storage_team_count = length(storage_teams) 955 928 956 929 shards