Skip to main content
benchmarkedInspired by Carrion scent propagation + bat echolocation

Echo Field

Counterpart to HNSW + IVF vector index (FAISS, Milvus)

Key Properties

  • O(L x log B) insert via multi-resolution LSH (L = levels, B = bucket size)
  • O(1) delete via resolver removal; no graph repair needed
  • Per-query adaptive budget via confidence-driven echolocation beam
  • Natural temporal decay without explicit deletion or index rebuild
  • Mutualistic composition: scent field (data deposit) + echolocation (query navigation) interact through shared gradient
  • 5-10x DRAM reduction potential at billion-vector scale

Operation Complexity

Side-by-side comparison with the classical counterpart.

Operation complexity comparison
OperationEcho FieldHNSW + IVF vector index (FAISS, Milvus)
insertO(L x log B)O(M x log N) (HNSW)
deleteO(1)O(M x log N)
queryAdaptive (confidence-driven)O(log N x ef)
memorySub-linear (scent compression)Linear (HNSW graph)

Interface Preview

echo_field.rs
rust
1pub struct ScentField { /* ... */ }
2
3impl ScentField {
4    pub fn new(config: ScentFieldConfig) -> Result<Self, EchoFieldError>;
5
6    // Core operations
7    pub fn insert(&mut self, vid: VectorId, vector: Vec<f32>) -> Result<(), EchoFieldError>;
8    pub fn delete(&mut self, vid: VectorId) -> Result<(), EchoFieldError>;
9    pub fn query(&self, vector: &[f32], k: usize) -> Result<Vec<(VectorId, f32)>, EchoFieldError>;
10
11    // Size & Memory
12    pub fn len(&self) -> usize;
13    pub fn is_empty(&self) -> bool;
14    pub fn memory_usage(&self) -> MemoryReport;
15}
16
echo_field.ts
typescript
1class EchoField {
2  constructor(options: EchoFieldOptions);
3  async init(): Promise<EchoField>;
4
5  // Core operations
6  insert(id: number, vector: Float32Array | number[]): void;
7  delete(id: number): void;
8  query(vector: Float32Array | number[], k: number): SearchResult[];
9
10  // Size & Memory
11  readonly length: number;
12  readonly isEmpty: boolean;
13  readonly memoryBytes: number;
14  memoryReport(): MemoryReport;
15}
16

Where This Matters

FAISS

HNSW + IVF Index

Improvement comparison
TodayWith Echo FieldHow
O(M x log N) delete requiring graph repairO(1) delete via resolver removalScent entries decay naturally; no graph edges to repair
Fixed search budget per queryPer-query adaptive budgetEcholocation confidence drives beam width (narrow on strong signals, wide on weak)
Periodic index rebuild for tombstone cleanupNatural temporal decay via tick()Scent entries weaken over time; stale data fades without explicit cleanup

Interactive Simulation

Discussion

Questions, ideas, or experiences with Echo Field? Join the discussion.