第一章 产品定位与设计理念
1.1 产品定位
SXDB数据引擎定位为“极小型关系式数据库”,专注于资源受限的边缘计算、嵌入式系统和轻量级应用场景。与传统重型数据库(MySQL、PostgreSQL)的“服务器-客户端”架构不同,SXDB采用单进程集成架构,将存储引擎、服务层、管理界面融为一体。
1.2 设计原则
| 原则 | 说明 | 体现 |
| 极简 | 单文件部署,零依赖 | 单个可执行文件即可运行,无需安装任何组件 |
| 高效 | 以最小的资源消耗实现最大吞吐 | WAL模式+内存映射+线程池并发 |
| 可靠 | 数据完整性和服务可用性 | WAL日志+Watchdog自愈+ACID事务 |
| 开放 | 多语言SDK、多通道接入 | TCP/HTTP双通道,C++/Java/Python SDK |
1.3 技术栈概览
整个引擎采用C++17编写,核心存储层基于SQLite3构建。通信层采用自定义二进制协议,Web层基于轻量级HTTPLib库。所有组件均静态编连,产生单个可执行文件。
| 层次 | 技术 | 说明 |
| 存储引擎 | SQLite3 + 自定义连接管理器 | 嵌入式SQL引擎,字节级数据完整性 |
| 并发模型 | ThreadPool + shared_mutex | 读写分离,多线程并发查询 |
| 通信协议 | 自定义TCP二进制协议 | 4字节长度头 + JSON消息体 |
| Web服务 | cpp-httplib | 轻量HTTP服务器,内嵌前端 |
| 认证授权 | RBAC + JWT Token | 用户-角色-权限三级模型 |
| 监控指标 | Prometheus兼容 | 查询计数、延迟直方图、资源利用率 |