为什么80%的码农都做不了架构师?>>>   

本文是Ignite事务架构系列的最后一篇文章,在之前的文章中,讨论了与键值API的事务处理有关的一系列主题。

第一篇文章中,主要介绍了二阶段提交协议及其工作方式;

第二篇文章中,介绍了锁模型和隔离级别,介绍了悲观锁和乐观锁中不同隔离级别对应的消息流的细节,还介绍了死锁检测机制;

第三篇文章中,介绍了故障和恢复机制,介绍了Ignite如何管理备份节点故障、主节点故障以及事务协调器节点故障;

第四篇文章中,聚焦于原生持久化的事务处理,其中着重介绍了预写日志(WAL)和检查点;

在最后一部分,会聚焦于Ignite如何处理第三方持久化的事务。

通读和通写

Ignite的两个主要优势是扩展性和性能。Ignite遵循的一个基本原则是不撕裂不替换,换句话说,组织中的已有系统,正在支撑关键的业务且无法被轻易替换,但是可以通过更高的扩展性和性能来增强很多的业务查询,比如,Ignite可以提供内存数据网格服务(IMDG)或者在开启通读(当缓存中不存在时数据会从数据库中加载到IMDG)和通写(数据写入IMDG时也会持久化到数据库系统)时,为第三方数据库提供分布式缓存服务,如图1所示:

但是,事务必须妥善地处理,因为数据更新跨越了Ignite和第三方存储,维护IMDG和数据库之间的数据一致性就变得非常重要,为了达到这个目标,Ignite提供了CacheStore接口,为通读和通写操作提供了完整的事务支持。

二阶段提交

当Ignite使用第三方数据库作为持久化时,事务协调器会首先向第三方系统发送更新请求,然后再向集群节点发送提交消息。事务化数据库系统的工作方式提供了这样的保证,因此,当数据库事务失败时,事务会被回滚,这样缓存和数据库仍然保持一致。

故障处理

因为数据库可以被视为真实的数据源,所以管理故障要比之前讨论的场景要简单得多。数据总是可以从数据库重新加载到缓存以保证一致性,如图2所示,这对所有场景都有效,包括事务协调器故障的场景。Ignite的CacheStore接口提供了从数据库批量加载到缓存的功能,这就提供了一个快速恢复缓存的方法。

总结

处理第三方数据库存储的事务故障比之前讨论的其他场景要简单得多,因为更新和修改首先被应用于第三方存储。

转载于:https://my.oschina.net/liyuj/blog/1796152

Apache Ignite事务架构:第三方持久化的事务处理相关推荐

  1. 微服务架构的分布式事务解决方案(Dubbo分布式事务处理)

    微服务架构的分布式事务解决方案(Dubbo分布式事务处理) 参考文章: (1)微服务架构的分布式事务解决方案(Dubbo分布式事务处理) (2)https://www.cnblogs.com/qiyu ...

  2. Apache Ignite详解

    文章目录 一.Ignite简介和用途 简介 (1)In-Memory Database (2)Key-Value In-Memory Data Grid (3)Database Caching (4) ...

  3. Apache Ignite剖析

    1.概述 Apache Ignite和Apache Arrow很类似,属于大数据范畴中的内存分布式管理系统.在<Apache Arrow 内存数据>中介绍了Arrow的相关内容,它统一了大 ...

  4. Apache Ignite(二):核心特性一览(V1.4.0版本)

    为什么80%的码农都做不了架构师?>>>    1.数据网格 Ignite内存数据网格是一个内存内的键值存储,他可以在分布式集群的内存内缓存数据. 它通过强语义的数据位置和关系数据路 ...

  5. spring transaction源码分析--事务架构

    1. 引言  事务特性 事务是并发控制的单元,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务将逻辑相关的一组操作绑定在一起,以便服务器 保持数据的完整性.事 ...

  6. apache ignite_通过示例获取Apache Ignite Baseline拓扑

    apache ignite 点燃基准拓扑或BLT代表群集中的一组服务器节点,这些服务器节点将数据持久存储在磁盘上. 其中,N1-2和N5服务器节点是具有本机持久性的Ignite集群的成员,该集群使数据 ...

  7. apache ignite_使用Apache Storm和Apache Ignite进行复杂事件处理(CEP)

    apache ignite 在本文中, "使用Apache Ignite进行高性能内存计算"一书的作者将讨论使用Apache Strom和Apache Ignite进行复杂的事件处 ...

  8. 通过示例了解Apache Ignite Baseline拓扑

    点燃基准拓扑或BLT表示群集中的一组服务器节点,这些服务器节点将数据持久存储在磁盘上. 其中,N1-2和N5服务器节点是具有本机持久性的Ignite集群的成员,这些集群使数据能够持久存储在磁盘上. N ...

  9. Apache Ignite,Hazelcast,Cassandra和Tarantool之间的主要区别

    Apache Ignite在世界范围内得到广泛使用,并且一直在增长. 诸如Barclays,Misys,Sberbank(欧洲第三大银行),ING,JacTravel之类的公司都使用Ignite来增强 ...

最新文章

  1. 设计模式之简单工厂模式
  2. AI生态赋能2018论坛来袭!转型AI看这里!
  3. 多分类神经网络与原子核
  4. To B路上,除了服务管理,还要知识管理
  5. atmega8 例程:PWM
  6. SAP Spartacus可供demo用途的Commerce Cloud public instance
  7. 修改服务器时间需要重启吗,云服务器需要定期重启吗
  8. Python中fastapi关于异常或者错误的处理
  9. 编程在线--- 网站(IT技术学习、面试、交流)上线了
  10. java设计模式学习3--Command Pattern[原创]
  11. CMS4.0——后知后觉
  12. 三类IP地址ABC类的划分
  13. 17 张程序员壁纸(使用频率很高)
  14. c语言枪战游戏代码,FPS射击游戏《林海雪原》完整源代码
  15. Navicat15安装教程超详细步骤
  16. 傅里叶变换中的假频**
  17. 等比数列求和公式的推导
  18. Redis 哨兵模式安装方法
  19. [AHK]爬虫基础 解析IP138网站返回的结果
  20. 计算机课堂活跃小游戏,几个课堂小游戏(能活跃课堂气氛)

热门文章

  1. IDEA初使用:解决搜狗输入法不跟随BUG
  2. 【转】Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout
  3. 收藏个支持进度条与文件拖拽上传的js File Uploader
  4. 数据结构上机实践第八周项目6- 猴子选大王(数组版)
  5. 机器视觉——鱼眼相机成像模型
  6. caffe学习日记--lesson7:caffemodel可视化的两种方法
  7. Linux程序文件状态,linux 文件状态标识和IO操作方式
  8. 医学计算机语言s,B/S框架医学图像处理系统的算法接入方法研究
  9. python装饰器模式带参数_Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列)...
  10. linux什么命令查设备型号,在Linux命令行中查看系统硬件制造商、型号与序列号的六种方法...