Skip to content

Add a SQLite / LevelDB store backend #800

Open

Description

@Leomrlin

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

Activity

  1. RiyaJ6 commented on Jun 27, 2026

    @RiyaJ6

    Claiming this. I will build out the geaflow-store-sqlite backend. I'll implement the IStoreBuilder, IGraphStore and IKVStore interfaces, handle the state archive/recovery logic and wire it up via the SPI registration. Will ensure it passes the shared store test suite before opening the PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions