frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Dimension-DB – Time‑series/columnar DB for Java (local store and JDBC)

https://github.com/akardapolov/dimension-db
1•akardapolov•1h ago
I built an embedded, pure‑Java database for time‑series and dimensional analytics. It combines a columnar, block‑encoded local store (on top of Berkeley DB Java Edition) with a read API that can also target external SQL systems via JDBC using auto‑generated queries.

While powerful time-series databases like ClickHouse or InfluxDB exist, they are often heavyweight servers. I wanted something more like DuckDB but for the Java ecosystem: a library I could drop into any application to get fast, local analytical queries without managing a separate service.

Dimension-DB is designed for this niche. You can use it in embedded applications, IoT edge devices, or as a high-performance cache within a larger backend.

Key features that make it different:

- Embeddable Core: It's a library, not a server. It uses Berkeley DB JE as its local storage backend, making it trivial to integrate into any Java project with zero operational overhead.

- Adaptive Columnar Storage: It doesn't just store data in columns. It automatically analyzes data blocks and applies the best storage format (RAW, dictionary-encoded ENUM, or run-length-encoded HISTOGRAM) on-the-fly. This massively improves compression and query speed, especially for low-cardinality metrics.

- Hybrid Query Mode: Beyond local storage, it can act as a "read-only" query accelerator for existing databases. You can point it at a PostgreSQL, Oracle, or ClickHouse table, and it will auto-generate efficient SQL for time-series queries, acting as a smart analytical layer.

- Proven Performance: I've benchmarked it against the public NYC Taxi dataset (78 million rows). It achieves a sustained ingest rate of ~55,000 rows/sec and provides significant query acceleration, especially for complex aggregations.

This isn't just a side project; it's the core storage engine that powers Dimension-UI, the desktop monitoring tool I built. I needed a fast, local database to handle real-time visualization and analysis, and existing solutions were either too slow or too complex.

The project is open source and I'm actively looking for feedback. Let me know what you think!

Links:

- Dimension-DB (GitHub & Benchmarks): https://github.com/akardapolov/dimension-db

- Dimension-UI (The desktop app that uses Dimension-DB): https://github.com/akardapolov/dimension-ui

- Dimension-DI (The DI container used in Dimension-UI): https://github.com/akardapolov/dimension-di