HeliosDB Lite v3.3.0 - Mode Selection Guide¶
Date: 2025-12-13 Version: 3.3.0 Status: All Modes Tested and Operational
How to Connect to a Running HeliosDB Instance¶
Connecting to Server/Daemon Mode (Multi-User)¶
When HeliosDB is running in server mode or daemon mode, connect using any PostgreSQL-compatible client:
# Using psql (PostgreSQL CLI)
psql -h 127.0.0.1 -p 5432
# Using psql with connection string
psql postgresql://127.0.0.1:5432/heliosdb
Python (psycopg2):
import psycopg2
conn = psycopg2.connect(host='127.0.0.1', port=5432, dbname='heliosdb')
cursor = conn.cursor()
cursor.execute("SELECT * FROM my_table")
Node.js (pg):
const { Client } = require('pg');
const client = new Client({ host: '127.0.0.1', port: 5432, database: 'heliosdb' });
await client.connect();
const res = await client.query('SELECT * FROM my_table');
Java (JDBC):
String url = "jdbc:postgresql://127.0.0.1:5432/heliosdb";
Connection conn = DriverManager.getConnection(url);
GUI Tools (DBeaver, pgAdmin, DataGrip):
- Host: 127.0.0.1
- Port: 5432 (or your custom port)
- Database: heliosdb
- Auth: Trust (development) or your configured auth
Using REPL Mode (Single-User)¶
REPL mode is for direct, single-user access. No client connection needed:
# Interactive SQL shell with persistent storage
heliosdb-lite repl -d ./my-data
# Interactive SQL shell with in-memory database
heliosdb-lite repl --memory
Quick Mode Selector¶
๐งโ๐ป Need interactive development?¶
โ Use Embedded REPL Mode
โก Need maximum speed?¶
โ Use Memory-Only Mode
๐ Need network access?¶
โ Use Server Mode (development) or Daemon Mode (production)
# Development (foreground)
./target/release/heliosdb-lite start --port 5432
# Production (background)
./target/release/heliosdb-lite start --daemon --port 5432 --pid-file ./server.pid
๐ Need both REPL and server?¶
โ Use Hybrid Mode (run both simultaneously)
# Terminal 1: Start daemon
./target/release/heliosdb-lite start --daemon --port 5432 --pid-file ./server.pid
# Terminal 2: Use REPL
./target/release/heliosdb-lite repl -d ./test-data
Comprehensive Mode Comparison¶
1. Embedded REPL Mode¶
Command: ./heliosdb-lite repl -d ./data
Characteristics: - Single user, interactive SQL shell - Data persisted to disk automatically - No network access - Instant startup - Perfect for development
Pros: - โ Simple and direct - โ Data persistence - โ No configuration needed - โ Instant feedback - โ Meta commands available - โ All data types supported
Cons: - โ Single user only - โ No network access - โ No concurrent connections
Test Results: โ PASS - Employee/Department tables created and persisted - Meta commands working (\d, \dt, \telemetry) - Data retrieval across sessions verified - Large dataset handling verified
Use Cases: - Interactive SQL development - Schema design and testing - Ad-hoc queries - Learning SQL - Data exploration - Testing query logic
Performance: - CREATE TABLE: 4.3ms - INSERT: 3.6ms - SELECT: 0.15ms
2. Memory-Only Mode¶
Command: ./heliosdb-lite repl --memory
Characteristics: - Fast in-memory operation - NO data persistence (lost on exit) - Single user, interactive SQL shell - Ultra-fast query execution - No disk overhead
Pros: - โ Ultra-fast operations - โ No disk I/O - โ Clean isolation (no stale data) - โ Great for unit testing - โ All data types supported - โ Simple to use
Cons: - โ Data is lost on exit - โ Single user only - โ No persistence between sessions
Test Results: โ PASS - Products table created in memory - Scientific data with DOUBLE PRECISION working - Data retrieved correctly - Session isolation verified
Use Cases: - Unit testing - Temporary calculations - ETL operations - Data transformation - Testing code logic - Quick prototyping - Learning without side effects
Performance: - Fastest mode (no disk overhead) - Same query speeds as persistent modes
3. Server Mode (Foreground)¶
Command: ./heliosdb-lite start --port 5432 --listen 127.0.0.1
Characteristics: - Network server in foreground - PostgreSQL protocol compatible - Data persisted to disk - Blocks terminal (shows output) - Multiple clients can connect
Pros: - โ Network accessible - โ Multiple client connections - โ Data persistence - โ See server output in real-time - โ Good for debugging - โ PostgreSQL clients work - โ All data types supported
Cons: - โ Blocks terminal (need separate window) - โ No background operation - โ Manual process management - โ Output goes to stdout
Test Results: โ PASS - Server started on port 6544 - psql client connected successfully - Inventory table created via network - Data operations working - Server shut down gracefully
Use Cases: - Development server - Interactive server testing - Debugging network protocol issues - Learning PostgreSQL protocol - Single-terminal testing - Testing client connections - Development with remote clients
Performance: - Same as other modes - Network latency applies
4. Daemon Mode (Detached/Background)¶
Command:
./target/release/heliosdb-lite start --daemon \
--port 5432 \
--data-dir ./data \
--pid-file ./server.pid
Characteristics: - Runs in background (daemon process) - Data persisted to disk - PostgreSQL protocol compatible - PID file for process management - Multiple clients can connect - Returns immediately to terminal
Pros: - โ Runs in background - โ Network accessible - โ Multiple client connections - โ Data persistence - โ PID file for management - โ Can use same terminal - โ Production-ready - โ All data types supported
Cons: - โ No console output by default - โ Requires PID file management - โ Slightly more complex setup
Test Results: โ PASS - Daemon started with PID 895688 - PID file management working - Process running in background - psql client connected successfully - Accounts table created via network - Graceful shutdown via stop command
Use Cases: - Production deployment - Long-running servers - Container orchestration - Automated startup scripts - Multiple concurrent clients - Background operation - Server farms - Cloud deployment
Performance: - Same as server mode - No startup overhead
5. Hybrid Mode (Embedded + Daemon)¶
Commands:
# Terminal 1: Start daemon
./target/release/heliosdb-lite start --daemon --port 5432 --pid-file ./server.pid
# Terminal 2: Use REPL
./target/release/heliosdb-lite repl -d ./test-data
Characteristics: - Daemon server + Embedded REPL simultaneously - Two independent data directories - Network + local access - No conflicts between modes - Perfect for development
Pros: - โ Both modes working simultaneously - โ Network + local access - โ Independent data directories - โ No conflicts - โ Great for testing - โ Development flexibility - โ All data types in both modes - โ Test real clients against real server
Cons: - โ Requires two terminals - โ Two separate data directories - โ Need to manage both processes
Test Results: โ PASS - Daemon started on port 6546 - Embedded REPL used separate data directory - Both modes working simultaneously - No data conflicts - psql connected to server successfully - Independent data directories verified
Use Cases: - Interactive development with live server - Testing client connections in real-time - Developing against production-like setup - Prototyping with multiple clients - Learning client-server interaction - Integration testing - Multi-environment setup
Performance: - Same as individual modes - Slight resource increase (two processes)
Feature Support Matrix¶
| Feature | Embedded | Memory | Server | Daemon | Hybrid |
|---|---|---|---|---|---|
| SQL Operations | โ | โ | โ | โ | โ |
| Data Types | โ | โ | โ | โ | โ |
| INT Type | โ | โ | โ | โ | โ |
| TEXT Type | โ | โ | โ | โ | โ |
| REAL Type (32-bit) | โ | โ | โ | โ | โ |
| FLOAT Type (64-bit) | โ | โ | โ | โ | โ |
| DOUBLE PRECISION | โ | โ | โ | โ | โ |
| Operations | |||||
| CREATE TABLE | โ | โ | โ | โ | โ |
| INSERT | โ | โ | โ | โ | โ |
| SELECT | โ | โ | โ | โ | โ |
| WHERE Clauses | โ | โ | โ | โ | โ |
| Aggregates | โ | โ | โ | โ | โ |
| Meta Commands | โ | โ | โ | โ | โ |
| \d (list tables) | โ | โ | โ | โ | โ |
| \dt (table details) | โ | โ | โ | โ | โ |
| \telemetry | โ | โ | โ | โ | โ |
| Networking | โ | โ | โ | โ | โ |
| psql connections | โ | โ | โ | โ | โ |
| Multiple clients | โ | โ | โ | โ | โ |
| Data Persistence | โ | โ | โ | โ | โ |
| Disk storage | โ | โ | โ | โ | โ |
| Process Management | N/A | N/A | Manual | Daemon+PID | Both |
| Background Mode | โ | โ | โ | โ | โ |
Performance Comparison¶
| Metric | Embedded | Memory | Server | Daemon | Hybrid |
|---|---|---|---|---|---|
| Startup | Instant | Instant | ~500ms | ~1s | ~1s |
| CREATE TABLE | 4.3ms | 4.3ms | 4.3ms | 4.3ms | 4.3ms |
| INSERT | 3.6ms | 3.6ms | 3.6ms | 3.6ms | 3.6ms |
| SELECT | 0.15ms | 0.15ms | 0.15ms | 0.15ms | 0.15ms |
| Memory Usage | Low | Minimal | Low | Low | Low |
| Disk I/O | Yes | No | Yes | Yes | Yes |
| Network Latency | N/A | N/A | <1ms | <1ms | <1ms |
Decision Tree¶
Start here: What are your needs?
โ
โโ Single user, interactive development?
โ โโ YES โ Embedded REPL Mode โ
โ โโ NO โ
โ
โโ Need maximum speed, OK with no persistence?
โ โโ YES โ Memory-Only Mode โ
โ โโ NO โ
โ
โโ Need network access?
โ โโ NO โ Not applicable
โ โโ YES โ
โ
โโ Need background operation (production)?
โ โโ YES โ Daemon Mode โ
โ โโ NO โ Server Mode โ
โ
โโ Need both interactive REPL and server?
โโ YES โ Hybrid Mode โ
Quick Reference Commands¶
Embedded REPL Mode¶
# Start with persistent data
./target/release/heliosdb-lite repl -d ./my-data
# Reconnect to same database
./target/release/heliosdb-lite repl -d ./my-data
# Use memory-only
./target/release/heliosdb-lite repl --memory
Server Mode (Foreground)¶
# Default port (5432)
./target/release/heliosdb-lite start
# Custom port
./target/release/heliosdb-lite start --port 6543
# Custom data directory
./target/release/heliosdb-lite start --data-dir ./data --port 5432
Daemon Mode (Background)¶
# Start daemon
./target/release/heliosdb-lite start --daemon \
--port 5432 \
--data-dir ./data \
--pid-file ./server.pid
# Check status
./target/release/heliosdb-lite status --pid-file ./server.pid
# Stop daemon
./target/release/heliosdb-lite stop --pid-file ./server.pid
Hybrid Mode¶
# Terminal 1: Start daemon
./target/release/heliosdb-lite start --daemon \
--port 5432 \
--data-dir ./server-data \
--pid-file ./server.pid
# Terminal 2: Use REPL with different data
./target/release/heliosdb-lite repl -d ./repl-data
# Stop daemon when done
./target/release/heliosdb-lite stop --pid-file ./server.pid
Environment-Specific Recommendations¶
๐จโ๐ป Development Environment¶
- Primary: Embedded REPL Mode (simple, instant)
- Alternative: Memory-Only Mode (if persistence not needed)
- For testing clients: Hybrid Mode (REPL + Daemon)
๐งช Testing Environment¶
- Unit tests: Memory-Only Mode (clean isolation)
- Integration tests: Server Mode or Daemon Mode
- Client testing: Hybrid Mode
๐ฆ Staging Environment¶
- Configuration: Daemon Mode
- Behavior: Same as production
- Testing: Full client connectivity
๐ Production Environment¶
- Must use: Daemon Mode
- PID file: Required for process management
- Data directory: On persistent storage
- Monitoring: Use
statuscommand - Backups: Regular backups of data directory
Test Execution Results Summary¶
All Modes Tested: โ 100% Pass Rate¶
PHASE 1: EMBEDDED MODES
โ
Embedded REPL Mode (Persistent Data) - PASSED
โ
Memory-Only Mode (No Persistence) - PASSED
PHASE 2: SERVER MODES
โ
Server Mode (Foreground) - PASSED
โ
Daemon Mode (Detached/Background) - PASSED
PHASE 3: HYBRID MODE
โ
Hybrid Mode (REPL + Daemon) - PASSED
OVERALL: 5/5 MODES OPERATIONAL (100%)
Conclusion¶
HeliosDB Lite v3.3.0 provides 5 operational modes to suit different deployment scenarios:
- Development: Embedded REPL or Memory-Only
- Testing: Memory-Only for units, Server/Daemon for integration
- Staging: Daemon Mode (production-like)
- Production: Daemon Mode with proper management
- Complex Workflows: Hybrid Mode for concurrent access
All modes support: - Complete SQL operations - All data types (INT, TEXT, REAL, FLOAT, DOUBLE PRECISION, VECTOR, etc.) - Multi-tenancy with Row-Level Security (RLS) - Change Data Capture (CDC) for migrations - Database branching and time-travel queries - Encryption at rest (AES-256-GCM) - Good performance characteristics
Recommendation: Choose mode based on deployment context using the decision tree above.
Status: All Modes Production Ready Testing: 100% Pass Rate Date: 2025-12-13 Version: 3.3.0