Author: Jan Lindstrom
-
InnoDB holepunch compression vs the filesystem in MariaDB 10.1
InnoDB holepunch experiments
After excellent blogs by Mark Callaghan (see links below), I decided to use some of my time to experiment how different filesystems behave if the holepunch feature is used in MariaDB 10.1. First of all, MariaDB 10.1 does not use holepunch by default even if a table is page compressed (a term used in MariaDB). The holepunch feature in MariaDB is enabled with the innodb-use-trim=1 configuration variable and naturally requires support of the fallocate system call with […]
-
MariaDB: InnoDB foreign key constraint errors
Introduction
A foreign key is a field (or collection of fields) in one table that uniquely identifies a row of another table. The table containing the foreign key is called the child table, and the table containing the candidate key is called the referenced or parent table. The purpose of the foreign key is to identify a particular row of the referenced table. Therefore, it is required that the foreign key is equal to the candidate key in some row […]
-
Fortran and MariaDB
Introduction
Fortran (FORmula TRANslating System) is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing. History of FORTRAN can be tracked late 1953 when John W. Backus submitted a proposal to his superiors at IBM. The First FORTRAN compiler appeared in April 1957.
Some notable historical steps where:
- FORTRAN II in 1958
- FORTRAN III in 1958,
- FORTRAN IV in 1962.
- FORTRAN 66 or X3.9-1966 become the first industry-standard
- FORTRAN 77 or X3.9-1978. This is the version of the Fortran I learned 1996.
- Fortran 90 was released as ISO/IEC standard 1539:1991 and ANSI Standard in 1992
- Fortran 95 was released as ISO/IEC standard 1539-1:1997
- Fortan 2003 was released as ISO/IEC 1539-1:2004
- Fortran 2008 was released as ISO/IEC 1539-1:2010 is most recent standard
- Fortran 2015 is planned in late 2016.
-
Table and tablespace encryption on MariaDB 10.1.3
Note that this post is now outdated. See Table and tablespace encryption on MariaDB 10.1
Introduction
For the moment, the only engines that fully support encryption are XtraDB and InnoDB. The Aria storage engine also supports encryption, but only for temporary tables.
MariaDB supports 2 different way to encrypt data in InnoDB/XtraDB:
- Specified table encryption: Only tables which you create with PAGE_ENCRYPTION=1 are encrypted. This feature was created by eperi.
- Tablespace encryption: Everything is encrypted (including log files). This feature was created by Google and is based on their MySQL branch.
-
Causal Consistency
Introduction
Causal consistency [1] is one of the consistency criteria that can be used on distributed databases as consistency criteria.
Distributed database provides causal consistency if read and write operations that are causally related are seen by every node of the distributed system in the same order. Concurrent writes may be seen in different order in diffrent nodes. Causal consistency is waker than sequential consistency [2] but stronger than eventual consistency [3]. See earlier blog for more detailed description on […]
-
MariaDB 10.1.1: Defragmenting unused space on InnoDB tablespace
Introduction
When you e.g. delete rows, these rows are just marked as deleted not really physically deleted from indexes and free space introduced is not returned to operating system for later reuse. Purge thread will physically delete index keys and rows, but still free space introduced is not returned to operating system and this operation can lead holes on page. If you have variable length rows, this could lead to situation where this free space can’t be used for new […]
-
MariaDB 10.1.1: Monitoring progress and temporal memory usage of Online DDL in InnoDB
Introduction
Online DDL is a new feature in MariaDB 10.0. Online DDL is processed through below 4 tasks in sequence.
- InnoDB::ha_prepare_inplace_alter_table(..)
- InnoDB::ha_inplace_alter_table(..)
- InnoDB::ha_commit_inplace_alter_table(..)
- mysql_rename_table(..)
-
Update on Performance measurement on MariaDB 10.1 and MySQL 5.7.4-labs-tplc
Introduction
This blog is a follow up to my original blog in https://blog.mariadb.org/performance-evaluation-of-mariadb-10-1-and-mysql-5-7-4-labs-tplc/ . First of all I would like to thank for all the comments I received. Based on the comments there was a concern if the differences seen on performance was due to different configuration setup. Furthermore, I did not know that there was a configuration variable to get similar multi-threaded flush mechanism on MySQL as there is on MariaDB. To find out if the different configuration variables […]