apache / apache/geaflow

Add a SQLite / LevelDB store backend

Open
#800 1 comment 0 reactions 0 assignees View on GitHub
enhancement good first issue
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.