Andrew Mayorov
382feab7d1
chore(dsraft): fix few spelling errors
...
Co-Authored-By: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-08-05 10:55:49 +02:00
Andrew Mayorov
6aad774075
chore(dsraft): fix a typespec
2024-08-05 10:55:49 +02:00
Andrew Mayorov
649cbf1c79
fix(dsraft): use local application environment
2024-08-05 10:55:49 +02:00
Andrew Mayorov
58b9ab0210
fix(dsbackend): unify timestamp resolution in operations / preconditions
2024-08-05 10:55:22 +02:00
Andrew Mayorov
fcf76d28ba
feat(dsraft): support atomic batches + preconditions
2024-08-01 14:26:45 +02:00
Andrew Mayorov
3b5d98c1d9
feat(ds): adopt buffer interface to `emqx_ds:operation()`
2024-08-01 14:26:45 +02:00
Andrew Mayorov
2e89656a90
test(dsraft): start `t_replication_transfers_snapshots` from stable state
2024-07-17 20:01:55 +02:00
Andrew Mayorov
466fa41ec3
fix(dsraft): rely on last resort timeout with unresponsive replicas
...
This simplifies the shard transition scheduling logic and makes it less
prone to races.
2024-07-17 19:24:38 +02:00
Andrew Mayorov
6b130c6422
fix(dsraft): preserve pending replica set transitions
...
Otherwise, information about pending replica set transitions taking a
long time to complete could be lost on subsequent target set changes and
node crashes.
2024-07-17 12:17:07 +02:00
Andrew Mayorov
d04915d6a6
test(dsraft): increase `ra_server` logging level for debugging
2024-07-16 15:54:49 +02:00
Andrew Mayorov
78bb102311
test(dsraft): attempt to start select testcases from stable state
2024-07-16 15:54:49 +02:00
Andrew Mayorov
2401a2fb80
test(dsraft): run `t_join_leave_errors` case in tracing context
2024-07-12 18:28:24 +02:00
Andrew Mayorov
af81800aec
chore(dsraft): log a bit more informative messages in shard allocator
2024-07-12 18:24:58 +02:00
Andrew Mayorov
8e8b382ec0
chore(dsraft): provide more details when replica is unready
2024-07-12 18:23:23 +02:00
Andrew Mayorov
70a760850f
chore(dsraft): correct comment spelling errors
2024-07-12 15:27:29 +02:00
Andrew Mayorov
205ad507ea
test(dsraft): attempt to ensure testcases start from stable state
...
Where "stable state" is currently defined as "everyone knows and agrees
on the current leader".
2024-07-12 15:26:00 +02:00
ieQu1
d7732a6aac
test(ds): Attempt to stabilize a flaky test
2024-07-09 13:15:15 +02:00
ieQu1
e70c1cfea3
test(ds): Improve stability of replication test suite
2024-07-09 13:15:15 +02:00
ieQu1
b68ebb9a73
test(dsrepl): Generalize tests to use different storage layouts
2024-07-09 13:15:14 +02:00
ieQu1
71dad0242e
docs(ds): Move Raft-related parts to emqx_ds_builtin_raft README
2024-07-09 13:15:14 +02:00
Thales Macedo Garitezi
420493deb4
chore: add missing mix files to new apps
2024-07-04 10:27:59 -03:00
Thales Macedo Garitezi
5532f40d83
Merge branch 'release-57' into 20240702-m-sync-r57-mix-umbrella
2024-07-02 11:52:36 -03:00
Andrew Mayorov
e1de18ef10
test(dsrepl): await stable state before running testcase
2024-06-26 20:44:35 +02:00
Andrew Mayorov
30efa1f57e
test(dsrepl): relax crash-recover testcase to tolerate message loss
...
Which is quite an expected occasion for this kind of stress test.
2024-06-26 20:44:34 +02:00
Andrew Mayorov
3d296abde9
fix(dsrepl): classify ra error conditions more carefully
...
Most importantly: avoid automatic retries of `shutdown` and `nodedown`
errors as this could easily lead to Raft log entries duplication.
2024-06-26 20:44:34 +02:00
Andrew Mayorov
8ff48ac5ea
feat(dsrepl): rely on accumulated log size to decide when to flush
2024-06-26 20:44:34 +02:00
Andrew Mayorov
8db70b5bbc
test(dsrepl): add crash-restart-recover testcase
...
That verifies nothing is lost in the event of abrupt node failures.
2024-06-26 20:44:33 +02:00
Andrew Mayorov
cd0663074e
test(dsrepl): add `add_generation` events into the mix
...
They usually cause storage layer to perform flushes, and thus enable
testing `handle_flush/1` codepath in different circumstances.
2024-06-26 20:44:33 +02:00
Andrew Mayorov
7895e9cc45
feat(dsstore): make WAL-less mode optional
...
And make the upper layer choose when to use it.
2024-06-26 20:44:32 +02:00
Andrew Mayorov
0c0757b8c2
feat(dsrepl): enable WAL-less batch writes
2024-06-26 20:44:32 +02:00
Andrew Mayorov
2705226eb5
feat(dsrepl): release log entries occasionally
...
Also make tracepoints in `apply/3` callback implementation more
uniform.
2024-06-26 20:44:32 +02:00
Andrew Mayorov
b6894c18fa
chore(dsrepl): improve tracepoints usability a bit
2024-06-26 20:44:32 +02:00
ieQu1
c0472a06f1
test(ds): Set initial conditions in repl. suite explicitly
2024-06-22 02:55:05 +02:00
ieQu1
9a58d71378
fix(ds): Move DS backend supervision trees to their own apps
2024-06-21 18:22:04 +02:00
ieQu1
8aa27488b6
test: Disable certain DS-related suites in CE
2024-06-21 17:16:24 +02:00
ieQu1
3851fc189f
fix(ds): Avoid reverse dependencies from storage to repl. layer
2024-06-21 17:16:24 +02:00
ieQu1
09c3ae795d
refactor(ds_raft): Replace egress server with common emqx_ds_buffer
2024-06-21 17:16:24 +02:00
ieQu1
ef09cfcd71
feat(ds): Add `emqx_ds_backends` application
2024-06-21 17:16:24 +02:00
ieQu1
a8ea0ae4e5
refactor(ds): Extract DS replication layer to a separate application
2024-06-21 17:16:24 +02:00