input-output-hk / input-output-hk/dbsync

Restarts causes `FollowingVolatileTail` to sync a ~1blk/s

Open
#16 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
5
Forks
0
Avg merge
26m
Merged PRs (30d)
1

Description

Investigate why after restarting dbsync `FollowingVolatileTail` inserts speeds are very slow.
This is not the case when syncing from genesis where it will sync 2100 (rollback boundary) blocks in a mater of seconds.

```
[2026-08-13 13:15:40.291 UTC] [Info] ChainSync: Intersected at Point (At (Block {blockPointSlot = SlotNo 195004781, blockPointHash = 786868fc343bc5d196e8cb03ead374365e368ce90d536d015772eb1d6788a7cb})) (server tip Tip (SlotNo 195060606) 50560c140505d3770d8a6dc96b1c57d1aa62065e17a3831a52fb8fbc6653f4d4 (BlockNo 13803600))
[2026-08-13 13:15:40.294 UTC] [Info] ChainSync: First post-intersect block at slot SlotNo 195004880, block BlockNo 13800908
[2026-08-13 13:15:40.294 UTC] [Info] ChainSync: First post-intersect block at slot SlotNo 195004904, block BlockNo 13800909
[2026-08-13 13:15:40.294 UTC] [Info] ChainSync: First post-intersect block at slot SlotNo 195004963, block BlockNo 13800910
[2026-08-13 13:15:45.250 UTC] [Info] LedgerReplay: replay complete; applied 2,267 blocks in 0.97s, resuming Follow PG writes at slot 195051800
[2026-08-13 13:17:06.065 UTC] [Info] FollowingVolatileTail: slot 195054235, epoch 649 | 100 blk in 1m 25s (1.18 blk/s) | queue=300
[2026-08-13 13:18:28.027 UTC] [Info] FollowingVolatileTail: slot 195056380, epoch 649 | 100 blk in 1m 22s (1.22 blk/s) | queue=231
[2026-08-13 13:19:53.084 UTC] [Info] FollowingVolatileTail: slot 195058322, epoch 649 | 100 blk in 1m 25s (1.18 blk/s) | queue=138
[2026-08-13 13:20:40.370 UTC] [Info] OffChainPoolWorker: processing 7 ref(s)
[2026-08-13 13:20:40.384 UTC] [Info] OffChainVoteWorker: processing 100 ref(s)
[2026-08-13 13:21:15.869 UTC] [Info] FollowingVolatileTail: slot 195060131, epoch 649 | 100 blk in 1m 23s (1.21 blk/s) | queue=40
[2026-08-13 13:21:47.721 UTC] [Info] Phase: FollowingVolatileTail -> FollowingChainTip
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the restart path through FollowingVolatileTail and the LedgerReplay transition, using the supplied logs to compare it with syncing from genesis. Check where Follow PG writes and the queue are handled, then reproduce the restart case and verify that FollowingVolatileTail no longer processes only about 1 block per second before reaching FollowingChainTip.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell, postgresql
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.