limbo/simulator/runner/memory
Jussi Saurio 4a57710640
fix/core: decouple autocheckpoint result from transaction durability
After flushing the WAL, the db may attempt an automatic checkpoint. Previously,
a checkpoint failure for any other reason than `Busy` rolled back the transaction;
this is incorrect because the WAL has already been written and synced, so the transaction
is actually committed and durable.

For this reason, do the following decoupling:

- Mark the transaction as committed after `SyncWal`
- Any errors beyond that point are wrapped as `LimboError::CheckpointFailed` which is
  handled specially:
    * Tx rollback is not attempted in `abort()` - only the WAL locks are cleaned up
      and checkpoint state machines are reset
    * In the simulator, the results of the query are shadowed into the sim environment
      so that the sim correctly assumes that the transaction's effects were in fact
      committed.
2025-12-16 10:42:48 -05:00
..
file.rs Replaced manual validation in SimulatorCLI::validate with Clap features: 2025-10-02 19:18:38 +05:30
io.rs fix/core: decouple autocheckpoint result from transaction durability 2025-12-16 10:42:48 -05:00
mod.rs initial impl for MemorySim 2025-09-01 11:11:25 -03:00