C# · Residency

Residency

3.0.0-rc.1 · 4c3e5023

Where the payload lives is the constructor’s name, as in the C lifecycle verbs, so a residency an index lacks has no constructor to call. Each takes only the placement its own hardware has, one shard per memory domain, device or path, and an empty list derives the placement.

using DenseIndex inRam = DenseIndex.InitRam(options, memoryDomains: [0, 1]);      // One graph per socket
using DenseIndex inVram = DenseIndex.InitVram(options, devices: [0, 1, 2, 3]);    // Sharded, never replicated
using DenseIndex uploaded = DenseIndex.LoadVram("index.safegraphs", devices: [0, 1]);
using DenseIndex onDisk = DenseIndex.ViewNvme("index.safegraphs.json", paths: ["/mnt/nvme0"]);

An NVMe handle serves a checkpoint in place, and every mutating verb fails on it with Status.ReadOnly, as on a DenseIndex.ViewRam. Until NVMe checkpoints carry keys, ViewNvme answers Status.Unsupported.