Add a SQLite / LevelDB store backend
- Dominant language
- Java
- Stars
- 808
- Forks
- 188
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 2
Description
### What & why
There are 7 store backends today, but none is a **zero-external-dependency
embedded** option: SQLite (embedded SQL) or LevelDB (embedded KV). For
single-node / edge / testing scenarios, this is lighter than RocksDB and adds
persistence over Memory — a clear value gap.
现有 store 后端 7 种,但缺少**零外部依赖的嵌入式**选项:SQLite(嵌入式 SQL)或
LevelDB(嵌入式 KV)。对单机/边缘/测试场景,比 RocksDB 更轻、比 Memory 多了持久化,价值明确。
### The task
Create `geaflow-store-sqlite` (or `-leveldb`), implementing the storage SPI with
basic KV + graph storage and state archive/recovery.
新建 `geaflow-store-sqlite`(或 `-leveldb`),实现存储 SPI,支持 KV 与图存储基本能力 + 状态归档/恢复。
### Where to look / 怎么做
1. Simple baseline: `geaflow-store-memory`. Persistence/versioning:
`geaflow-store-rocksdb`. Relational: `geaflow-store-jdbc`.
2. Implement `XxxStoreBuilder` (`IStoreBuilder`) + the matching
`IGraphStore` / `IKVStore` / `IStatefulStore`.
3. SPI registration: `META-INF/services/org.apache.geaflow.store.IStoreBuilder`.
4. pom + tests (reuse the shared store test suite if one exists).
### Done when
- [ ] Builder + core store interfaces implemented; KV and graph reads/writes correct
- [ ] Archive/recovery (state versioning) supported
- [ ] Passes the shared store tests / adds targeted tests
- [ ] Honors the same interface contract as existing stores (swap it in via config and run an example)
- [ ] checkstyle / RAT pass
Contributor guide
Research direction
Compare geaflow-store-memory, geaflow-store-rocksdb, and geaflow-store-jdbc to understand the storage contracts and state versioning. Implement the builder and matching store interfaces, then register the provider in META-INF/services/org.apache.geaflow.store.IStoreBuilder. Done means KV and graph operations, archive/recovery, shared or targeted tests, an example configuration run, checkstyle, and RAT all pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, sqlite
- Domain
- backend, database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100