I'm trying to understand how SNAPSHOT isolation pulls data into tempdb. I understand that there is transactional consistency due to row versioning in tempdb, but I'm more curious about how that data is copied into tempdb in the first place.
The documentation talks more about how data is read from the snapshot, but doesn't really touch on how the snapshot is taken. It seems to me that a snapshot would be done in a serialized fashion, since that would be the most accurate representation of the database at a particular time. But, I know better than to assume.
Does anyone know exactly how this works?