Isaura is Ersiliaβs pre-calculation store: it stores model outputs in Ersilia output format, stores them efficiently in object storage, and serves them back later via exact or approximate lookup.
An overview mechanism onto how Isaura operates to store and fetch calculations (more details here How Isaura Works.). It relies on four main different but related services.
Storage & query engines (summary)
DuckDB: used as the write engine (ingestion into Parquet chunks) and query engine (exact retrieval from Parquet).
MinIO: object storage backend for Parquet data + indexes.
Milvus: used only for approximate lookup (top-1 nearest input).
NNS: Go-based REST API server for high-performance Milvus ingest/query: NN-Search API
DuckDB object paths (βDuckDB URLβ)
Isaura organizes artifacts in MinIO and DuckDB reads/writes those objects through S3-compatible access.
Inputs are registered into Milvus at copy time (so they become available for approximate search).
Important: Milvus registration happens when copying from a custom project to the default projects, not necessarily at initial write into the custom project.
Approximate search (Milvus)
Approximate search is enabled when you request ANN/nearest-neighbor behavior.
Current behavior:
For each query input, Milvus returns the top-1 most similar stored input
Similarity metric: Jaccard similarity
Current input type supported for ANN: CPD inputs
Representation: 1024-bit Morgan fingerprints
Collection name:
{ersilia_eos_id}_{version}
Milvus stores input representations used for matching (not full model outputs). After the nearest stored input is found, Isaura fetches the corresponding cached outputs via DuckDB + MinIO and returns results in Ersilia output format.
Commands at a glance
Buckets are MinIO projects (storage directories) that hold model calculations.
This documents a practical cleanup-and-verify workflow for cases where the initial setup stage fails during the Ersilia + Isaura integration, or when retrieval stays slow after setup.
What this helps with
Typical causes:
Setup fails early / wonβt complete cleanly
NN server failed for some reason
Old model artifacts keep getting reused unexpectedly
Milvus index/collection looks wrong or stale or not index built in Milvus
Retrieval remains slow even after a successful run