特性介绍
MySQL数据库写操作介绍
DBMS(Database Management System)简称数据库,在当前互联网、金融等行业中获得了广泛的应用。
数据库事务(Database Transaction)是单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。
为保证上述事务的一致性和原子性,防止事务提交到持久化存储时出现不完整的情况,如因为突然断电、数据库或者操作系统挂死等意外情况导致部分数据库写入,部分未写入的情况,很多主流数据库采用了Doublewrite机制,如图1所示。
由上述典型数据库写操作机制分析可知,数据库采用两次写的机制来保证事务的原子性,这会带来相同数据的两次写操作。
NVMe SSD原子写特性实现原理
由前述可知,数据库为保证数据持久化到存储中不发生部分数据更新而导致的不一致问题,保障数据库的原子性,采用了Doublewrite机制,造成对存储的两次写操作。
针对这个问题,华为ES3000 V5 NVMe SSD提供原子写特性,保障写入ES3000 V5 NVMe SSD的IO操作的原子性,即一个IO要么完整的写入,要么整个写失败,不会出现一个IO中部分数据写入,部分未写入的情况,实现原理如图2所示。
这样数据库可不采用Doublewrite机制,也能保证数据完整落盘,减少一次数据写入操作,从而提升性能。
本文将详细介绍数据库解决方案MySQL数据库场景下,使能华为新一代NVMe PCIe固态硬盘ES3000 V5的原子写特性的操作指导。
版本说明
本特性随Kunpeng Computing DC Solution 20.0.3版本发布。