evitaDB uses a restricted data model that only supports hierarchical entities with prices.
Indexes are organized as an immutable tree with a single root. Clients work with the root that was valid at the start of the transaction. Each committed transaction creates a new immutable tree of indexes that shares pointers to unmodified indexes with the previous index tree, but contains pointers to indexes modified (in part) by the committed transaction. This mechanism follows a path-copy approach to persistent data structures.
Database maintains a WAL that captures all atomic logical mutations of data requested by clients.
The DBMS executes queries from the bottom up, completely computing the set operation over an array of bitmaps into a single bitmap that is then used at the upper level of the query tree computation.
The data on disk is in heap form - it's written one at a time in append-only fashion and never updated. The database maintains an index of all keys pointing to specific locations on disk where the tuple is located.
FG Forrest, a.s.