hyperledger / hyperledger/fabric-x-sdk

Design and benchmark Pebble KVS for state store

Open
#36 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
3
Forks
5
Avg merge
2d 11h
Merged PRs (30d)
9

Description

Pebble KVS is a performant key value store. It's most likely a better fit for the state db.

- We need two query modes: latest version (no block constraint) and historic (latest version where BlockNum ≤ X)
- Read-only snapshot isolation via db.NewSnapshot(): the state may not change during one endorsement. Snapshot = point-in-time, immune to concurrent writes
- Two snapshot types: current (latest) and virtual (pinned to a BlockNum)
- Version semantics are backend-dependent (monotonic for fabric-x or equals BlockNum for fabric). We must learn the version when we read a key.
- Must persist durably and safely (a crash while processing a block must not lead to inconsistent state) - either using transactions or idempotency.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by researching Pebble KVS and mapping its query modes, snapshot isolation, version semantics, and durability options to the requirements in this issue. Done means a benchmarked state-store design that supports current and BlockNum-pinned reads and remains consistent after a crash; the issue does not name files or tests to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.