Core Concepts
HTAP — Hybrid Transactional/Analytical Processing
Section titled “HTAP — Hybrid Transactional/Analytical Processing”ParticleDB is an HTAP database. It runs OLTP transactions (INSERT, UPDATE, DELETE with full ACID guarantees) and OLAP analytics (complex GROUP BY, aggregations over billions of rows) on the same data, in the same engine.
Traditional architectures require separate databases for transactions (PostgreSQL, MySQL) and analytics (ClickHouse, BigQuery) connected by ETL pipelines. ParticleDB eliminates this split:
| Traditional Stack | ParticleDB |
|---|---|
| PostgreSQL (OLTP) + ClickHouse (OLAP) + Pinecone (vectors) + Redis (cache) | One database |
| ETL pipeline with hours of lag | Real-time analytics on live data |
| 4 connection strings, 4 schemas | 1 connection string |
Serializable Snapshot Isolation (SSI)
Section titled “Serializable Snapshot Isolation (SSI)”Every transaction in ParticleDB runs at Serializable isolation — the strongest guarantee. This means:
- No dirty reads, no phantom reads, no lost updates
- Equivalent to executing all transactions one at a time
- MVCC-based snapshots for reads (no blocking between readers)
- Conflict detection at commit time (optimistic approach)
Columnar Storage with Zone Maps
Section titled “Columnar Storage with Zone Maps”Data is stored in columnar format (Apache Arrow) with precomputed zone-level statistics:
MIN,MAX,SUM,COUNTper column per zone (chunk of ~8192 rows)- Queries like
SELECT COUNT(*) FROM hitsresolve in microseconds from metadata alone - Filter predicates skip entire zones when zone statistics prove no rows match
- Dense dictionary encoding for string columns (DictU32) enables O(1) GROUP BY
Wire Protocol Compatibility
Section titled “Wire Protocol Compatibility”ParticleDB speaks the PostgreSQL v3 wire protocol natively. Any tool, driver, or ORM that works with PostgreSQL works with ParticleDB:
psql,pgAdmin,DBeaver- JDBC, Npgsql,
psycopg2,node-postgres,sqlx - Diesel, SQLAlchemy, Prisma, GORM
No custom drivers required. Connect to port 5432 and run SQL.