checkpoint postgres: add a shallow checkpointer #1305
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/checkpoint-postgres/langgraph/checkpoint/postgres/__init__.py#L1
.........................................
fanout_to_subgraph_10x: Mean +- std dev: 61.4 ms +- 2.1 ms
.........................................
fanout_to_subgraph_10x_sync: Mean +- std dev: 52.3 ms +- 1.1 ms
.........................................
fanout_to_subgraph_10x_checkpoint: Mean +- std dev: 73.8 ms +- 2.1 ms
.........................................
fanout_to_subgraph_10x_checkpoint_sync: Mean +- std dev: 93.8 ms +- 1.0 ms
.........................................
fanout_to_subgraph_100x: Mean +- std dev: 627 ms +- 34 ms
.........................................
fanout_to_subgraph_100x_sync: Mean +- std dev: 516 ms +- 12 ms
.........................................
fanout_to_subgraph_100x_checkpoint: Mean +- std dev: 804 ms +- 29 ms
.........................................
fanout_to_subgraph_100x_checkpoint_sync: Mean +- std dev: 944 ms +- 20 ms
.........................................
react_agent_10x: Mean +- std dev: 30.8 ms +- 0.9 ms
.........................................
react_agent_10x_sync: Mean +- std dev: 22.9 ms +- 0.4 ms
.........................................
react_agent_10x_checkpoint: Mean +- std dev: 38.4 ms +- 1.0 ms
.........................................
react_agent_10x_checkpoint_sync: Mean +- std dev: 37.4 ms +- 0.5 ms
.........................................
react_agent_100x: Mean +- std dev: 343 ms +- 8 ms
.........................................
react_agent_100x_sync: Mean +- std dev: 275 ms +- 4 ms
.........................................
react_agent_100x_checkpoint: Mean +- std dev: 848 ms +- 14 ms
.........................................
react_agent_100x_checkpoint_sync: Mean +- std dev: 842 ms +- 10 ms
.........................................
wide_state_25x300: Mean +- std dev: 23.1 ms +- 0.5 ms
.........................................
wide_state_25x300_sync: Mean +- std dev: 15.1 ms +- 0.2 ms
.........................................
wide_state_25x300_checkpoint: Mean +- std dev: 278 ms +- 16 ms
.........................................
wide_state_25x300_checkpoint_sync: Mean +- std dev: 276 ms +- 16 ms
.........................................
wide_state_15x600: Mean +- std dev: 26.5 ms +- 0.5 ms
.........................................
wide_state_15x600_sync: Mean +- std dev: 17.1 ms +- 0.2 ms
.........................................
wide_state_15x600_checkpoint: Mean +- std dev: 472 ms +- 15 ms
.........................................
wide_state_15x600_checkpoint_sync: Mean +- std dev: 470 ms +- 17 ms
.........................................
wide_state_9x1200: Mean +- std dev: 26.6 ms +- 0.6 ms
.........................................
wide_state_9x1200_sync: Mean +- std dev: 17.2 ms +- 0.4 ms
.........................................
wide_state_9x1200_checkpoint: Mean +- std dev: 310 ms +- 15 ms
.........................................
wide_state_9x1200_checkpoint_sync: Mean +- std dev: 306 ms +- 14 ms
|
Comparison against main:
libs/checkpoint-postgres/langgraph/checkpoint/postgres/__init__.py#L1
+----------------------------------------+---------+-----------------------+
| Benchmark | main | changes |
+========================================+=========+=======================+
| fanout_to_subgraph_10x_checkpoint_sync | 94.8 ms | 93.8 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_10x_checkpoint | 74.4 ms | 73.8 ms: 1.01x faster |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_100x_sync | 512 ms | 516 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_100x_sync | 273 ms | 275 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| wide_state_9x1200_sync | 17.1 ms | 17.2 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_10x_sync | 51.8 ms | 52.3 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_10x | 30.5 ms | 30.8 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_100x | 338 ms | 343 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| wide_state_25x300 | 22.8 ms | 23.1 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_10x | 60.6 ms | 61.4 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_100x_checkpoint | 835 ms | 848 ms: 1.01x slower |
+----------------------------------------+---------+-----------------------+
| wide_state_25x300_checkpoint | 274 ms | 278 ms: 1.02x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_10x_sync | 22.5 ms | 22.9 ms: 1.02x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_100x_checkpoint_sync | 828 ms | 842 ms: 1.02x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_10x_checkpoint_sync | 36.7 ms | 37.4 ms: 1.02x slower |
+----------------------------------------+---------+-----------------------+
| react_agent_10x_checkpoint | 37.5 ms | 38.4 ms: 1.03x slower |
+----------------------------------------+---------+-----------------------+
| wide_state_25x300_sync | 14.7 ms | 15.1 ms: 1.03x slower |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_100x | 608 ms | 627 ms: 1.03x slower |
+----------------------------------------+---------+-----------------------+
| fanout_to_subgraph_100x_checkpoint | 758 ms | 804 ms: 1.06x slower |
+----------------------------------------+---------+-----------------------+
| Geometric mean | (ref) | 1.01x slower |
+----------------------------------------+---------+-----------------------+
Benchmark hidden because not significant (9): wide_state_15x600_checkpoint_sync, wide_state_15x600_checkpoint, wide_state_15x600, wide_state_15x600_sync, fanout_to_subgraph_100x_checkpoint_sync, wide_state_9x1200, wide_state_9x1200_checkpoint_sync, wide_state_9x1200_checkpoint, wide_state_25x300_checkpoint_sync
|