Commit graph

21 commits

Author SHA1 Message Date
Roman Gershman
9bda5b1d4b
chore: another preparation commit to get rid of kv_args in transaction (#2996)
This changes Entry::Payload to struct instead of variant.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-05-02 09:59:45 +03:00
Vladislav
5979fd1cb9
chore(tiering): Move files and move kb literal to common (#2868)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-11 16:37:29 +03:00
adiholden
bb242a7894
bug(server): do not write lsn opcode to journal (#2814)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-04-02 09:51:42 +03:00
Kostas Kyrimis
b2e2ad6e04
feat(server): check master journal lsn in replica (#2778)
Send journal lsn to replica and compare the lsn value against number of records received in replica side

Signed-off-by: kostas <kostas@dragonflydb.io>
Co-authored-by: adi_holden <adi@dragonflydb.io>
2024-04-01 17:51:31 +03:00
Borys
5189dae118
feat(cluster): add migration finalization (#2507)
* feat(cluster): add migration finalization
2024-02-01 17:24:54 +02:00
Shahar Mike
4874da8b5b
feat(cluster): Add RestoreStreamer. (#2390)
* feat(cluster): Add `RestoreStreamer`.

`RestoreStreamer`, like `JournalStreamer`, streams journal changes to a
sink. However, in addition, it traverses the DB like `RdbSerializer` and
sends existing entries as `RESTORE` commands.

Adding it required a bit of plumbing to get all journal changes to be
slot-aware.

In a follow-up PR I will remove the now unneeded `SerializerBase`.

* Fix build

* Fix bug

* Remove unimplemented function

* Iterate DB, drop support for db1+

* Send FULL-SYNC-CUT
2024-01-10 15:10:21 +02:00
Roy Jacobson
db21b735f6
feat(replication): Use a ring buffer with messages to serve replication. (#1835)
* feat(replication): Use a ring buffer with messages to serve replication.

* Fix libraries dep graph

* Address PR feedback

* nits

* add a comment

* Lower the default log length
2023-09-18 13:59:41 +03:00
Roy Jacobson
254c86786e
fix(replication): Handle errors instead of crashing. (#1757) 2023-08-29 14:29:40 +02:00
Roy Jacobson
29c258df9b
feat: Support ACKs from replica to master (#1243)
* feat: Support ACKs from replica to master

* Rework after CR

* Split the acks into a different fiber and remove the PING loop

* const convention

* move around the order.

* revert sleep removal

* Exit ack fiber on cancellation

* Don't send ACKs if server doesn't support it
2023-05-29 16:41:57 +03:00
Roy Jacobson
cbb2afc792
feat: Use journal LSNs for absolute replication offsets (#1242)
* feat: Use journal LSNs for absolute replication offsets

* 1 - Address small CR comments
2 - Simplify the offset accounting so that we send the correct offset
    in `SliceSnapshot::Stop` instead of counting in RdbLoader. This
    allows us to revert the changes to slice journaling of EXEC
    commands, for example.

* Store int with absl::little_endian

* Document the offset management
2023-05-22 15:34:32 +03:00
Roy Jacobson
7ab7d8bb80
Fix: Check buffer size in JournalReader::ReadString before writing (#1218) 2023-05-16 10:54:39 +03:00
Vladislav
a12ddfe108
Remove cmd name from args (#1057)
chore: remove cmd name from the list of arguments

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
Co-authored-by: Roman Gershman <roman@dragonflydb.io>
2023-04-10 14:14:52 +03:00
adiholden
4b44fb6baf
bug(snapshot) : Do not preempt inside OnDbChange issue #829 (#868)
* bug(snapshot) : Do not preempt inside OnDbChange

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-26 11:52:13 +02:00
Vladislav
4c9b30ca43
feat(server): Auto expiry + small replica refactor (#718) 2023-01-31 12:55:52 +03:00
Vladislav
7eff61c9ab
feat(server): Buffered streamer + use on stable state (#639) 2023-01-15 12:17:04 +03:00
adiholden
3065946b9a
feat(replica): support multi transaction command (#634) 2023-01-04 09:11:30 +02:00
Vladislav
443ab9587d
feat(server): Update helio, optimize and clean up rdb/snapshot (#625) 2022-12-31 13:32:00 +03:00
Vladislav
7788600c9b
feat(server): Buffered journal serializers (#619) 2022-12-30 16:18:37 +03:00
adiholden
5d39521de3
feat(replica): Support FlushDB command for replication #580 (#591) 2022-12-25 14:03:49 +02:00
Vladislav
2386b02234
feat(server): Use new journal format (#563) 2022-12-20 16:38:19 +03:00
Vladislav
08803e664c
feat(server): New auto-journal types/read/write (#560) 2022-12-15 23:42:00 +03:00