You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Status update (2026-06-15) — storage unification largely complete
The file-based migration described across #14/#16 has shipped:
FileStore (gently/core/file_store.py) replaced DataStore, TiledStore, DatabrokerStore, and ImageManager (all deleted).
VizServer is now VisualizationServer (gently/ui/web/server.py) with WS streaming.
Remaining, re-scoped work
Retire legacy SQLite stores — core/store.py (GentlyStore, 1127 lines) and harness/memory/store.py (ContextStore, 423 lines) survive only as backward-compat
re-exports in gently/__init__.py and except ImportError fallbacks. Confirm nothing
instantiates them, then delete (~1,550 lines).
Streaming / memmap volume access — FileStore.get_volume currently does a
whole-volume tifffile.imread. Add slice-on-demand / memory-mapped reads for large
volumes (200+ × 2048 × 2048), wired into the VizServer slice endpoints.
Status update (2026-06-15) — storage unification largely complete
The file-based migration described across #14/#16 has shipped:
FileStore(gently/core/file_store.py) replacedDataStore,TiledStore,DatabrokerStore, andImageManager(all deleted).VizServeris nowVisualizationServer(gently/ui/web/server.py) with WS streaming.Remaining, re-scoped work
core/store.py(GentlyStore, 1127 lines) andharness/memory/store.py(ContextStore, 423 lines) survive only as backward-compatre-exports in
gently/__init__.pyandexcept ImportErrorfallbacks. Confirm nothinginstantiates them, then delete (~1,550 lines).
FileStore.get_volumecurrently does awhole-volume
tifffile.imread. Add slice-on-demand / memory-mapped reads for largevolumes (200+ × 2048 × 2048), wired into the VizServer slice endpoints.
while the legacy stores ship. Fix once (1) lands (overlaps [Documentation] Document conceptual framework for sample tracking, hardware abstraction, and generalizable metrics #9).
Original issue body (pre-refactor, kept for history)
Background
Spun off from #14 (device layer refactoring). The data services layer needs engineering attention independent of the hardware abstraction work.
Current State
gently/core/data_store.py): UID-based persistence with multiple backend options (DatabrokerStore, TiledStore)gently/visualization/server.py): Serves volumes via HTTP, maintains its own cachinggently/agent/image_manager.py): Agent-side data access, bridges DataStore and agent toolsAreas Needing Work
1. DataStore Interface Cleanup
2. Unified Storage Backend
Current state has multiple storage patterns:
Questions to resolve:
3. Streaming Access Patterns
For large volumes (200+ slices × 2048 × 2048):
4. Garbage Collection / Retention Policies
Relationship to #14
The SharedMemoryPool from #14 will become a key component here:
This issue focuses on the DataStore/VizServer side of that integration.
Proposed Tasks
Files Involved
gently/core/data_store.pygently/visualization/server.pygently/agent/image_manager.pygently/core/memory_pool.pycc @subindevs @pskeshu