Apache Ignite事务H5牌九棋牌网站搭建架构:并发模型和隔离级别

H5牌九棋牌网站搭建架构(Q1687054422)以及Ignite如何处理各种类型的集群节点,下面是在剩下的文章中要覆盖的主题:

  • 并发模型和隔离级别
  • 故障转移和恢复
  • Ignite持久化层中的事务处理(WAL、检查点及其他);
  • 第三方持久化中的事务处理

在本文中,我们会聚焦并发模型和隔离级别。 大多数现代多用户应用允许并发数据访问和修改。为了管理此功能,并确保系统从一个一致状态切换到另一个一致状态,使用了事务的概念。事务依赖于锁,它可以在事务开始时(悲观锁)获得,也可以在事务结束提交之前(乐观锁)获得。 Ignite支持两种并发模型:下面先讲悲观并发模型。

悲观并发模型

悲观并发模型的一个例子是两个银行账户之间的转账,需要确保两个银行账户的借贷状态正确记录。这时需要给两个账户加锁来确保更新全部完成并且余额正确。 在悲观并发模型中,应用需要在事务开始时锁定即将要读、写或者修改的所有数据。Ignite还支持一组悲观并发模型的,在读写数据时提供了灵活性:

  • 读提交
  • 可重复读
  • 序列化

在读提交模型中,锁是在写操作对数据进行任何改变之前获得的,比如put()或者putAll(),而可重复读以及序列化模型用于读写操作都需要获得锁的场景。Ignite还有些内置的功能,使得调试和解决分布式死锁问题更容易。 下面的代码示例展示了可重复读的悲观事务,因为应用需要对一个特定银行账户进行读和写的操作:

try (Transaction tx = Ignition.ignite().transactions().txStart(PESSIMISTIC, REPEATABLE_READ)) {
    Account acct = cache.get(acctId);

    assert acct != null;

    ...

    // Deposit into account.
    acct.update(amount);

    // Store updated account in cache.
    cache.put(acctId, acct);

    tx.commit();
}

本例中,通过**txStart()tx.commit()方法分别来进行事务的开启和提交。txStart()方法传递了PESSIMISTIC和REPEATABLE READ参数,在try块体中&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值