|
| 1 | +--- |
| 2 | +sidebar_position: 3 |
| 3 | +--- |
| 4 | + |
| 5 | +# System Performance Under Load |
| 6 | + |
| 7 | +## Concern |
| 8 | + |
| 9 | +Community feedback expressed concerns about system degradation under high demand, referencing Figure 9 of the CIP as evidence that proposed Leios exhibits poor performance characteristics as load increases. |
| 10 | + |
| 11 | +> "As you increase load you reach a maximum throughput and then the throughput will dropoff as you [continue to] increase load... it's a given that delays will increase." |
| 12 | +
|
| 13 | +<div style={{display: 'flex', justifyContent: 'center', margin: '20px 0'}}> |
| 14 | + <iframe |
| 15 | + width="900" |
| 16 | + height="506" |
| 17 | + src="https://www.youtube.com/embed/XPwDkHsGYO8?start=630&end=720" |
| 18 | + title="Community Discussion on Leios Performance Under Load" |
| 19 | + frameBorder="0" |
| 20 | + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" |
| 21 | + allowFullScreen |
| 22 | + style={{maxWidth: '100%', minHeight: '400px', aspectRatio: '16/9'}} |
| 23 | + /> |
| 24 | +</div> |
| 25 | + |
| 26 | +## Analysis |
| 27 | + |
| 28 | +The concern appears to stem from a misinterpretation of Figure 9 in the CIP specification. This figure represents a **limit analysis** used for parameter selection, not operational recommendations or expected system behavior. |
| 29 | + |
| 30 | +### Purpose of Figure 9 |
| 31 | + |
| 32 | +Figure 9 from the [CIP specification](https://github.com/cardano-scaling/CIPs/blob/leios/CIP-0164/README.md#figure-9) demonstrates system behavior across a wide range of protocol parameters to identify optimal operating points. |
| 33 | + |
| 34 | +<img |
| 35 | + src="https://raw.githubusercontent.com/cardano-scaling/CIPs/leios/CIP-0164/images/reach-rb-tx.svg" |
| 36 | + alt="Figure 9: Time for transaction to reach the ledger" |
| 37 | + style={{maxWidth: '100%', height: 'auto', display: 'block', margin: '20px auto'}} |
| 38 | +/> |
| 39 | + |
| 40 | +<div style={{textAlign: 'center'}}> |
| 41 | +[*Figure 9: Time for transaction to reach the ledger*](https://github.com/cardano-scaling/CIPs/blob/leios/CIP-0164/README.md#figure-9) |
| 42 | +</div> |
| 43 | + |
| 44 | +The higher throughput scenarios showing increased latency represent **overcapacity conditions** that would not be used in practice. These data points serve to: |
| 45 | + |
| 46 | +- Establish safe operational boundaries |
| 47 | +- Guide protocol parameter selection |
| 48 | +- Demonstrate system limits for research purposes |
| 49 | + |
| 50 | +### Operational Parameter Selection |
| 51 | + |
| 52 | +The proposed Leios protocol parameters are selected from the **efficient region** of the parameter space, specifically avoiding the degraded performance zones shown in Figure 9. The system is designed to operate well within capacity limits where performance remains stable. |
| 53 | + |
| 54 | +### Transaction Lifecycle |
| 55 | + |
| 56 | +The apparent latency increase in Figure 9's higher throughput scenarios reflects a shift in transaction processing patterns rather than system degradation: |
| 57 | + |
| 58 | +- **Lower throughput**: Mix of fast RB inclusion and slower EB inclusion |
| 59 | +- **Higher throughput**: Predominantly EB inclusion (by design) |
| 60 | +- **Overcapacity**: Transactions queue in mempool (same as current Praos behavior) |
| 61 | + |
| 62 | +This represents normal queueing behavior during congestion, not a fundamental protocol flaw. |
| 63 | + |
| 64 | +### Comparison with Current System |
| 65 | + |
| 66 | +The current Praos system exhibits similar behavior under congestion: |
| 67 | +- Mempool saturation causes increased transaction latency |
| 68 | +- Throughput plateaus at maximum capacity |
| 69 | +- Performance degrades when demand exceeds capacity |
| 70 | + |
| 71 | +Proposed Leios maintains these same characteristics while providing significantly higher baseline throughput. |
| 72 | + |
| 73 | +### Recent Simulation Improvements |
| 74 | + |
| 75 | +Following community feedback, the research team conducted additional analysis to test the specific performance concerns raised. This investigation led to the discovery and resolution of a simulation bug that was artificially degrading performance metrics. |
| 76 | + |
| 77 | +**Bug Discovery**: The Rust simulator was incorrectly including duplicate transactions in the ledger, which: |
| 78 | +- Lowered effective throughput proportional to the redundancy |
| 79 | +- Clogged the memory pool and slowed simulations |
| 80 | +- Created misleading performance degradation patterns |
| 81 | + |
| 82 | +**Resolution**: The bug was fixed in [sim-cli 1.3.1](https://github.com/input-output-hk/ouroboros-leios/releases/tag/sim-rs-1.3.1), and new simulations show that the protocol achieves its theoretical capacity more effectively than previously measured. |
| 83 | + |
| 84 | +**Improved Results**: Updated simulations demonstrate that throughput properly plateaus at capacity limits rather than degrading, confirming that the protocol design meets its performance objectives under load. |
| 85 | + |
| 86 | +## Conclusion |
| 87 | + |
| 88 | +Figure 9 represents a comprehensive analysis of system limits used for parameter selection, not a prediction of operational performance. The proposed protocol parameters are specifically chosen to avoid the degraded performance regions, ensuring stable operation under normal and high-load conditions. |
| 89 | + |
| 90 | +The recent discovery and correction of simulation bugs demonstrates the value of community feedback in improving both the protocol analysis and documentation. The corrected simulations show even better performance characteristics than originally reported. |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +**References**: [CIP Leios Specification - Figure 9](https://github.com/cardano-scaling/CIPs/blob/leios/CIP-0164/README.md#figure-9) |
0 commit comments