Earlier quoted context omitted.
If you don't need your snapshot read-only queries to be linearizable, then you don't need MVCC for this: just take a consistent checkpoint every second or minute or hour. A simple way to implement low-frequency snapshots is what Redis made famous: fork the server process so all future updates in the parent are to CoW pages and read the snapshot from the child. (HyPer did this originally but I'm not sure they still do…
But those Redis snapshots are only used for regular back-ups, so completely unlike snapshot isolation in a relational database, right?
https://cs.brown.edu/courses/cs227/archives/2012/papers/olap...