문제

I have located many resources on the web giving general overviews of MVCC (multi-version concurrency control) concepts, but no detailed technical references on exactly how it should work or be implemented. Are there any documents online, or books offline, that contain enough theory (and a bit of practical help, ideally) on which to base an implementation? I wish to emulate more or less what PostgreSQL does.

(For info I will be implementing it in SAS using SAS/Share - which provides some locking primitives and concurrent read/write access to the underlying data store, but nothing in the way of transaction isolation or proper DBMS features. If anyone is familiar with SAS/Share and thinks this is an impossible task, please shout!)

도움이 되었습니까?

다른 팁

A table in PostgreSQL can store multiple versions of the same row.

More, there are two additional columns:

  • tmin - marking the transaction id that inserted the row
  • tmax - marking the transaction id that deleted the row

The update is done by deleting and inserting a new record, and the VACUUM process collects the old versions that are no longer in use.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top