WangzJi opened a new issue, #8039:
URL: https://github.com/apache/incubator-seata/issues/8039

   Check Ahead
   - [x] I have searched the issues of this repository and believe that this is 
not a duplicate.
   - [ ] I am willing to try to implement this feature myself.
   
   Why you need it?
   The current `seata-benchmark-cli` already supports `--mode SAGA`, and when 
`--branches > 0` it uses Seata's state machine engine. This is a good first 
step, but the current benchmark workload is still relatively lightweight and 
benchmark-oriented.
   
   Today, the benchmark can measure the state machine path itself, but it is 
still not ideal for evaluating more realistic Saga behavior under 
business-style workloads, especially when we want to compare results with AT / 
TCC / XA. In particular, the current implementation does not yet provide enough 
workload realism, reproducible failure modeling, or richer Saga-specific result 
reporting.
   
   So the need here is not to add a brand new transaction mode, but to make the 
existing traditional Saga benchmark more representative and more useful for 
performance comparison and regression tracking.
   
   How it could be?
   This issue is about the existing traditional Saga path only, i.e. 
`BranchType.SAGA` and the current `--mode SAGA` support in 
`seata-benchmark-cli`.
   
   A possible direction is:
   
   - keep the current state machine engine based implementation
   - enhance `SagaModeExecutor` instead of introducing another Saga mode
   - make the workload more realistic, for example by supporting optional 
DB-backed business actions or more realistic order / inventory / payment style 
steps
   - add reproducible failure injection, such as configured failure rate, 
timeout simulation, or per-step failure control
   - improve result reporting so the benchmark output can clearly show 
committed / compensated / failed / compensation-failed results
   - define clearer semantics for `--branches` in Saga mode, or allow selecting 
different predefined state machine shapes while preserving backward 
compatibility
   - update README with runnable examples and explanation of the Saga-specific 
parameters
   
   Expected outcome:
   
   - existing `--mode SAGA` remains backward compatible
   - benchmark results become more representative of a traditional 
state-machine Saga workload
   - compensation scenarios can be triggered and observed more clearly
   - final benchmark report becomes more actionable for comparison and diagnosis
   
   Other related information
   Current implementation evidence:
   
   - 
`test-suite/seata-benchmark-cli/src/main/java/org/apache/seata/benchmark/BenchmarkRunner.java`
     - currently only dispatches `AT`, `TCC`, and `SAGA`
   - 
`test-suite/seata-benchmark-cli/src/main/java/org/apache/seata/benchmark/config/BenchmarkConfig.java`
     - currently validates only `AT`, `TCC`, and `SAGA`
   - 
`test-suite/seata-benchmark-cli/src/main/java/org/apache/seata/benchmark/executor/SagaModeExecutor.java`
     - `branches == 0`: simplified mock mode
     - `branches > 0`: state machine engine mode
   - `test-suite/seata-benchmark-cli/README.md`
     - documents SAGA support and state machine usage
   
   Non-goal for this issue:
   
   - annotation-based Saga support (`BranchType.SAGA_ANNOTATION`) should be 
tracked separately because it is a different execution path and likely needs 
different bootstrap/integration logic.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to