Skip to content

Commit e4697f3

Browse files
committed
Make max_connections a multiplier of cassandra nodes
1 parent 1b09a78 commit e4697f3

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

src/elysium_default_config.erl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ cassandra_send_timeout() -> 1000.
8383

8484
-spec cassandra_max_sessions() -> max_connections().
8585
%% @doc Allow a max of 16 simultaneous live Cassandra sessions.
86-
cassandra_max_sessions() -> 5.
86+
cassandra_max_sessions() -> 3.
8787

8888
-spec cassandra_max_checkout_retry() -> max_retries().
8989
%% @doc Retry up to 20 times when session queue races occur.
90-
cassandra_max_checkout_retry() -> 3.
90+
cassandra_max_checkout_retry() -> 5.
9191

9292
-spec cassandra_session_decay_probability() -> decay_prob().
9393
%% @doc Kill a live session 100,000 out of 1 Billion times it is used.

src/elysium_queue.erl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,11 @@ terminate(Reason, _State_Name,
190190
%% @private
191191
%% @doc Move to 'ACTIVE' if requested, otherwise stay in 'INACTIVE' state.
192192
?inactive(activate, _From, #ef_state{config=Config, connection_sup=Conn_Sup} = State) ->
193-
Max_Connections = elysium_config:session_max_count(Config),
193+
Max_Connections = elysium_config:session_max_count (Config),
194+
Lb_Queue_Name = elysium_config:load_balancer_queue (Config),
195+
Num_Nodes = ets_buffer:num_entries_dedicated (Lb_Queue_Name),
194196
_ = [spawn_monitor(elysium_connection_sup, start_child, [Conn_Sup, [Config]])
195-
|| _N <- lists:seq(1, Max_Connections)],
197+
|| _N <- lists:seq(1, Max_Connections * Num_Nodes)],
196198
{reply, Max_Connections, ?active, State};
197199
?inactive(_Any, _From, #ef_state{} = State) ->
198200
{reply, ok, ?inactive, State}.
@@ -227,9 +229,11 @@ terminate(Reason, _State_Name,
227229
%% @private
228230
%% @doc Activate if requested, from the 'INACTIVE' state.
229231
?inactive(activate, #ef_state{config=Config, connection_sup=Conn_Sup} = State) ->
230-
Max_Connections = elysium_config:session_max_count(Config),
232+
Max_Connections = elysium_config:session_max_count (Config),
233+
Lb_Queue_Name = elysium_config:load_balancer_queue (Config),
234+
Num_Nodes = ets_buffer:num_entries_dedicated (Lb_Queue_Name),
231235
_ = [spawn_monitor(elysium_connection_sup, start_child, [Conn_Sup, [Config]])
232-
|| _N <- lists:seq(1, Max_Connections)],
236+
|| _N <- lists:seq(1, Max_Connections * Num_Nodes)],
233237
{next_state, ?active, State};
234238
?inactive(_Other, #ef_state{} = State) ->
235239
{next_state, ?inactive, State}.

0 commit comments

Comments
 (0)