rbtree和hash的全量持久化操作。rbtree的二进制安全。

粗略测试。
This commit is contained in:
2026-01-08 21:42:20 +08:00
parent de21fe94ec
commit 4b4e06b33d
16 changed files with 1997 additions and 1450 deletions

View File

@@ -16,6 +16,8 @@ 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);
int write_full(int fd, const void *buf, size_t len);
int read_full(int fd, void *buf, size_t n);
/**
* Request
@@ -39,7 +41,7 @@ enum {
KVS_STATUS_BADREQ = 4
};
enum {
typedef enum {
KVS_CMD_START = 0,
// array
KVS_CMD_SET = KVS_CMD_START,
@@ -62,7 +64,7 @@ enum {
KVS_CMD_SAVE,
KVS_CMD_COUNT,
};
}kvs_cmd_t;
typedef struct kvs_arg_s{
uint32_t len;
@@ -70,13 +72,13 @@ typedef struct kvs_arg_s{
} kvs_arg_t;
typedef struct kvs_req_s{
uint8_t op;
kvs_cmd_t op;
uint8_t argc;
kvs_arg_t *args;
}kvs_req_t;
typedef struct kvs_rsp_s{
uint8_t op;
kvs_cmd_t op;
uint8_t status;
uint32_t dlen;
const uint8_t *data;