Logo

What is VanadiumDB?

VanadiumDB is a relational database similar to MariaDB / MySQL. The storage and parse engine is coded from scratch in Golang without the use of C. The database adds some developer and end user-friendly features and is super slim (less than 14 MB binaries / 13 MB docker).

Download & Usage

VanadiumDB is free to use. No table limit. No storage limit.

Setup with Docker Download Windows Download Linux Download macOS

Quick Start / Installation Guide

Enterprise support is available.

Why do we need another database?

You should try VanadiumDB because:

Tiny Question Flexible
Tiny: less 14 MB binaries incl. the HTTP-Server + MariaDB interface - less 13 MB docker container Helpful: VanadiumDB provides exact reasons why the input / syntax does not work. Flexible: This database is open to developer friendly suggestions.
REST roll Block
REST API: Access the database data with a normal REST API without the use of middleware. Extended Rollback for database and table: Decide when you want to save storage - but not by accident. Simple Block Storage: New data storage format which is suitable for Solid Disk Drives.
Go Fast Tiny
Memory-safe: MariaDB / MySQL is written in C. C is a security hazard when not done correctly. VanadiumDB is written in Golang. Storage Optimizations: Decide when to save storage without messing up with the production data. Automatic Backup: Every database needs backup. VanadiumDB ships with the tool.

What SQL do I need to use?

VanadiumDB accepts the MariaDB / MySQL SQL variant.

The database does not support all MariaDB / MySQL commands but the big chunk of the commands you normally use. The following list shows the most of the commands that are available. The list is growing:

Data Definition (DDL)

  • CREATE (tables, databases, indexes)
  • ALTER (modify structures)
  • DROP (remove tables/databases)

Data Manipulation (DML)

  • SELECT (retrieve data)
  • INSERT (add new rows)
  • UPDATE (modify existing rows)
  • DELETE (remove rows)
  • REPLACE (insert or update)
  • GRANT (give permissions)

Filtering & Sorting

  • WHERE (filter rows)
  • ORDER BY (sort results)
  • GROUP BY (aggregate data)
  • HAVING (filter groups)
  • LIMIT (restrict results)

Joins

  • JOIN (combine tables)
  • INNER JOIN

Constraints

  • PRIMARY KEY (unique identifier)
  • FOREIGN KEY (link tables)

Functions & Operators

  • COUNT(), SUM(), AVG(), MIN(), MAX() (aggregations)
  • LIKE (pattern matching)
  • IN (check for values in a list)
  • BETWEEN (range checks)
  • AS (alias columns/tables)

Transactions

  • START TRANSACTION
  • COMMIT
  • ROLLBACK

You get an error message ; Operator not supported if a command is not supported.

Stability of VanadiumDB

The project uses test driven development to test out new commands and features. Currently, there are 117+ (multi-commands) tests and, integration-tests scenario-tests for the core components. The results are verified against a MariaDB tests instance to get a bit-perfect replication of the results.

Also tested against:

  • Dumps from MariaDB
  • Dumps from HediSQL
  • Import from CSV-files
  • HediSQL API interface

What happens if the database crashes? Deletion requests, inserts, changes are written to the disk never without an undo log. The code can stop at any moment (or the server) crashes without the loss of data.

How does the storage works?

Every table, list or config is stored in blocks. Blocks are files of fixed length. This is optimized state for Solid Disk State.

Efficient Use of Writing and Reading - Swapping of Blocks

Instead of load and rewrite one value and save the full database for every update. The database swaps out single or multiple blocks when one line is changed.

Never forget data - Write a head logging

The logging provides the functionality of a rollback. Data is never altered on the disk when the logging is not completed. The rollback is available after every outage.

Speed Up Database - Always On-Cache

The database reads the blocks (database storage) on boot from the disk and holds the data in memory during the operation and swaps and write blocks based altering commands (Update, Delete, Alter, Create).

Binary full optimize data storage format

VanadiumDB store data in .dbx files. They contain binary data and should not be touched / altered by hand. If you want to move data use the dump command.

FAQ

Does it cost money? Are there any limits?

The usage of VanadiumDB is free. You can create so many tables and databases until your hardware bursts. 8 Exabytes of data per table are storable - 8,388,608 terabytes (TB).

Can I run any command of SQL on it?

No. The catalog of commands expands every day. You get an error message ; Operator not supported if a command is not supported.

What variant of SQL I need to write?

MariaDB / MySQL variant.

How can I migrate my data?

Create a full dump of all your data, import the data and create users accounts that should access the databases with the CLI / API.

How can I back up my data?

There is an integrated CLI command for this.

Open for feedback! - Suggestions / Feedback / Change Requests / Bugs

What do you hate about MariaDB and other relation databases? VanadiumDB is open to changes and suggestions!

Feedback

VGwort