Founded in 2000 when authors realized there will be a need for something to process huge amounts of data in near future. From another perspective, it was clear that the cost of memory will continue to decrease and it will be afordable for many customers to use an in-memory analytics.
Exasol’s name is composed of two parts: EXA, originating from the Greek language denoting a unit prefix factor of 1018, while SOL stands for solution.
Multi-version Concurrency Control (MVCC)
To ensure compliance with the ACID principles, every transaction is subject to an evaluation by the transaction management system (TMS). If necessary, the TMS intervenes and automatically rectifies conflicts through the enforcement of waiting times or by rolling back transactions in the event of a collision.
To keep the number of colliding transactions as low as possible, Exasol supports the "MultiCopy Format". This keeps multiple versions of every database object (temporarily).
Exasol creates, maintains and drops indexes automatically
Indexes will be stored persistently and reused in later executions. Indexes are stored in a compressed manner and don't need to be decompressed when accessing them. Indexes are used for joins and under certain circumstances for filtering the data of a table (index scan). Internally EXASolution is using a tuned B-tree structure.
Decomposition Storage Model (Columnar)
Exasol supports UDF and scripts in Lua, Python, R, Java
There are no materialized views. Only regular views are supported