Storage
You are viewing an old version of this article. View
the current version here.
Storage
When a table is created on MariaDB ColumnStore, the system creates at least one file per column for the table. So, for example, a table created with three columns would have at a minimum, three separately-addressable logical objects created on a SAN or a server’s disk drives.
- Each column is stored independently in 8M rows logical measure called an Extent. An extent for 1 byte datatypes consume 8MB; 2 byte datatypes consume 16MB; 4 byte datatypes consume 32MB; 8 byte datatypes consume 64MB; and variable size datatypes consume 64MB. Once an extent becomes full, a new extent is automatically created.
- An Extent is physically stored as collection of blocks.
- A block is 8K Bytes. Every database block in a database is uniquely identified by its Logical Block Identifier (LBID)
- String columns > 8 characters store indexes in the main column file and actual values in separate dictionary files.
- A segment file is a physical file on disk that holds a column’s data. Once a segment file reaches its maximum number of extents, a new segment file is automatically created
- Collectively, all the column's segment files for one ore more extents form a Partition
- Partitions are stored in a hierarchical structure organized by segments (i.e. folders)
- MariaDB ColumnStore meta-store maps file structure/location to DB schema as well as information used for partitioning
- By default the data is compressed
Comments
Comments loading...
Content reproduced on this site is the property of its respective owners,
and this content is not reviewed in advance by MariaDB. The views, information and opinions
expressed by this content do not necessarily represent those of MariaDB or any other party.