The ACID model is a set of
database design principles that emphasize aspects of reliability
that are important for business data and mission-critical
applications. MySQL includes components such as the
InnoDB storage engine that adhere closely to
the ACID model, so that data is not corrupted and results are not
distorted by exceptional conditions such as software crashes and
hardware malfunctions. When you rely on ACID-compliant features,
you do not need to reinvent the wheel of consistency checking and
crash recovery mechanisms. In cases where you have additional
software safeguards, ultra-reliable hardware, or an application
that can tolerate a small amount of data loss or inconsistency,
you can adjust MySQL settings to trade some of the ACID
reliability for greater performance or throughput.
The following sections discuss how MySQL features, in particular
the InnoDB storage engine, interact with the
categories of the ACID model:
A: atomicity.
C: consistency.
I:: isolation.
D: durability.
The atomicity aspect of the ACID
model mainly involves InnoDB
transactions. Related
MySQL features include:
The consistency aspect of the
ACID model mainly involves internal InnoDB
processing to protect data from crashes. Related MySQL features
include:
InnoDB
doublewrite
buffer.
InnoDB
crash recovery.
The isolation aspect of the ACID
model mainly involves InnoDB
transactions, in
particular the isolation
level that applies to each transaction. Related MySQL
features include:
Autocommit setting.
SET ISOLATION LEVEL statement.
The low-level details of InnoDB
locking. During
performance tuning, you see these details through
INFORMATION_SCHEMA tables.
The durability aspect of the ACID model involves MySQL software features interacting with your particular hardware configuration. Because of the many possibilities depending on the capabilities of your CPU, network, and storage devices, this aspect is the most complicated to provide concrete guidelines for. (And those guidelines might take the form of buy “new hardware”.) Related MySQL features include:
InnoDB
doublewrite
buffer, turned on and off by the
innodb_doublewrite
configuration option.
Configuration option
innodb_flush_log_at_trx_commit.
Configuration option
sync_binlog.
Configuration option
innodb_file_per_table.
Write buffer in a storage device, such as a disk drive, SSD, or RAID array.
Battery-backed cache in a storage device.
The operating system used to run MySQL, in particular its
support for the fsync() system call.
Uninterruptible power supply (UPS) protecting the electrical power to all computer servers and storage devices that run MySQL servers and store MySQL data.
Your backup strategy, such as frequency and types of backups, and backup retention periods.
For distributed or hosted data applications, the particular characteristics of the data centers where the hardware for the MySQL servers is located, and network connections between the data centers.

User Comments
Add your own comment.