Handle interrupt/resume for subgraphs #1044
Annotations
1 warning and 2 notices
benchmark
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
|
Benchmark results:
libs/langgraph/tests/test_pregel.py#L1
.........................................
fanout_to_subgraph_10x: Mean +- std dev: 61.3 ms +- 1.6 ms
.........................................
fanout_to_subgraph_10x_sync: Mean +- std dev: 51.1 ms +- 0.7 ms
.........................................
fanout_to_subgraph_10x_checkpoint: Mean +- std dev: 90.7 ms +- 7.8 ms
.........................................
fanout_to_subgraph_10x_checkpoint_sync: Mean +- std dev: 92.6 ms +- 0.8 ms
.........................................
fanout_to_subgraph_100x: Mean +- std dev: 597 ms +- 26 ms
.........................................
fanout_to_subgraph_100x_sync: Mean +- std dev: 499 ms +- 5 ms
.........................................
fanout_to_subgraph_100x_checkpoint: Mean +- std dev: 929 ms +- 43 ms
.........................................
fanout_to_subgraph_100x_checkpoint_sync: Mean +- std dev: 916 ms +- 15 ms
.........................................
react_agent_10x: Mean +- std dev: 30.6 ms +- 0.6 ms
.........................................
react_agent_10x_sync: Mean +- std dev: 22.5 ms +- 0.2 ms
.........................................
react_agent_10x_checkpoint: Mean +- std dev: 46.5 ms +- 0.9 ms
.........................................
react_agent_10x_checkpoint_sync: Mean +- std dev: 36.2 ms +- 0.5 ms
.........................................
react_agent_100x: Mean +- std dev: 340 ms +- 7 ms
.........................................
react_agent_100x_sync: Mean +- std dev: 269 ms +- 4 ms
.........................................
react_agent_100x_checkpoint: Mean +- std dev: 924 ms +- 12 ms
.........................................
react_agent_100x_checkpoint_sync: Mean +- std dev: 825 ms +- 9 ms
.........................................
wide_state_25x300: Mean +- std dev: 24.0 ms +- 0.5 ms
.........................................
wide_state_25x300_sync: Mean +- std dev: 15.3 ms +- 0.1 ms
.........................................
wide_state_25x300_checkpoint: Mean +- std dev: 276 ms +- 3 ms
.........................................
wide_state_25x300_checkpoint_sync: Mean +- std dev: 264 ms +- 3 ms
.........................................
wide_state_15x600: Mean +- std dev: 28.0 ms +- 0.6 ms
.........................................
wide_state_15x600_sync: Mean +- std dev: 17.7 ms +- 0.1 ms
.........................................
wide_state_15x600_checkpoint: Mean +- std dev: 478 ms +- 7 ms
.........................................
wide_state_15x600_checkpoint_sync: Mean +- std dev: 462 ms +- 8 ms
.........................................
wide_state_9x1200: Mean +- std dev: 27.9 ms +- 0.5 ms
.........................................
wide_state_9x1200_sync: Mean +- std dev: 17.6 ms +- 0.1 ms
.........................................
wide_state_9x1200_checkpoint: Mean +- std dev: 310 ms +- 4 ms
.........................................
wide_state_9x1200_checkpoint_sync: Mean +- std dev: 297 ms +- 4 ms
|
Comparison against main:
libs/langgraph/tests/test_pregel.py#L1
+----------------------------------------+---------+-----------------------+
| Benchmark | main | changes |
+========================================+=========+=======================+
| fanout_to_subgraph_10x_checkpoint | 93.5 ms | 90.7 ms: 1.03x faster |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_10x_sync | 52.0 ms | 51.1 ms: 1.02x faster |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_10x | 62.0 ms | 61.3 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| react_agent_10x_checkpoint_sync | 36.6 ms | 36.2 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| wide_state_9x1200_checkpoint | 312 ms | 310 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_10x_checkpoint_sync | 93.3 ms | 92.6 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| wide_state_25x300_checkpoint_sync | 266 ms | 264 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| wide_state_9x1200_sync | 17.7 ms | 17.6 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| wide_state_15x600_checkpoint_sync | 464 ms | 462 ms: 1.00x faster |
+----------------------------------------+---------+-----------------------+
| wide_state_25x300_checkpoint | 277 ms | 276 ms: 1.00x faster |
+----------------------------------------+---------+-----------------------+
| react_agent_100x_sync | 270 ms | 269 ms: 1.00x faster |
+----------------------------------------+---------+-----------------------+
| wide_state_15x600_checkpoint | 476 ms | 478 ms: 1.00x slower |
+----------------------------------------+---------+-----------------------+
| wide_state_25x300 | 23.9 ms | 24.0 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_10x_sync | 22.3 ms | 22.5 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| Geometric mean | (ref) | 1.00x faster |
+----------------------------------------+---------+-----------------------+
Benchmark hidden because not significant (14): react_agent_10x, wide_state_9x1200_checkpoint_sync, fanout_to_subgraph_100x_sync, wide_state_25x300_sync, react_agent_100x_checkpoint, react_agent_10x_checkpoint, wide_state_15x600_sync, react_agent_100x, react_agent_100x_checkpoint_sync, fanout_to_subgraph_100x_checkpoint, fanout_to_subgraph_100x_checkpoint_sync, wide_state_15x600, wide_state_9x1200, fanout_to_subgraph_100x
|