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
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
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
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
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
9a58d71378
fix(ds): Move DS backend supervision trees to their own apps
2024-06-21 18:22:04 +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
a8ea0ae4e5
refactor(ds): Extract DS replication layer to a separate application
2024-06-21 17:16:24 +02:00