Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
9d96fef
autocluster: Allow users to list nodes
ieQu1 Jun 19, 2026
82d1627
node: Store site and cluster in persistent terms
ieQu1 Jun 19, 2026
baddc87
run_level: Split to a separate process
ieQu1 Jun 19, 2026
1dfaac3
run_level: Changing run level can time out
ieQu1 Jun 19, 2026
21e2674
Fix minor issues
ieQu1 Jun 19, 2026
0706a5c
run_level: Simplify startup and shutdown
ieQu1 Jun 19, 2026
4cb6af6
Remove some useless info handlers
ieQu1 Jun 19, 2026
6bf008e
membership: Add liveness and misc. info to CRDT
ieQu1 Jun 19, 2026
c64a24d
node: Pass intent to post_join
ieQu1 Jun 19, 2026
3adbba8
node: Protect node join with a global lock
ieQu1 Jun 20, 2026
75538e1
rl_changer: Make the server fully async
ieQu1 Jun 21, 2026
532f301
Change how membership and node communicate
ieQu1 Jun 24, 2026
5a9808f
membership: Add from_liveness function and the test
ieQu1 Jun 24, 2026
ae415e4
membership: Store liveness as an integer in the CRDT
ieQu1 Jun 24, 2026
dfdc9c9
node: Fix restart detection logic
ieQu1 Jun 24, 2026
a4bb6d2
n_restarts: Move this value to liveness module
ieQu1 Jun 24, 2026
0f26397
n_restarts: Unwrap error tuple
ieQu1 Jun 24, 2026
96f8e2e
liveness: Relax timings on the tests
ieQu1 Jun 25, 2026
0f002ce
New feature: node sets
ieQu1 Jun 25, 2026
3bf8343
Allow to restrict what nodes qualify for cluster and quorum
ieQu1 Jun 25, 2026
de5d596
liveness: Detect node down
ieQu1 Jun 25, 2026
1f9022b
vote: Fix tests to filter out vote events created by liveness
ieQu1 Jun 26, 2026
52265ae
rl_changer: Use alias to sync the set status
ieQu1 Jun 26, 2026
e121844
autoclean: Fix test
ieQu1 Jun 26, 2026
e06ce07
uid: Disallow creation of cluster-unique tuples with site=undefined
ieQu1 Jun 26, 2026
b5b50a7
etcd: Bring back exit handler
ieQu1 Jun 26, 2026
b932f1d
Bump familiar to 0.1.2
ieQu1 Jun 26, 2026
b483811
uid: Delete named sequences
ieQu1 Jun 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ log/
erlang.mk
ekka.d
_build/
_anvl_build/
.rebar3/
rebar.lock
TAGS
Expand Down
2 changes: 1 addition & 1 deletion anvl.erl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ conf() ->
, #{id => optvar, repo => "https://github.com/emqx/optvar", ref => {tag,"1.0.5"}}
, #{id => snabbkaffe, repo => "https://github.com/kafka4beam/snabbkaffe", ref => {tag,"1.0.10"}}
, #{id => gproc, repo => "https://github.com/uwiger/gproc", ref => {tag,"1.1.0"}}
, #{id => familiar, repo => "https://github.com/ieQu1/familiar", ref => {tag,"0.1.1"}}
, #{id => familiar, repo => "https://github.com/ieQu1/familiar", ref => {tag,"0.1.2"}}
]
, hex_pm =>
[ #{id => proper, version => "1.5.0"}
Expand Down
19 changes: 18 additions & 1 deletion doc/classy.texi
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,13 @@ The document was typeset with
@emph{Unit}: ms

Default timeout for remote procedure calls.

@defen{hook_timeout, @code{timeout()}, 30_000}

@emph{Unit}: ms

Maximum run time for any hook.

@section Peer

@defen{sync_timeout, @code{non_neg_integer()}, 1000}
Expand All @@ -306,6 +313,16 @@ The document was typeset with
Minimum number of known peers necessary to advance @ref{t:classy:run_level/0,run level}
from @code{single} to @code{cluster}.

@defen{to_cluster_sets, @code{[classy:node_set_name()]}, @code{[]}}

List of node set names used to additionally restrict when the node is considered joined to a cluster.
Sets from the lists are combined using set intersection operation.

@defen{quorum_sets, @code{[classy:node_set_name()]}, @code{[]}}

List of node set names used to additionally restrict when the node is considered having a quorum.
Sets from the lists are combined using set intersection operation.

@defen{quorum, @code{pos_integer()}, 1}

Minimum number of known peers necessary to advance @ref{t:classy:run_level/0,run level}
Expand All @@ -328,7 +345,7 @@ The document was typeset with
Note: to prevent network-isolated nodes from kicking their peers,
quorum among the running nodes is required to perform the act.

@defen{cleanup_check_interval, @code{pos_integer()}, 30_000}
@defen{cleanup_check_interval, @code{pos_integer()}, 5_000}

@emph{Unit}: ms.

Expand Down
2 changes: 1 addition & 1 deletion rebar.config
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
, {hackney, {git, "https://github.com/emqx/hackney.git", {tag, "1.18.1-1"}}}
%% Testing:
, {meck, "1.0.0"}
, {familiar, {git, "https://github.com/ieQu1/familiar.git", {tag, "0.1.1"}}}
, {familiar, {git, "https://github.com/ieQu1/familiar", {tag, "0.1.2"}}}
]}.

{dialyzer,
Expand Down
Loading
Loading