cockroachdb / cockroachdb/pebble
metamorphic: support for "invisible" operations in the op log
- Dominant language
- Go
- Stars
- 6k
- Forks
- 584
- Avg merge
- 16h 35m
- Merged PRs (30d)
- 5
Description
Certain operations, while being exposed in the Pebble API, are "invisible" in the sense that they alter the internal state of the DB, but should not alter the logic state of the DB. For example, compactions.
It is currently implicit (as a function of the DB variant configuration) whether the following two operations result in an equivalent state:
```
write(A), write(B), write(C), read()
versus
write(A), write(B), compact(), write(C), read()
```
Consider allowing support for "invisible" operations. These could be in the op log that is generated up front, but would be a no-op against some test variants (based on some probability), so as to reproduce the case above.
Jira issue: PEBBLE-194
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing how the metamorphic test op log is generated and how DB variants execute operations. Determine where an invisible operation could be represented and selectively treated as a no-op, then verify that sequences with and without operations such as compact() can reproduce equivalent logic states.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100