kiwi-rs目前的目录结构 #49
Replies: 3 comments 2 replies
-
|
项目背景: 请检查当前实现的完成度 Kiwi 项目 Redis 协议到 RocksDB 转换实现完成度分析 基础命令:GET, SET, SETEX, PSETEX, SETNX, GETSET, MGET, MSET, MSETNX 基础命令:HGET, HSET, HDEL, HGETALL, HSETNX 基础命令:LPUSH, RPUSH, LPOP, RPOP 基础命令:SADD, SREM, SMEMBERS, SISMEMBER 基础命令:ZADD, ZCARD, ZCOUNT 仅有 PFADD 的部分实现 MetaCF (default): 元数据和字符串 BaseKey/BaseMetaKey: 键编码 ExpirationManager: 过期键管理 LockMgr: 键级别锁 KeyStatistics: 键统计 实现了 RedisOperations trait RedisStorageEngine 节点管理 (node.rs) 需要更多的一致性测试 批量操作优化 ZSet 命令严重不完整 缺少完整的集群管理命令 INFO 命令不完整 核心存储引擎架构完整 ✅ 高优先级:完善 ZSet 实现(ZRANGE, ZREM, ZINCRBY 等核心命令) |
Beta Was this translation helpful? Give feedback.
-
|
你确定目前存储使用的是 src/storage,而不是你以前搞得按个 fake 存储的 memory 层吗 Kiro:你说得完全对!我重新检查后发现: 🚨 重要发现:当前 Raft 使用的是 MemoryStorageEngine,不是 src/storage 的 RocksDB 实现! node.rs 85 - 101 🔴 关键发现:Kiwi 项目当前使用的是假的内存存储,不是 RocksDB! // Create state machine with in-memory storage engine for testing 2️⃣ 存储层架构现状 A. src/storage/ - 完整的 Redis 到 RocksDB 实现(未被 Raft 使用) ✅ 完整的 Redis 协议支持 ✅ MemoryStorageEngine - 简单的 HashMap(当前在用) pub struct RedisStorageEngine { RedisStorage trait 定义了接口 src/storage/ 的 Redis → RocksDB 实现:70-75% ✅ ❌ src/storage::Redis 没有实现 src/raft::storage_engine::RedisStorage trait // 在 src/storage/src/raft_integration.rs 中 // 替换 MemoryStorageEngine 允许选择 Memory 或 Redis 存储引擎 测试 Raft + RocksDB 的持久化 ✅ src/storage/ 的 Redis 协议到 RocksDB 实现确实完成了 70-75% |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
目录结构:
kstd目录是kiwi-rs自己的std库。
resp目录是kiwi-rs实现redis协议的地方。
storage目录是kiwi-rs的通过rocksdbs实现的储存引擎。
对net的实现的目录未定。
Beta Was this translation helpful? Give feedback.
All reactions