Multiversion
Multiversion is a design principle in data management and software systems that maintains multiple historical versions of an item to support concurrent access, historical queries, and non-blocking reads. The term is most commonly associated with multiversion concurrency control (MVCC) in database systems.
In MVCC, each data item can have several versions, each associated with a version identifier such as
To manage storage, systems employ a garbage collection or version-pruning process to remove obsolete versions that
Advantages of multiversion approaches include non-blocking reads, finer-grained isolation, and support for time-travel or historical queries.
Challenges include increased storage overhead, the need for sophisticated garbage collection, potential complexity in conflict resolution,