切换默认shell到wsl

This commit is contained in:
2023-01-10 21:59:13 +08:00
parent 1d6198e9d8
commit be40280c8c
33 changed files with 5387 additions and 5387 deletions

View File

@@ -1,22 +1,22 @@
# 分布式事务: Saga模式
## Saga模型
- 每个Saga都由一系列子事务Ti组成
- 每个子事务Ti都有其对应的补偿动作Ci补偿操作用于对Ti操作产生的结果进行撤销
## Saga的执行顺序
1. T1, T2, T3, ... ,Tn全部执行成功
2. T1 T2, T3, ..., Tj, Cj, Cj-1,... , C1 (执行出错之后回滚之前所有成功的子事务)
## 执行出错时Saga的恢复策略
1. 向后恢复backword recovery对所有已经完成的子事务进行补偿操作任一子事务Ti执行失败撤销掉之前所有执行成功的子事务使得整个Saga的执行结果都撤销
2. 向前恢复forward recovery重新尝试失败的事务。假设每个事务最终都会执行成功。其执行顺序为T1, ... Tj(失败), Tj重试,...,...,Tn。该种情况下并不需要Ci操作对子事务Ti的操作结果进行撤销
## Saga模式的结构
Saga的嵌套结构只允许存在两个层次
1. 顶层的Saga
2. 简单的子事务
## Saga特性
- 在外层各个Sagas都在执行时各个Sagas在执行过程中已经提交的子事务Ti其执行结果对其他Sagas可见隔离性并无法被满足Sagas可能看到其他Sagas的执行结果
- 每个子事务都是一个独立事务,各个子事务为独立的原子行为
## Saga ACID
- 原子性:正常情况下可以保证
- 一致性执行过程中可能会有A库和B库违反一致性要求的情况但是最终成功之后是一致的
- 隔离性Sagas A能看到Sagas B部分执行的执行结果
# 分布式事务: Saga模式
## Saga模型
- 每个Saga都由一系列子事务Ti组成
- 每个子事务Ti都有其对应的补偿动作Ci补偿操作用于对Ti操作产生的结果进行撤销
## Saga的执行顺序
1. T1, T2, T3, ... ,Tn全部执行成功
2. T1 T2, T3, ..., Tj, Cj, Cj-1,... , C1 (执行出错之后回滚之前所有成功的子事务)
## 执行出错时Saga的恢复策略
1. 向后恢复backword recovery对所有已经完成的子事务进行补偿操作任一子事务Ti执行失败撤销掉之前所有执行成功的子事务使得整个Saga的执行结果都撤销
2. 向前恢复forward recovery重新尝试失败的事务。假设每个事务最终都会执行成功。其执行顺序为T1, ... Tj(失败), Tj重试,...,...,Tn。该种情况下并不需要Ci操作对子事务Ti的操作结果进行撤销
## Saga模式的结构
Saga的嵌套结构只允许存在两个层次
1. 顶层的Saga
2. 简单的子事务
## Saga特性
- 在外层各个Sagas都在执行时各个Sagas在执行过程中已经提交的子事务Ti其执行结果对其他Sagas可见隔离性并无法被满足Sagas可能看到其他Sagas的执行结果
- 每个子事务都是一个独立事务,各个子事务为独立的原子行为
## Saga ACID
- 原子性:正常情况下可以保证
- 一致性执行过程中可能会有A库和B库违反一致性要求的情况但是最终成功之后是一致的
- 隔离性Sagas A能看到Sagas B部分执行的执行结果
- 持久性对于Sagas中的子事务Ti其执行完成之后就会commit而其撤销操作则是会调用Ci对已经提交的操作进行撤销操作