[Checkpointers] MemorySaver: refrain from overwriting writes #811
Annotations
1 warning and 2 notices
benchmark
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Benchmark results:
libs/checkpoint/langgraph/checkpoint/memory/__init__.py#L1
.........................................
fanout_to_subgraph_10x: Mean +- std dev: 57.6 ms +- 1.3 ms
.........................................
fanout_to_subgraph_10x_sync: Mean +- std dev: 49.4 ms +- 0.5 ms
.........................................
fanout_to_subgraph_10x_checkpoint: Mean +- std dev: 83.5 ms +- 1.5 ms
.........................................
fanout_to_subgraph_10x_checkpoint_sync: Mean +- std dev: 91.5 ms +- 1.1 ms
.........................................
fanout_to_subgraph_100x: Mean +- std dev: 537 ms +- 11 ms
.........................................
fanout_to_subgraph_100x_sync: Mean +- std dev: 481 ms +- 5 ms
.........................................
fanout_to_subgraph_100x_checkpoint: Mean +- std dev: 884 ms +- 40 ms
.........................................
fanout_to_subgraph_100x_checkpoint_sync: Mean +- std dev: 902 ms +- 18 ms
.........................................
react_agent_10x: Mean +- std dev: 30.3 ms +- 0.6 ms
.........................................
react_agent_10x_sync: Mean +- std dev: 22.2 ms +- 0.3 ms
.........................................
react_agent_10x_checkpoint: Mean +- std dev: 46.5 ms +- 0.8 ms
.........................................
react_agent_10x_checkpoint_sync: Mean +- std dev: 36.5 ms +- 0.5 ms
.........................................
react_agent_100x: Mean +- std dev: 340 ms +- 6 ms
.........................................
react_agent_100x_sync: Mean +- std dev: 272 ms +- 3 ms
.........................................
react_agent_100x_checkpoint: Mean +- std dev: 937 ms +- 15 ms
.........................................
react_agent_100x_checkpoint_sync: Mean +- std dev: 836 ms +- 15 ms
.........................................
wide_state_25x300: Mean +- std dev: 24.0 ms +- 0.4 ms
.........................................
wide_state_25x300_sync: Mean +- std dev: 15.1 ms +- 0.2 ms
.........................................
wide_state_25x300_checkpoint: Mean +- std dev: 276 ms +- 3 ms
.........................................
wide_state_25x300_checkpoint_sync: Mean +- std dev: 266 ms +- 6 ms
.........................................
wide_state_15x600: Mean +- std dev: 27.9 ms +- 0.4 ms
.........................................
wide_state_15x600_sync: Mean +- std dev: 17.5 ms +- 0.2 ms
.........................................
wide_state_15x600_checkpoint: Mean +- std dev: 477 ms +- 5 ms
.........................................
wide_state_15x600_checkpoint_sync: Mean +- std dev: 464 ms +- 7 ms
.........................................
wide_state_9x1200: Mean +- std dev: 27.7 ms +- 0.5 ms
.........................................
wide_state_9x1200_sync: Mean +- std dev: 17.4 ms +- 0.5 ms
.........................................
wide_state_9x1200_checkpoint: Mean +- std dev: 311 ms +- 5 ms
.........................................
wide_state_9x1200_checkpoint_sync: Mean +- std dev: 297 ms +- 4 ms
|
Comparison against main:
libs/checkpoint/langgraph/checkpoint/memory/__init__.py#L1
+------------------------------------+---------+-----------------------+
| Benchmark | main | changes |
+====================================+=========+=======================+
| react_agent_100x_checkpoint_sync | 853 ms | 836 ms: 1.02x faster |
+------------------------------------+---------+-----------------------+
| fanout_to_subgraph_100x | 543 ms | 537 ms: 1.01x faster |
+------------------------------------+---------+-----------------------+
| fanout_to_subgraph_100x_checkpoint | 894 ms | 884 ms: 1.01x faster |
+------------------------------------+---------+-----------------------+
| react_agent_100x_checkpoint | 947 ms | 937 ms: 1.01x faster |
+------------------------------------+---------+-----------------------+
| wide_state_25x300_checkpoint | 279 ms | 276 ms: 1.01x faster |
+------------------------------------+---------+-----------------------+
| wide_state_15x600_checkpoint | 480 ms | 477 ms: 1.01x faster |
+------------------------------------+---------+-----------------------+
| wide_state_9x1200_checkpoint_sync | 299 ms | 297 ms: 1.01x faster |
+------------------------------------+---------+-----------------------+
| wide_state_15x600_checkpoint_sync | 467 ms | 464 ms: 1.01x faster |
+------------------------------------+---------+-----------------------+
| fanout_to_subgraph_100x_sync | 482 ms | 481 ms: 1.00x faster |
+------------------------------------+---------+-----------------------+
| wide_state_15x600_sync | 17.4 ms | 17.5 ms: 1.00x slower |
+------------------------------------+---------+-----------------------+
| react_agent_100x_sync | 270 ms | 272 ms: 1.01x slower |
+------------------------------------+---------+-----------------------+
| react_agent_100x | 337 ms | 340 ms: 1.01x slower |
+------------------------------------+---------+-----------------------+
| wide_state_15x600 | 27.6 ms | 27.9 ms: 1.01x slower |
+------------------------------------+---------+-----------------------+
| wide_state_25x300 | 23.7 ms | 24.0 ms: 1.01x slower |
+------------------------------------+---------+-----------------------+
| react_agent_10x_checkpoint_sync | 36.0 ms | 36.5 ms: 1.01x slower |
+------------------------------------+---------+-----------------------+
| Geometric mean | (ref) | 1.00x faster |
+------------------------------------+---------+-----------------------+
Benchmark hidden because not significant (13): fanout_to_subgraph_10x_checkpoint, fanout_to_subgraph_10x, fanout_to_subgraph_100x_checkpoint_sync, wide_state_9x1200_checkpoint, fanout_to_subgraph_10x_sync, react_agent_10x, fanout_to_subgraph_10x_checkpoint_sync, react_agent_10x_sync, wide_state_25x300_checkpoint_sync, react_agent_10x_checkpoint, wide_state_25x300_sync, wide_state_9x1200_sync, wide_state_9x1200
|