N17
中文
中文
  • N17 白皮书
    • 项目介绍
    • 平台亮点
  • 交易模式
    • 铸造
    • 发行
    • 交易
    • 生态激励
  • 技术体系
    • N17多链混合架构
      • UTXO 模型与账户模型
      • 抽象账户合约层和虚拟机的集成
      • EVM集成与交易流程
    • API & WebSocket
    • SpringCloud微服务架构
      • Feign(接口调用)
      • Netflix eureka(注册发现)
      • Ribbon(负载均衡)
      • Hystrix(熔断器)
      • Zuul(微服务网关)
      • SpringCloud( 统一配置服务)
      • Sleuth+ZipKin(跟踪服务)
    • 撮合交易引擎
      • 撮合系统
      • 基准价格选取算法
    • Wallet接口与拓展性
    • SpringSecurity+Web3.0签名验证
    • Seata
      • AT模式(与XA模式在编程模型上保持完全一致)
        • 整体机制
        • 写隔离
        • 读隔离
        • 一阶段过程
        • 二阶段-回滚过程
        • 二阶段-提交过程
      • TCC模式
      • SAGA模式
    • Mongodb数据仓库
      • 数据逻辑结构与存储结构
      • MongoDB相比传统开源数据库优势
  • DAO社区
    • N17 DAO的使命
    • N17 DAO的服务体系
    • N17 DAO的治理流程
    • 全球开发者社区
  • 风险提示与免责声明
Powered by GitBook
On this page
  1. 技术体系
  2. Seata
  3. AT模式(与XA模式在编程模型上保持完全一致)

读隔离

Previous写隔离Next一阶段过程

Last updated 2 years ago

在数据库本地事务隔离级别读取已提交(Read Committed)或以上的基础上,Seata(AT模式)的默认全局隔离级别是读取未提交(Read Uncommitted)。如果应用在特定场景下,必需要求全局的读取已提交,目前Seata的方式是通过SELECTFORUPDATE语句的代理。

SELECT FOR UPDATE语句的执行会申请全局锁,如果全局锁被其他事务持有,则释放本地锁(回滚SELECT FOR UPDATE语句的本地执行)并重试。这个过程中,查询是被block住的,直到全局锁拿到,即读取的相关数据是已提交的,才返回。

出于总体性能上的考虑,Seata目前的方案并没有对所有SELECT语句都进行代理,仅针对FOR UPDATE的SELECT语句。