Home / Input Output / lsm-tree
Feb 15, 3-4 AM (0)
Feb 15, 4-5 AM (0)
Feb 15, 5-6 AM (0)
Feb 15, 6-7 AM (0)
Feb 15, 7-8 AM (0)
Feb 15, 8-9 AM (0)
Feb 15, 9-10 AM (0)
Feb 15, 10-11 AM (0)
Feb 15, 11-12 PM (0)
Feb 15, 12-1 PM (0)
Feb 15, 1-2 PM (0)
Feb 15, 2-3 PM (0)
Feb 15, 3-4 PM (0)
Feb 15, 4-5 PM (0)
Feb 15, 5-6 PM (0)
Feb 15, 6-7 PM (0)
Feb 15, 7-8 PM (0)
Feb 15, 8-9 PM (0)
Feb 15, 9-10 PM (0)
Feb 15, 10-11 PM (0)
Feb 15, 11-12 AM (0)
Feb 16, 12-1 AM (0)
Feb 16, 1-2 AM (0)
Feb 16, 2-3 AM (0)
Feb 16, 3-4 AM (0)
Feb 16, 4-5 AM (0)
Feb 16, 5-6 AM (0)
Feb 16, 6-7 AM (0)
Feb 16, 7-8 AM (0)
Feb 16, 8-9 AM (0)
Feb 16, 9-10 AM (0)
Feb 16, 10-11 AM (0)
Feb 16, 11-12 PM (0)
Feb 16, 12-1 PM (0)
Feb 16, 1-2 PM (0)
Feb 16, 2-3 PM (0)
Feb 16, 3-4 PM (0)
Feb 16, 4-5 PM (0)
Feb 16, 5-6 PM (0)
Feb 16, 6-7 PM (0)
Feb 16, 7-8 PM (0)
Feb 16, 8-9 PM (0)
Feb 16, 9-10 PM (0)
Feb 16, 10-11 PM (0)
Feb 16, 11-12 AM (0)
Feb 17, 12-1 AM (0)
Feb 17, 1-2 AM (0)
Feb 17, 2-3 AM (0)
Feb 17, 3-4 AM (0)
Feb 17, 4-5 AM (0)
Feb 17, 5-6 AM (0)
Feb 17, 6-7 AM (0)
Feb 17, 7-8 AM (0)
Feb 17, 8-9 AM (0)
Feb 17, 9-10 AM (0)
Feb 17, 10-11 AM (6)
Feb 17, 11-12 PM (5)
Feb 17, 12-1 PM (3)
Feb 17, 1-2 PM (8)
Feb 17, 2-3 PM (1)
Feb 17, 3-4 PM (4)
Feb 17, 4-5 PM (0)
Feb 17, 5-6 PM (0)
Feb 17, 6-7 PM (0)
Feb 17, 7-8 PM (0)
Feb 17, 8-9 PM (1)
Feb 17, 9-10 PM (1)
Feb 17, 10-11 PM (0)
Feb 17, 11-12 AM (0)
Feb 18, 12-1 AM (0)
Feb 18, 1-2 AM (0)
Feb 18, 2-3 AM (0)
Feb 18, 3-4 AM (0)
Feb 18, 4-5 AM (0)
Feb 18, 5-6 AM (0)
Feb 18, 6-7 AM (0)
Feb 18, 7-8 AM (0)
Feb 18, 8-9 AM (0)
Feb 18, 9-10 AM (0)
Feb 18, 10-11 AM (0)
Feb 18, 11-12 PM (0)
Feb 18, 12-1 PM (0)
Feb 18, 1-2 PM (0)
Feb 18, 2-3 PM (4)
Feb 18, 3-4 PM (5)
Feb 18, 4-5 PM (6)
Feb 18, 5-6 PM (2)
Feb 18, 6-7 PM (0)
Feb 18, 7-8 PM (0)
Feb 18, 8-9 PM (0)
Feb 18, 9-10 PM (0)
Feb 18, 10-11 PM (0)
Feb 18, 11-12 AM (0)
Feb 19, 12-1 AM (0)
Feb 19, 1-2 AM (0)
Feb 19, 2-3 AM (0)
Feb 19, 3-4 AM (0)
Feb 19, 4-5 AM (0)
Feb 19, 5-6 AM (0)
Feb 19, 6-7 AM (0)
Feb 19, 7-8 AM (0)
Feb 19, 8-9 AM (0)
Feb 19, 9-10 AM (0)
Feb 19, 10-11 AM (1)
Feb 19, 11-12 PM (1)
Feb 19, 12-1 PM (2)
Feb 19, 1-2 PM (2)
Feb 19, 2-3 PM (12)
Feb 19, 3-4 PM (1)
Feb 19, 4-5 PM (13)
Feb 19, 5-6 PM (0)
Feb 19, 6-7 PM (0)
Feb 19, 7-8 PM (0)
Feb 19, 8-9 PM (0)
Feb 19, 9-10 PM (0)
Feb 19, 10-11 PM (0)
Feb 19, 11-12 AM (0)
Feb 20, 12-1 AM (0)
Feb 20, 1-2 AM (0)
Feb 20, 2-3 AM (0)
Feb 20, 3-4 AM (0)
Feb 20, 4-5 AM (0)
Feb 20, 5-6 AM (0)
Feb 20, 6-7 AM (0)
Feb 20, 7-8 AM (6)
Feb 20, 8-9 AM (1)
Feb 20, 9-10 AM (2)
Feb 20, 10-11 AM (8)
Feb 20, 11-12 PM (8)
Feb 20, 12-1 PM (1)
Feb 20, 1-2 PM (1)
Feb 20, 2-3 PM (0)
Feb 20, 3-4 PM (0)
Feb 20, 4-5 PM (0)
Feb 20, 5-6 PM (0)
Feb 20, 6-7 PM (1)
Feb 20, 7-8 PM (0)
Feb 20, 8-9 PM (0)
Feb 20, 9-10 PM (0)
Feb 20, 10-11 PM (0)
Feb 20, 11-12 AM (0)
Feb 21, 12-1 AM (0)
Feb 21, 1-2 AM (0)
Feb 21, 2-3 AM (0)
Feb 21, 3-4 AM (0)
Feb 21, 4-5 AM (0)
Feb 21, 5-6 AM (0)
Feb 21, 6-7 AM (0)
Feb 21, 7-8 AM (0)
Feb 21, 8-9 AM (0)
Feb 21, 9-10 AM (1)
Feb 21, 10-11 AM (4)
Feb 21, 11-12 PM (0)
Feb 21, 12-1 PM (1)
Feb 21, 1-2 PM (1)
Feb 21, 2-3 PM (3)
Feb 21, 3-4 PM (1)
Feb 21, 4-5 PM (4)
Feb 21, 5-6 PM (1)
Feb 21, 6-7 PM (0)
Feb 21, 7-8 PM (0)
Feb 21, 8-9 PM (0)
Feb 21, 9-10 PM (0)
Feb 21, 10-11 PM (0)
Feb 21, 11-12 AM (0)
Feb 22, 12-1 AM (0)
Feb 22, 1-2 AM (0)
Feb 22, 2-3 AM (0)
Feb 22, 3-4 AM (0)
122 commits this week Feb 15, 2025 - Feb 22, 2025
QLS: make property cleanup checks configurable.
If injected errors left the database in an inconsistent state, then property
cleanup might throw exceptions. In the "swallow error" tests that will be added
in the next commits, this inconsistent state is allowed, leading to exceptions,
but we do not want these exceptions to cause the property to fail. The
'CheckCleanup' flag makes it configurable to ignore these exceptions.
QLS: make file system and reference checks configurable
When we start testing that errors are not swallowed by `lsm-tree`, we'll be
injecting errors into bits of code that are not exception safe (yet). As a
result, the file system and reference checks would lead to property failures.
However, we just want to test that errors are not swallowed, so we make these
checks configurable. File system checks and reference checks can
enabled/disabled independently.
QLS: give all actions errors
Instead of adding `Maybe Errors` to each constructor, which would probably lead
to quite a bit of duplicated code, I opted to add a single top-level constructor
that contains a `Maybe Errors` and an `Action'`. This `Action'` is a new data
type that contains the interesting constructors, like `New` and `Updates`.

As a result of this change, there quite a few mechanical changes, but not much
of it is interesting. However, having made this change, we are now ready to
enable fault injection for all the actions whenever we want to.