Kelvin Mwinuka
4bc1f44e1d
Added Apache 2.0 license header to all go files in src folder
2024-03-24 18:30:17 +08:00
Kelvin Mwinuka
f27a0dda79
Implemented eviction algorithm that samples a configurable number of keys with TTLs (default 20) at a configurable interval (default 100ms) and deletes the keys that are expired.
2024-03-12 02:12:55 +08:00
Kelvin Mwinuka
52b39d5b0f
Re-enabled cluster nodes in docker-compose.yml.
...
Created flow to forward key deletion command from non-leader node to leader node.
Created flow for propagating key deletion accross the entire cluster to maintain consistency of the deleted keys.
2024-03-11 20:39:57 +08:00
Kelvin Mwinuka
8000cef72d
Added RWMutex to keysWithExpiry in order to improve thread safety
2024-03-11 02:10:23 +08:00
Kelvin Clement Mwinuka
f9ae87862c
Implemented multiple server cert/key pairs. Implemented mTLS for verifying client using multiple pem files.
2024-02-03 00:24:59 +08:00
Kelvin Clement Mwinuka
d31acfbbdd
Updated Raft snapshot to also persist last saved unix timestamp in milliseconds. This timestamp is re-loaded when the server is re-started.
...
Created standalone snapshot flow including manifest file that is used to determine whether another snapshot should be taken based on the hashed contents of the snapshot.
2024-01-28 03:36:09 +08:00
Kelvin Clement Mwinuka
7e59de20a2
Implement checking wether snapshot is in progress before continuing
2024-01-27 01:46:16 +08:00
Kelvin Clement Mwinuka
3c5d6fef2c
Created basic handling for taking snapshots. Will implemented error when snapshot in progress and propagation of snapshot command to the rest of the cluster
2024-01-26 00:58:43 +08:00
Kelvin Clement Mwinuka
97f0f142a6
Added configuration options for snapshot threshold and snapshot interval
2024-01-25 18:59:04 +08:00
Kelvin Clement Mwinuka
bdebdea7ad
Added snapshot interval value to raft configuration
2024-01-25 18:04:02 +08:00
Kelvin Clement Mwinuka
4e12064ce8
Implemented snapshot persistence on raft layer
2024-01-25 17:52:22 +08:00
Kelvin Clement Mwinuka
1c00706f88
Updated module name to echovault
2024-01-24 22:32:05 +08:00
Kelvin Clement Mwinuka
78aa9a82c6
Renamed memebrlist_layer directory to memberlist.
...
Renamed raft_layer directory to raft.
Created snapshot and aof packages to handle snapshots in standalone mode and aof package to handle append-only function.
Created server package that will contain the server logic.
2024-01-21 15:03:36 +08:00