Skip to content

Inmemory storage implementation - #82

Merged
Arshdeep54 merged 5 commits into
refactorfrom
inmemory-storage
Jun 11, 2026
Merged

Inmemory storage implementation#82
Arshdeep54 merged 5 commits into
refactorfrom
inmemory-storage

Conversation

@SK1PPR

@SK1PPR SK1PPR commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Implements MemoryStorage for the StorageEngine trait using a lock-protected BTreeMap
  • Adds in-memory checkpoint save/restore support
  • Wires StorageType::InMemory through API initialization and snapshot restore
  • Adds storage, API, and HTTP smoke coverage for in-memory behavior

Closes #36.

Testing

  • cargo fmt
  • cargo test -p storage
  • cargo test -p api
  • cargo test -p http
  • cargo test -p grpc
  • cargo test
  • docker build -t vortexdb:inmemory-smoke .
  • Dockerized HTTP smoke test with STORAGE_TYPE=inmemory:
    • GET /health
    • POST /points
    • GET /points/{id}
    • POST /points/search
    • DELETE /points/{id}
    • GET /points/{id} returns 404 after delete

@SK1PPR
SK1PPR requested a review from Arshdeep54 June 7, 2026 04:56
Comment thread crates/storage/src/in_memory.rs Outdated

@Arshdeep54 Arshdeep54 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Arshdeep54
Arshdeep54 merged commit 363055b into refactor Jun 11, 2026
6 checks passed
4adex added a commit that referenced this pull request Jul 23, 2026
* feat: add batch insert and search (#74)

Signed-off-by: Arshdeep54 <balarsh535@gmail.com>

* Inmemory storage implementation (#82)

* Implement in-memory storage engine

* Wire in-memory storage through API snapshots

* Add HTTP smoke coverage for in-memory storage

* Handle in-memory storage errors in gRPC

* Add in-memory checkpoint header

* Add async Python client (#83)

* Add async Python client

* Deduplicate Python gRPC connection helpers

* Benchmarking optimizations (#84)

* Reduce in-memory checkpoint lock scope

* Optimize HNSW distance calculations

* Expose HNSW tuning parameters

* Add Python batch vector client methods

* Expose KD-tree rebuild tuning parameters

* Update tui with new name and details (#79)

* Support query-time HNSW ef

* Async batch support (#85)

* Update Python client to support batch insert and search

* Add batch support to the async client

* Add master test script for all usage example files

Run linter on client/python

* Add test for api parity between sync and async classes

---------

Signed-off-by: Arshdeep54 <balarsh535@gmail.com>
Co-authored-by: Arshdeep Singh <110114582+Arshdeep54@users.noreply.github.com>
Co-authored-by: Khushal Agrawal <117133859+SK1PPR@users.noreply.github.com>
Co-authored-by: Khushal Agrawal <dev@khushal.net>
Co-authored-by: Prachet Patel <patelprachet@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement In Memory Storage

2 participants