NVMe SSD原子写特性介绍

举报
snowofsummer 发表于 2021/02/01 17:06:25 2021/02/01
【摘要】 数据库管理系统(Database Management System)简称数据库或者DBMS,在当前互联网、金融等行业、企业中获得了广泛的应用。数据库事务(Database Transaction)是单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。为保证上述事务的一致性和原子性,防止事...

数据库管理系统(Database Management System)简称数据库或者DBMS,在当前互联网、金融等行业、企业中获得了广泛的应用。

数据库事务(Database Transaction)是单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。

为保证上述事务的一致性和原子性,防止事务提交到持久化存储时出现不完整的情况,如因为突然断电、数据库或者操作系统挂死等意外情况导致部分数据库写入,部分未写入的情况,很多主流数据库采用了Double Write机制,如图1所示。

图1 数据库写操作流程:两次写

由上述典型数据库写操作机制分析可知,数据库采用两次写的机制来保证事务的原子性,这会带来相同数据的两次写操作。

NVMe SSD原子写特性实现原理

由前述可知,数据库为保证数据持久化到存储中不发生部分数据更新而导致的不一致问题,保障数据库的原子性,采用了Double Write机制,造成对存储的两次写操作。

针对这个问题,华为ES3000 V5 NVMe SSD提供原子写特性,保障写入ES3000 V5 NVMe SSD的IO操作的原子性,即一个IO要么完整的写入,要么整个写失败,不会出现一个IO中部分数据写入,部分未写入的情况,实现原理如图2所示。

这样数据库可不采用Double Write机制,也能保证数据完整落盘,减少一次数据写入操作,从而提升性能。

图2 华为ES3000 V5原子写特性基本原理

本文将详细介绍数据库解决方案MySQL数据库场景下,使能华为新一代NVMe PCIe固态硬盘ES3000 V5的原子写特性的操作指导。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。