docs: 修正版本号0.2.4 + 701测试32套件 + 五模式对比表 + AriaEngine架构图更新
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
# MetonaSqlark
|
# MetonaSqlark
|
||||||
|
|
||||||
<p align="center">
|
<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/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/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">
|
<img src="https://img.shields.io/badge/tests-701%20passed-success?style=flat-square" alt="tests">
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
- 🔄 **事务回滚** — Memory/IndexedDB/Hybrid/Aria 四引擎事务原子性,自动回滚
|
- 🔄 **事务回滚** — Memory/IndexedDB/Hybrid/Aria 四引擎事务原子性,自动回滚
|
||||||
- 🌲 **RB-Tree 完整实现** — 标准红黑树插入+删除修复,O(log n) 保证
|
- 🌲 **RB-Tree 完整实现** — 标准红黑树插入+删除修复,O(log n) 保证
|
||||||
- 🌐 **浏览器兼容** — Chrome 80+ / Firefox 80+ / Safari 14+ / Edge 80+ / Node.js 16+
|
- 🌐 **浏览器兼容** — 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 的设计理念:
|
AriaEngine 是内置的页面式存储引擎,对标 SQLite 的设计理念:
|
||||||
|
|
||||||
@@ -279,7 +279,7 @@ AriaEngine 是内置的页面式存储引擎,对标 SQLite 的设计理念:
|
|||||||
const db = await MetonaSqlark.create({
|
const db = await MetonaSqlark.create({
|
||||||
name: 'my-app',
|
name: 'my-app',
|
||||||
mode: 'aria', // 🆕 自研引擎模式
|
mode: 'aria', // 🆕 自研引擎模式
|
||||||
diskEngine: 'indexeddb', // 底层存储后端
|
diskEngine: 'indexeddb', // 'indexeddb' | 'opfs' | 'memory'
|
||||||
});
|
});
|
||||||
|
|
||||||
// 与现有 API 完全兼容
|
// 与现有 API 完全兼容
|
||||||
@@ -295,15 +295,19 @@ const rows = await db.query('SELECT * FROM users');
|
|||||||
|
|
||||||
```
|
```
|
||||||
┌──────────────────────────────────────────┐
|
┌──────────────────────────────────────────┐
|
||||||
│ AriaEngine │
|
│ AriaEngine v0.2.4 │
|
||||||
│ (implements IStorageEngine) │
|
│ (implements IStorageEngine) │
|
||||||
├──────────────────────────────────────────┤
|
├──────────────────────────────────────────┤
|
||||||
│ LSM-Tree │ Buffer Pool │ WAL │
|
│ LSM-Tree │ Buffer Pool │ WAL │
|
||||||
│ MemTable │ LRU (256pp) │ Recovery │
|
│ MemTable │ LRU (256pp) │ Recovery │
|
||||||
│ +SSTable │ │ │
|
│ +SSTable │ +FileManager │ +CRC │
|
||||||
├──────────────────────────────────────────┤
|
├──────────────────────────────────────────┤
|
||||||
│ MVCC │ Bloom Filter │ LZ4 │
|
│ MVCC │ Bloom Filter │ LZ4 │
|
||||||
│ Snapshot │ FNV-1a+Murmur│ Compress │
|
│ Snapshot │ FNV-1a+Murmur│ Compress │
|
||||||
|
│ +Savepoint│ +Serialize │ │
|
||||||
|
├──────────────────────────────────────────┤
|
||||||
|
│ AES-GCM │ 二级索引 │ ANALYZE │
|
||||||
|
│ Encrypt │ Per-Column │ EXPLAIN │
|
||||||
├──────────────────────────────────────────┤
|
├──────────────────────────────────────────┤
|
||||||
│ Storage Backend (IDB / OPFS / Memory) │
|
│ Storage Backend (IDB / OPFS / Memory) │
|
||||||
└──────────────────────────────────────────┘
|
└──────────────────────────────────────────┘
|
||||||
@@ -311,14 +315,15 @@ const rows = await db.query('SELECT * FROM users');
|
|||||||
|
|
||||||
| 特性 | 说明 |
|
| 特性 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| **LSM-Tree** | MemTable (红黑树) → SSTable 多级索引,写优化,支持点查 + 范围扫描 |
|
| **LSM-Tree** | MemTable (红黑树) → SSTable 多级索引,异步 Compaction,写背压 |
|
||||||
| **WAL** | Write-Ahead Log 二进制格式,full/batch/none 三种同步模式 |
|
| **WAL** | Write-Ahead Log 二进制格式,CRC 校验,full/batch/none 三种模式,16MB 阈值 |
|
||||||
| **MVCC** | 版本链 + 快照隔离,事务读写不互斥 |
|
| **MVCC** | 版本链 + 快照隔离,事务读写不互斥,自动 GC(每10次检查点) |
|
||||||
| **Buffer Pool** | LRU 页面缓存,默认 256 页 ≈ 1MB 可控内存 |
|
| **Buffer Pool** | FileManager + LRU 页面缓存,256 页 ≈ 1MB 可控内存 |
|
||||||
| **Bloom Filter** | FNV-1a + Murmur 双哈希,快速否定 key |
|
| **Bloom Filter** | FNV-1a + Murmur 双哈希,SSTable footer 序列化,查询时 probe |
|
||||||
| **Slotted Page** | 4KB 固定页面,Slot Directory + Tuple 二进制序列化 |
|
| **二级索引** | 每列独立 LSM Tree,支持 $eq/$in/$gt/$lt 范围扫描 |
|
||||||
| **Compaction** | Leveled Compaction,自动合并回收空间 |
|
| **AES-GCM** | PBKDF2 密钥派生 + AES-256-GCM 页面级加密 |
|
||||||
| **OPFS Backend** 🆕 | 自研文件存储后端,零外部依赖,纯二进制页面文件 |
|
| **Compaction** | 异步 Leveled Compaction,Level 0 > 8 触发同步背压 |
|
||||||
|
| **OPFS Backend** | 纯浏览器文件系统,Promise 队列串行写,零外部依赖 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -340,7 +345,7 @@ npm run typecheck # 类型检查
|
|||||||
| 指标 | 数值 |
|
| 指标 | 数值 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 测试用例 | 701 |
|
| 测试用例 | 701 |
|
||||||
| 测试套件 | 27 |
|
| 测试套件 | 32 |
|
||||||
| 行覆盖率 | 91.0% |
|
| 行覆盖率 | 91.0% |
|
||||||
| SQL 关键字 | 33 |
|
| SQL 关键字 | 33 |
|
||||||
| 存储引擎 | 5(Memory / IndexedDB / OPFS / Hybrid / **Aria** 🆕) |
|
| 存储引擎 | 5(Memory / IndexedDB / OPFS / Hybrid / **Aria** 🆕) |
|
||||||
|
|||||||
+11
-1
@@ -629,7 +629,17 @@ db.<span class="f">emit</span>(<span class="s">'users'</span>, { <span class="s"
|
|||||||
|
|
||||||
<h2 id="aria-engine">🌲 AriaEngine 自研存储引擎</h2>
|
<h2 id="aria-engine">🌲 AriaEngine 自研存储引擎</h2>
|
||||||
<p><strong>v0.2.0 新增</strong> — AriaEngine 是专为 MetonaSqlark 设计的页面式存储引擎,对标 SQLite 设计理念。<br>
|
<p><strong>v0.2.0 新增</strong> — AriaEngine 是专为 MetonaSqlark 设计的页面式存储引擎,对标 SQLite 设计理念。<br>
|
||||||
<strong>v0.2.4 生产级</strong> — 二级索引 · MVCC事务 · BloomFilter · WAL全同步 · AES-GCM加密 · Savepoint · EXPLAIN · ANALYZE · REINDEX · VACUUM · BufferPool · 701测试全覆盖。</p>
|
<strong>v0.2.4 生产级</strong> — 二级索引 · MVCC · BloomFilter · WAL CRC全同步 · AES-GCM加密 · Savepoint · EXPLAIN · ANALYZE · REINDEX · VACUUM · BufferPool · 701测试 · 零死代码。</p>
|
||||||
|
|
||||||
|
<h3>存储模式对比</h3>
|
||||||
|
<table>
|
||||||
|
<tr><th>特性</th><th>Memory</th><th>Disk(IDB)</th><th>Disk(OPFS)</th><th>Hybrid</th><th>Aria</th></tr>
|
||||||
|
<tr><td>持久化</td><td>❌</td><td>✅ IDB</td><td>✅ OPFS</td><td>✅ 双写</td><td>✅ 后端决定</td></tr>
|
||||||
|
<tr><td>事务</td><td>✅ 快照</td><td>✅ 原子</td><td>✅ 快照</td><td>✅ 双引擎</td><td>✅ MVCC</td></tr>
|
||||||
|
<tr><td>索引</td><td>Hash</td><td>Hash</td><td>Hash</td><td>Hash</td><td>LSM二级</td></tr>
|
||||||
|
<tr><td>上限</td><td>内存</td><td>~2GB</td><td>磁盘</td><td>~2GB</td><td>内存</td></tr>
|
||||||
|
<tr><td>浏览器</td><td>全部</td><td>全部</td><td>Chromium</td><td>全部</td><td>全部</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
<h3>核心特性</h3>
|
<h3>核心特性</h3>
|
||||||
<table>
|
<table>
|
||||||
|
|||||||
+1
-1
@@ -152,7 +152,7 @@
|
|||||||
<!-- Hero -->
|
<!-- Hero -->
|
||||||
<section class="hero">
|
<section class="hero">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="badge" style="margin-bottom:24px;"><span class="dot"></span> v0.2.4 生产级 — 二级索引 · MVCC接入 · BloomFilter · WAL全同步 · 内存预算</div>
|
<div class="badge" style="margin-bottom:24px;"><span class="dot"></span> v0.2.4 生产级 — 701测试 32套件 · 五模式全覆盖 · AriaEngine 25项生产加固 · 零死代码</div>
|
||||||
<h1>前端的 <span class="gradient-text">SQL 数据库</span></h1>
|
<h1>前端的 <span class="gradient-text">SQL 数据库</span></h1>
|
||||||
<p>TypeScript 原生构建,5 种存储引擎,支持完整 SQL 查询。<br>零运行时依赖,开箱即用。AriaEngine 自研引擎:LSM-Tree + WAL + MVCC。</p>
|
<p>TypeScript 原生构建,5 种存储引擎,支持完整 SQL 查询。<br>零运行时依赖,开箱即用。AriaEngine 自研引擎:LSM-Tree + WAL + MVCC。</p>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
|
|||||||
Reference in New Issue
Block a user