Commit Graph

20 Commits

Author SHA1 Message Date
Kelvin Clement Mwinuka
d44c76db4e Server log differentiates between starting TLS and mTLS server. Removed TLS minimum version in tls config. 2024-02-11 16:37:58 +08:00
Kelvin Clement Mwinuka
69c9170f56 Implemented mTLS listener to verify client certificates. 2024-02-03 06:40:03 +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
019fb39b8b Extracted command handler function for reuse in both the handleConnection function and the RestoreAOF function in the AOF engine. 2024-02-01 23:52:39 +08:00
Kelvin Clement Mwinuka
15d289c33d Added config flags to choose between aof restore and snapshot restore in standalone mode. 2024-02-01 04:42:44 +08:00
Kelvin Clement Mwinuka
04ddd46d2b Start goroutine in AOF engine to log queued commands 2024-02-01 04:08:34 +08:00
Kelvin Clement Mwinuka
ce0eabf865 GetState receiver function now checks wether there's an active copy or state mutation before proceeding with the copy.
Handling of write commands is delayed until state copy is complete.
2024-01-31 01:55:51 +08:00
Kelvin Clement Mwinuka
25b2cb7154 Implemented RewriteLog functionality and defined handler for REWRITE AOF command. 2024-01-30 23:33:24 +08:00
Kelvin Clement Mwinuka
dff80940cd Changed bgsave command to save and bgrewriteaof to rewriteaof because these functions will only be ran concurrently and never on the main thread.
Implented AOF command logging in AOFEngine which creates a new log file if one does not exist and append to the file if one is found.
2024-01-30 21:16:37 +08:00
Kelvin Clement Mwinuka
a081971427 Implemented restore function in standalone snapshot engine 2024-01-29 00:22:47 +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
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
7e55fd469b Code formatting: declare writer and reader on the same line 2024-01-23 23:58:09 +08:00
Kelvin Clement Mwinuka
4b980cc5fd Remvoved response skipping for +ack message from client. 2024-01-23 23:54:39 +08:00
Kelvin Clement Mwinuka
ce14f59f41 Replaced all instances of utils.Contains with slices.Contains.
Deleted Contains function from the utils.go file.
Replaced bufio.ReadWriter with io.Reader and io.Writer respectively.
Updated PubSub module to remove posibility of not passing a channel name when subscribing or publishing.
2024-01-23 23:38:07 +08:00
Kelvin Clement Mwinuka
9017f12fa9 Removed http options flag as it will not be used for now.
Moved server cluster receiver functions into cluster.go.
Moved keyspace receiver functions into keyspace.go.
Moved module and command loading into modules.go.
Updated Dockerfile and docker-compose to remove http flag to server.
2024-01-22 17:38:44 +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