Siodb has a unique way of storing data. This unique storage design is a combination of various modern concepts that together provide high performance. Let’s discover deeper how works this storage architecture.
First of all, Siodb stores its data in columns (as opposed to row storage where one storage unit stores multiple columns). Each column from each table has its own set of data files. Furthermore, Siodb indexes each column by design according to their type.
Also, Siodb has an automatic data type size to be flexible on data type sizes. Thanks to this feature, Siodb takes care of the data size without having to declare column size nor impacting performance.
Siodb writes data from a column in data files called partitions. All partitions have the same size. Siodb fills the partition from the beginning to the end with the data from clients. No matter the transaction type (insert, update, delete), Siodb generates records and then append those records into the current partition.
A storage representation for a table of 4 columns:
This storage architecture enables high throughput. Indeed, for any kind of operation, multiples threads work in parallel to go through each partition of requested columns.
This storage architecture answers both load types from application: OLTP and OLAP.
Indeed, OLAP applications execute large queries across various columns from various big tables. Hence, the column storage, automatically indexed and partitioned by blocks makes Siodb very fast on large query processing.
Nevertheless, OLTP applications are not forgotten. Indeed, a master column on each table keeps a virtual view of data by row. Therefore, whenever Siodb accesses a cell from any row in a table, it has direct access to all other cells of that row.
In brief, the internal storage architecture of Siodb reduces I/Os, increases performance and avoids wasting space.
Your feedback is WANTED. Please give us your input by commenting below.