实现全量持久化:save操作落盘,启动时读取到内存
增量持久化:执行修改操作时将cmd追加到log中,启动时逐条取出顺序执行
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
//
|
||||
int kvs_need(const uint8_t *p, const uint8_t *end, size_t n);
|
||||
int kvs_read_u8(const uint8_t **pp, const uint8_t *end, uint8_t *out);
|
||||
int kvs_read_u16(const uint8_t **pp, const uint8_t *end, uint16_t *out);
|
||||
@@ -12,6 +13,8 @@ int kvs_write_u8(uint8_t **pp, const uint8_t *end, uint8_t v);
|
||||
int kvs_write_u16(uint8_t **pp, const uint8_t *end, uint16_t v);
|
||||
int kvs_write_u32(uint8_t **pp, const uint8_t *end, uint32_t v);
|
||||
|
||||
int kvs_write_file(FILE *fp, const void *buf, size_t n);
|
||||
int kvs_read_file(FILE *fp, void *buf, size_t n);
|
||||
|
||||
|
||||
/**
|
||||
@@ -58,6 +61,7 @@ enum {
|
||||
KVS_CMD_HMOD,
|
||||
KVS_CMD_HEXIST,
|
||||
|
||||
KVS_CMD_SAVE,
|
||||
KVS_CMD_COUNT,
|
||||
};
|
||||
|
||||
@@ -89,6 +93,9 @@ int kvs_parse_one_cmd(const uint8_t *request, int request_length, kvs_req_t *req
|
||||
void kvs_free_request(kvs_req_t *req);
|
||||
int kvs_execute_one_cmd(const kvs_req_t *req, kvs_rsp_t *rsp_out);
|
||||
int kvs_build_one_rsp(const kvs_rsp_t *results, uint8_t *response, size_t response_cap);
|
||||
int kvs_save_to_file();
|
||||
|
||||
int kvs_save_cmd_to_logfile(const uint8_t *cmd, size_t len, int logfd);
|
||||
int kvs_replay_log(const char *logfile, int logfd);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user