Turns out BFS logging code is not that intelligent - it uses block_runs in the log area, but it doesn’t make use of them. In other words: it only accepts block_runs with length 1 - which effectively kills the whole idea of using them. It’s now as space consuming as the single block number arrays I had before, but doesn’t share the binary search capability we had earlier.
This is a companion discussion topic for the original entry at https://www.haiku-os.org/blog/axeld/2005-10-18_another_bfs_surprise/