Jussi Saurio
d493a72cc0
dont unwrap begin_tx
2025-09-15 14:48:26 +03:00
Pekka Enberg
a5eac9b700
Merge 'avoid unnecessary cloning when formatting Txn for Display' from Avinash Sajjanshetty
...
Closes #3109
2025-09-15 14:24:32 +03:00
Jussi Saurio
8f43741513
fix mvcc rollback
...
executing ROLLBACK did not rollback the mv-store transaction
2025-09-15 09:29:08 +03:00
Jussi Saurio
f4c15a37d3
add manual hack to mvcc test
...
we rollback the mvcc transaction in the VDBE, so manually roll it
back in the test
2025-09-14 23:46:38 +03:00
Jussi Saurio
db3428a7a9
remove unused pager parameter
2025-09-14 23:44:24 +03:00
Avinash Sajjanshetty
62770033c3
Add a simple test for txn::Display
2025-09-14 23:14:46 +05:30
Pere Diaz Bou
e87226548c
core/mvcc: fix concurrent tests mvcc
2025-09-12 13:49:40 +00:00
Pekka Enberg
45288b1297
core/mvcc: Eliminate RwLock wrapping Transaction
...
The write and read sets in Transaction use SkipSet, which is thread-safe.
Therefore, drop the RwLock wrapping Transaction everywhere, increasing
MVCC throughput by almost 30%.
Before:
```
Running write throughput benchmark with 1 threads, 1000 batch size, 1000 iterations, mode: Mvcc
Database created at: write_throughput_test.db
Thread 0: 1000000 inserts in 6.50s (153927.21 inserts/sec)
=== BENCHMARK RESULTS ===
Total inserts: 1000000
Total time: 6.50s
Overall throughput: 153758.85 inserts/sec
Threads: 1
Batch size: 1000
Iterations per thread: 1000
```
After:
```
Running write throughput benchmark with 1 threads, 1000 batch size, 1000 iterations, mode: Mvcc
Database created at: write_throughput_test.db
Thread 0: 1000000 inserts in 5.10s (195927.13 inserts/sec)
=== BENCHMARK RESULTS ===
Total inserts: 1000000
Total time: 5.11s
Overall throughput: 195663.94 inserts/sec
Threads: 1
Batch size: 1000
Iterations per thread: 1000
```
2025-09-11 20:31:19 +03:00
Pekka Enberg
2131a04b7d
core: Rename IO::run_once() to IO::step()
...
The `run_once()` name is just a historical accident. Furthermore, it now
started to appear elsewhere as well, so let's just call it IO::step() as we
should have from the beginning.
2025-09-10 14:36:02 +03:00
Pere Diaz Bou
b8f83e1fc0
clippy and fmt stuff because if not pekka will tweet
2025-09-03 12:47:55 +02:00
Pere Diaz Bou
f26e36b6de
core/mvcc: test write concurrency
...
fix
2025-09-02 17:07:38 +02:00
Pekka Enberg
1dc6fb97c0
Merge 'core/mvcc: store txid in conn and reset transaction state on commit ' from Pere Diaz Bou
...
We were storing `txid` in `ProgramState`, this meant it was impossible
to track interactive transactions. This was extracted to `Connection`
instead.
Moreover, transaction state for mvcc now is reset on commit.
Closes #2689
2025-08-20 16:51:41 +03:00
Pere Diaz Bou
636a3e76e6
clippy mvcc tests
2025-08-20 12:34:11 +02:00
Pere Diaz Bou
ffaf8580e0
mvcc/core: simple interactive transaction tests for mvcc
2025-08-20 12:22:31 +02:00
Pere Diaz Bou
c8f59a352b
core/mvcc: test delete
2025-08-19 19:48:51 +02:00
Pere Diaz Bou
94cd504d4c
core/mvcc: support schema_did change on commit_txn
...
This not only changes schema_did_change on commit_txn for mvcc, but also
extracts the connection transaction state from non mvcc transactions to
mvcc too.
2025-08-18 15:52:10 +02:00
pedrocarlo
fbe7e685ce
adjust mvcc code to return completions in state machines
2025-08-13 10:24:55 +03:00
pedrocarlo
217c9061e8
advance commit_tx state machine in mvcc tests
2025-08-12 12:28:35 -03:00
Pere Diaz Bou
56240ddac9
core/mvcc: add restart tests
2025-08-04 12:31:17 +02:00
Pere Diaz Bou
83a658d3d6
core/mvcc: add option to test with a random file and restart it
2025-08-04 12:31:17 +02:00
Pere Diaz Bou
764523a8bb
core/mvcc: fix tests with state machines
2025-08-01 15:48:09 +02:00
Pere Diaz Bou
c807b035c5
core/mvcc: fix tests again
...
had to create connections for every different txn
2025-08-01 10:44:19 +02:00
Pere Diaz Bou
c4318cac36
core/mvcc: fix tests
2025-08-01 10:38:41 +02:00
Pekka Enberg
b7cb4a3ed4
core/mvcc: Switch to parking_lot RwLock
2025-07-30 20:25:45 +03:00
Pere Diaz Bou
caa5fe3ef4
core/mvcc: simplify mvcc cursor types
...
We have so many cursor types that it will be unbearable to properly make
all of them work. Let's simplify this and only focus on lazy cursor
which in the future will load from database in case we need it.
2025-07-29 20:13:52 +02:00
Pekka Enberg
ddc0144dcf
core/mvcc: Adjust cursor tests
2025-07-17 21:43:07 +03:00
Nils Koch
828d4f5016
fix clippy errors for rust 1.88.0 (auto fix)
2025-07-12 18:58:41 +03:00
Nils Koch
2827b86917
chore: fix clippy warnings
2025-06-23 19:52:13 +01:00
Ihor Andrianov
8bfacf3955
add lazy and bucket cursor
2025-03-25 16:55:29 +02:00
Pekka Enberg
81b79bc833
core/mvcc: Eliminate row generic types
...
The logging code that writes out transactions to disk needs to write out
the byte array that we actually use. The code is less hairly without the
generics so drop them.
2025-03-05 19:17:16 +02:00
Jussi Saurio
c23d97f33c
refactor: is_version_visible() -> RowVersion::is_visible_to()
2025-02-08 14:33:06 +02:00
Jussi Saurio
fab105c10c
MVCC: fix write conflict handling
2025-02-08 10:10:09 +02:00
Pekka Enberg
7809df913a
core/mvcc: Rename Database to MvStore
2025-02-07 07:40:33 +02:00
Pekka Enberg
fad479ac59
core/mvcc: Move source code to module
2025-02-05 13:25:16 +02:00