feat(memdb×libmemdb): memdb 服务化落地——RPC 服务端 + 构建/测试/部署闭环
- libmemdb: 补全 flush() 惰性 TTL 驱逐;修复 explicit 误用/头文件缺失/ 时间戳碰撞误删;size()/get_db() 前 flush 消除脏读;三处双重哈希查找 合并;index_keys 去冗余字段;update(refresh_ttl) 改原地重索引, 免 remove+insert 的拷贝与重复 flush - memdb: 重写 RPC 服务端(libmsg RpcServer, :8011, 9 路由, mutex 保护); 补全 Makefile/_set.sh/_run.sh 与 --instance/--log-level CLI; SIGINT/SIGTERM 优雅退出;注册 services.yaml - 测试: libmemdb 单元测试 22 例 + memdb RPC 集成测试 12 场景(含并发) - 清理: 删除误合入的 db2/create_sqlite3.sql 旧版(scripts/ 下为权威版)
This commit is contained in:
1 parent
a18a7de1ca
commit
26de527a09
10 files changed
+1016
-116
No files matched your search
@@ -0,0 +1,49 @@
|
||||
CPP = g++
|
||||
CPPFLAGS = -std=c++20 -O3 -Wall -Werror -pipe
|
||||
INCS = -I ../libmsg/inc -I ../libmemdb/inc
|
||||
LIBS = -L ../libmsg/build -lus_msg -lboost_json -lboost_program_options -lpthread
|
||||
RPATH = -Wl,-rpath,'$$ORIGIN/../../libmsg/build'
|
||||
|
||||
BUILD = build
|
||||
TARGET = $(BUILD)/memdb
|
||||
SRC = src/memdb.cpp
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(BUILD):
|
||||
mkdir -p $(BUILD)
|
||||
|
||||
$(TARGET): $(SRC) | $(BUILD)
|
||||
$(CPP) $(CPPFLAGS) $(INCS) -o $@ $< $(LIBS) $(RPATH)
|
||||
|
||||
# ── libmemdb 单元测试 ────────────────────────────────────────────────────
|
||||
|
||||
TEST_LIBMEMDB = test_libmemdb
|
||||
TEST_CPPFLAGS = -std=c++20 -O0 -g -Wall -Werror
|
||||
|
||||
$(TEST_LIBMEMDB): test_libmemdb.cpp
|
||||
$(CPP) $(TEST_CPPFLAGS) -I ../libmemdb/inc -o $@ $<
|
||||
|
||||
test: $(TARGET)
|
||||
@echo "=== memdb unit tests ==="
|
||||
$(MAKE) $(TEST_LIBMEMDB)
|
||||
./$(TEST_LIBMEMDB)
|
||||
@echo ""
|
||||
@echo "=== memdb RPC integration tests (requires running server) ==="
|
||||
-python3 test_memdb.py $(HOST) $(PORT)
|
||||
|
||||
test-libmemdb: $(TEST_LIBMEMDB)
|
||||
./$(TEST_LIBMEMDB)
|
||||
|
||||
test-memdb: $(TARGET)
|
||||
@echo "Starting memdb server..."
|
||||
./$(TARGET) --host $(HOST) --port $(PORT) --workers 2 --max-time 10 &
|
||||
@sleep 1
|
||||
-python3 test_memdb.py $(HOST) $(PORT); EXIT=$$?
|
||||
@kill %1 2>/dev/null; wait %1 2>/dev/null
|
||||
@exit $$EXIT
|
||||
|
||||
clean:
|
||||
rm -f $(TARGET) $(TEST_LIBMEMDB)
|
||||
|
||||
.PHONY: all clean test test-libmemdb test-memdb
|
||||
Reference in new issue
Block a user