ACID 事务

简介: ACID 事务

  ACID 事务是关系型数据库一个重要的特性,也是 NewSQL 数据库最大的挑战之一。 PolarDB-X是一款基于云架构理念,并同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品。因此,对PolarDB-X来说,支持分布式ACID事务是必须的。

  事务ACID概念

  数据库英文为DataBase,是由Data + Base两个单词组成,可以理解为存放数据的仓库,最早数据库的诞生也是为解决数据的记账问题,要充分理解ACID的概念,可以从最朴素的转账业务看下。

  转账案例:

  A账户余额有100元,B账户余额0元,在这个基础上A向B转账40元,流程如下:

  查询A账户余额,看金额是>=40元。

  满足条件则先从A账户扣款40元(当前A余额=60、当前B余额=0)

  然后再向B账户增加40元(当前A余额=60、当前B余额=40)

  在这个案例中,我们分别看一下ACID在其中扮演的一些要求:

  持久性 (Durability)。 持久性是指一旦事务成功提交后,只要修改的数据都会进行持久化,不会因为异常、宕机而造成账户余额和转账信息的丢失。通常处于性能考虑数据库会进行内存写入的优化,避免数据的每次操作都进行写盘操作,数据库通常会借助于WAL日志(比如redo log)来持久性的要求。

  原子性(Atomicity)。一个事务必须是一系列操作的最小单元,这系列操作的过程中,要么整个执行,要么整个回滚,不存在只执行了其中某一个或者某几个步骤。 对应到案例中,原子性就代表(检查余额、转账、到账)三个步骤就是一个整体,少了任何一个都不能称为一次转账。尤其在分布式事务模型下,多个分片一般会通过2PC策略保持一个状态协同。

  一致性(Consistency)。事务的一致性要保证数据库整体数据的完整性和业务的数据的一致性,初看和原子性有一些相似的语义。对应到案例中,一致性会要求业务查询A/B账号时要么看到100/0 或 60/40的余额状态。

  隔离性(Isolation)。事务的隔离性是指并发事务操作时,事务之间不会互相影响,初看是和前三个定义不对齐,其定义更多的是从技术实现角度考虑,一直没有统一的标准,不同数据库厂商从自己的实现角度会有不一样的行为。

目录
相关文章
|
XML 人工智能 缓存
使用 Higress 快速构建 AI 应用
Higress 基于企业内外的丰富场景沉淀了众多面向 AI 的功能,推出了 AI 原生的 API 网关形态并且全部开源。
512 88
|
算法 内存技术
语音信号的A律压缩和u律压缩matlab仿真
语音信号的A律压缩和u律压缩matlab仿真
|
6月前
|
缓存 负载均衡 应用服务中间件
Nginx缓存的相关知识
总的来说,Nginx的缓存机制是其高性能的重要保证之一,通过合理的配置和管理,可以使网站的访问速度得到大幅提升。
142 28
|
8月前
|
人工智能 JavaScript 测试技术
通义灵码 2.0 体验报告:AI 赋能智能研发的新范式
**通义灵码 2.0 体验报告:AI 赋能智能研发的新范式** 本文详细评测了阿里云推出的通义灵码 2.0,基于通义大模型,提供代码智能生成、研发问答、多文件修改等核心能力。通过亲身体验,探讨其在新功能开发、跨语言编程、单元测试生成等场景的实际效果,并对比1.0版本的改进点。结果显示,2.0版本在代码生成完整性、自动化程度及跨语言支持方面有显著提升,但也存在安全性优化和个性化风格调整的空间。推荐指数:⭐⭐⭐⭐⭐。 (239字)
|
传感器 边缘计算 物联网
基于边缘计算的智能物联网:未来趋势与挑战
感谢您阅读本文!如果您对基于边缘计算的智能物联网、相关技术或未来发展有任何疑问或想法,请在评论区与我交流。让我们一起探索边缘计算如何为智能物联网带来更多的创新和机遇!
972 1
|
9月前
|
人工智能 搜索推荐 数据挖掘
企业CRM选型指南:销售易、悟空、超兔的全面对比
在数字化转型中,CRM系统成为企业提升销售效率和竞争力的关键工具。本文对比了销售易CRM、悟空CRM与超兔CRM三个品牌: - **销售易CRM**:提供从线索到现金的全流程管理,拥有强大的数据分析、定制化服务及本土化优势,适合大型企业和跨国公司。 - **悟空CRM**:内置智能数据分析、移动办公支持和360度客户视图,灵活性高,适合中大型及快速发展的企业。 - **超兔CRM**:界面简洁直观,高度定制化,集成第三方应用,支持移动办公,主要面向中小企业。 企业应根据自身需求和预算选择合适的CRM系统,以实现最佳的客户关系管理和销售自动化。
|
机器学习/深度学习 图形学 UED
优化用户体验与广告收入平衡的策略:提升IAA游戏变现效率
【7月更文第30天】随着移动游戏市场的竞争日益激烈,开发者必须确保他们的应用既能吸引并保留用户,又能从中获得足够的收入来维持运营和发展。IAA是一种有效的收入来源,但如果处理不当,可能会损害用户体验。因此,了解如何平衡IAA与用户体验至关重要。
748 0
|
网络安全 Nacos
在配置Nacos单机启动后,发现仍然以集群模式启动
在配置Nacos单机启动后,发现仍然以集群模式启动
484 1
|
SQL 存储 运维
阿里云分布式关系型数据库服务 DRDS
DRDS 是阿里巴巴集团自主研发的分布式数据库中间件产品,专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,稳定运行11年,经历历届双十一核心交易业务和各类行业业务的考验
13560 0
|
XML JSON Java
Spring Boot 中间件开发(一)《服务治理中间件之统一白名单验证》
Spring Boot + 领域驱动设计使得微服务越来越火热,而随着微服务越来越多,服务的治理就显得尤为重要。 在我们的业务领域开发中,经常会有一些通用性功能搭建,比如;白名单、黑名单、限流、熔断等,为了更好的开发业务功能,我们需要将非业务功能的通用逻辑提取出来开发出通用组件,以便于业务系统使用。而不至于Copy来Copy去,让代码乱的得加薪才能修改的地步!
953 80