🟢 Open to work: I am a backend Systems Engineer currently looking for a full-time role in deep infrastructure, database internals, or low-latency systems. I specialize in Go, memory optimization (bypassing GC), and bare-metal hardware. If your team is solving hard throughput problems, let's talk: rupamthxt@gmail.com | LinkedIn
High-Performance, In-Memory Vector Database written in Go. 550,000+ Writes/sec | 14,000+ QPS Search | HNSW Indexing
VectraDB is a lightweight, cloud-native vector store designed for AI infrastructure and high-throughput embedding workloads. It leverages Arena Memory Allocation to bypass Go's Garbage Collection overhead and implements IVF (Inverted File Index) for ultra-fast Approximate Nearest Neighbor (ANN) search.
graph TD
A[Client Request] -->|Insert Vector| B(WAL - Write Ahead Log)
B -->|Durability Sync| C{MemTable}
C -->|Batch Full| D[Paged Arena Allocator]
subgraph "Memory Management"
D -->|Alloc 4MB Page| E[Off-Heap Memory Block]
E -->|Pointer Arithmetic| F[Vector Node]
end
subgraph "Indexing"
F -->|Insert| G[HNSW Graph Layers]
end
style B fill:#f9f,stroke:#333,stroke-width:2px
style D fill:#bbf,stroke:#333,stroke-width:2px
[]float32 slab) to minimize GC pauses and maximize CPU cache locality.VectraDB avoids the common pitfall of storing millions of small structs. Instead, it uses a Columnar-like memory layout:
float32 vector data. This ensures high cache hit rates during the dot-product loop.Running on standard hardware (M1/M2 or AWS c5.large) with 128-dimensional vectors:
| Operation | Throughput | Latency (p99) | Notes |
|---|---|---|---|
| Ingestion (Write) | ~550,000 ops/sec | < 0.2ms | Arena allocation speed |
| Brute Force Search | ~430 QPS | ~10ms | Baseline (100% Recall) |
| HNSW Search | ~14,000 QPS | < 0.1ms | 30x Speedup (Approximate) |
Benchmark run with 50,000 vectors, 8 concurrent workers.
make docker-run
# Or manually:
# docker run -p 8080:8080 -v $(pwd)/data:/root/ vectradb:latest
make run
curl -X POST http://localhost:8080/api/v1/insert \
-H "Content-Type: application/json" \
-d '{
"id": "user_123",
"vector": [0.1, 0.5, 0.9],
"metadata": {"role": "engineer"}
}'
curl -X POST http://localhost:8080/api/v1/search \
-d '{"vector": [0.1, 0.5, 0.8], "k": 3}'
When running the benchmark binary you can expose Prometheus metrics
on http://localhost:9091/metrics (port is configurable with -metrics-port). The program instruments:
vectradb_insert_requests_totalvectradb_insert_duration_secondsvectradb_search_requests_totalvectradb_search_duration_secondsvectradb_vectors_totalGrafana can scrape Prometheus (configured to target localhost:9091) and
visualize these counters/histograms while the benchmark simulates load.
# prometheus.yml snippet
scrape_configs:
- job_name: vectradb_bench
static_configs:
- targets: ['localhost:9091']
The main server (make run or docker-run) already exposes /metrics on
port 8080 so you can monitor a running cluster as well.
Built by Rupam as a High-Performance Systems Engineering Portfolio Project.
$ claude mcp add VectraDB \
-- python -m otcore.mcp_server <graph>