2025-08-21 18:44:40 +01:00
|
|
|
# Go `mvcc` SQLite VFS
|
|
|
|
|
|
|
|
|
|
This package implements the **EXPERIMENTAL** `"mvcc"` in-memory SQLite VFS.
|
|
|
|
|
|
|
|
|
|
It has some benefits over the [`"memdb"`](../memdb/README.md) VFS:
|
2025-09-10 16:47:54 +01:00
|
|
|
- panics do not corrupt a shared database,
|
2025-08-21 18:44:40 +01:00
|
|
|
- single-writer not blocked by readers,
|
|
|
|
|
- readers never block,
|
2025-10-01 11:00:13 +01:00
|
|
|
- instant snapshots.
|
|
|
|
|
|
|
|
|
|
[`mvcc.TestDB`](https://pkg.go.dev/github.com/ncruces/go-sqlite3/vfs/mvcc#TestDB)
|
|
|
|
|
is the preferred way to setup an in-memory database for testing
|
|
|
|
|
when you intend to leverage snapshots,
|
|
|
|
|
e.g. to setup many independent copies of a database,
|
|
|
|
|
such as one for each subtest.
|