docs: 修正版本号0.2.4 + 701测试32套件 + 五模式对比表 + AriaEngine架构图更新
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# MetonaSqlark
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/version-0.2.2-blue?style=flat-square" alt="version">
|
||||
<img src="https://img.shields.io/badge/version-0.2.4-blue?style=flat-square" alt="version">
|
||||
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="license">
|
||||
<img src="https://img.shields.io/badge/coverage-91.0%25-brightgreen?style=flat-square" alt="coverage">
|
||||
<img src="https://img.shields.io/badge/tests-701%20passed-success?style=flat-square" alt="tests">
|
||||
@@ -23,7 +23,7 @@
|
||||
- 🔄 **事务回滚** — Memory/IndexedDB/Hybrid/Aria 四引擎事务原子性,自动回滚
|
||||
- 🌲 **RB-Tree 完整实现** — 标准红黑树插入+删除修复,O(log n) 保证
|
||||
- 🌐 **浏览器兼容** — Chrome 80+ / Firefox 80+ / Safari 14+ / Edge 80+ / Node.js 16+
|
||||
- 🧪 **526 测试 · 91.0% 覆盖率** — 27 套件,生产级质量保证
|
||||
- 🧪 **701 测试 · 91.0% 覆盖率** — 32 套件,生产级质量保证
|
||||
|
||||
---
|
||||
|
||||
@@ -270,7 +270,7 @@ const { data, loading, refresh } = useSqlarkQuery(db, 'SELECT * FROM users');
|
||||
|
||||
---
|
||||
|
||||
## 🌲 AriaEngine — 自研存储引擎 (v0.2.0)
|
||||
## 🌲 AriaEngine — 自研存储引擎 (v0.2.4)
|
||||
|
||||
AriaEngine 是内置的页面式存储引擎,对标 SQLite 的设计理念:
|
||||
|
||||
@@ -279,7 +279,7 @@ AriaEngine 是内置的页面式存储引擎,对标 SQLite 的设计理念:
|
||||
const db = await MetonaSqlark.create({
|
||||
name: 'my-app',
|
||||
mode: 'aria', // 🆕 自研引擎模式
|
||||
diskEngine: 'indexeddb', // 底层存储后端
|
||||
diskEngine: 'indexeddb', // 'indexeddb' | 'opfs' | 'memory'
|
||||
});
|
||||
|
||||
// 与现有 API 完全兼容
|
||||
@@ -295,15 +295,19 @@ const rows = await db.query('SELECT * FROM users');
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────┐
|
||||
│ AriaEngine │
|
||||
│ AriaEngine v0.2.4 │
|
||||
│ (implements IStorageEngine) │
|
||||
├──────────────────────────────────────────┤
|
||||
│ LSM-Tree │ Buffer Pool │ WAL │
|
||||
│ MemTable │ LRU (256pp) │ Recovery │
|
||||
│ +SSTable │ │ │
|
||||
│ +SSTable │ +FileManager │ +CRC │
|
||||
├──────────────────────────────────────────┤
|
||||
│ MVCC │ Bloom Filter │ LZ4 │
|
||||
│ Snapshot │ FNV-1a+Murmur│ Compress │
|
||||
│ +Savepoint│ +Serialize │ │
|
||||
├──────────────────────────────────────────┤
|
||||
│ AES-GCM │ 二级索引 │ ANALYZE │
|
||||
│ Encrypt │ Per-Column │ EXPLAIN │
|
||||
├──────────────────────────────────────────┤
|
||||
│ Storage Backend (IDB / OPFS / Memory) │
|
||||
└──────────────────────────────────────────┘
|
||||
@@ -311,14 +315,15 @@ const rows = await db.query('SELECT * FROM users');
|
||||
|
||||
| 特性 | 说明 |
|
||||
|------|------|
|
||||
| **LSM-Tree** | MemTable (红黑树) → SSTable 多级索引,写优化,支持点查 + 范围扫描 |
|
||||
| **WAL** | Write-Ahead Log 二进制格式,full/batch/none 三种同步模式 |
|
||||
| **MVCC** | 版本链 + 快照隔离,事务读写不互斥 |
|
||||
| **Buffer Pool** | LRU 页面缓存,默认 256 页 ≈ 1MB 可控内存 |
|
||||
| **Bloom Filter** | FNV-1a + Murmur 双哈希,快速否定 key |
|
||||
| **Slotted Page** | 4KB 固定页面,Slot Directory + Tuple 二进制序列化 |
|
||||
| **Compaction** | Leveled Compaction,自动合并回收空间 |
|
||||
| **OPFS Backend** 🆕 | 自研文件存储后端,零外部依赖,纯二进制页面文件 |
|
||||
| **LSM-Tree** | MemTable (红黑树) → SSTable 多级索引,异步 Compaction,写背压 |
|
||||
| **WAL** | Write-Ahead Log 二进制格式,CRC 校验,full/batch/none 三种模式,16MB 阈值 |
|
||||
| **MVCC** | 版本链 + 快照隔离,事务读写不互斥,自动 GC(每10次检查点) |
|
||||
| **Buffer Pool** | FileManager + LRU 页面缓存,256 页 ≈ 1MB 可控内存 |
|
||||
| **Bloom Filter** | FNV-1a + Murmur 双哈希,SSTable footer 序列化,查询时 probe |
|
||||
| **二级索引** | 每列独立 LSM Tree,支持 $eq/$in/$gt/$lt 范围扫描 |
|
||||
| **AES-GCM** | PBKDF2 密钥派生 + AES-256-GCM 页面级加密 |
|
||||
| **Compaction** | 异步 Leveled Compaction,Level 0 > 8 触发同步背压 |
|
||||
| **OPFS Backend** | 纯浏览器文件系统,Promise 队列串行写,零外部依赖 |
|
||||
|
||||
---
|
||||
|
||||
@@ -340,7 +345,7 @@ npm run typecheck # 类型检查
|
||||
| 指标 | 数值 |
|
||||
|------|------|
|
||||
| 测试用例 | 701 |
|
||||
| 测试套件 | 27 |
|
||||
| 测试套件 | 32 |
|
||||
| 行覆盖率 | 91.0% |
|
||||
| SQL 关键字 | 33 |
|
||||
| 存储引擎 | 5(Memory / IndexedDB / OPFS / Hybrid / **Aria** 🆕) |
|
||||
|
||||
Reference in New Issue
Block a user