From ed4d0525eb735b1f2da3ad2b4415861ffaf0200a Mon Sep 17 00:00:00 2001 From: thzxx Date: Mon, 27 Jul 2026 22:26:11 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B70.2.4=20+=20701=E6=B5=8B=E8=AF=9532=E5=A5=97=E4=BB=B6?= =?UTF-8?q?=20+=20=E4=BA=94=E6=A8=A1=E5=BC=8F=E5=AF=B9=E6=AF=94=E8=A1=A8?= =?UTF-8?q?=20+=20AriaEngine=E6=9E=B6=E6=9E=84=E5=9B=BE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 35 ++++++++++++++++++++--------------- site/docs.html | 12 +++++++++++- site/index.html | 2 +- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 60c2c5d..85babd3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MetonaSqlark

- version + version license coverage 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** 🆕) | diff --git a/site/docs.html b/site/docs.html index 4358446..dcbe14c 100644 --- a/site/docs.html +++ b/site/docs.html @@ -629,7 +629,17 @@ db.emit('users', { 🌲 AriaEngine 自研存储引擎

v0.2.0 新增 — AriaEngine 是专为 MetonaSqlark 设计的页面式存储引擎,对标 SQLite 设计理念。
-v0.2.4 生产级 — 二级索引 · MVCC事务 · BloomFilter · WAL全同步 · AES-GCM加密 · Savepoint · EXPLAIN · ANALYZE · REINDEX · VACUUM · BufferPool · 701测试全覆盖。

+v0.2.4 生产级 — 二级索引 · MVCC · BloomFilter · WAL CRC全同步 · AES-GCM加密 · Savepoint · EXPLAIN · ANALYZE · REINDEX · VACUUM · BufferPool · 701测试 · 零死代码。

+ +

存储模式对比

+ + + + + + + +
特性MemoryDisk(IDB)Disk(OPFS)HybridAria
持久化✅ IDB✅ OPFS✅ 双写✅ 后端决定
事务✅ 快照✅ 原子✅ 快照✅ 双引擎✅ MVCC
索引HashHashHashHashLSM二级
上限内存~2GB磁盘~2GB内存
浏览器全部全部Chromium全部全部

核心特性

diff --git a/site/index.html b/site/index.html index 40071c6..1410242 100644 --- a/site/index.html +++ b/site/index.html @@ -152,7 +152,7 @@
-
v0.2.4 生产级 — 二级索引 · MVCC接入 · BloomFilter · WAL全同步 · 内存预算
+
v0.2.4 生产级 — 701测试 32套件 · 五模式全覆盖 · AriaEngine 25项生产加固 · 零死代码

前端的 SQL 数据库

TypeScript 原生构建,5 种存储引擎,支持完整 SQL 查询。
零运行时依赖,开箱即用。AriaEngine 自研引擎:LSM-Tree + WAL + MVCC。