Ok, I think I figured out the best way to handle the random access index population for the prevout confirmation cache. It's really a table head, providing pointers into the array. Table heads are random access, which resolves the fault recovery question. The issue then moves to the fact that our table headers are fixed length. However I don't see this as an actual constraint. The headers are fully flushed and copied on snapshot. So it just becomes an issue of generalizing the table templates to handle this type of table head.