-
Notifications
You must be signed in to change notification settings - Fork 477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
github.com/cockroachdb/pebble/internal/metamorphic: TestMeta failed #4267
Comments
|
Well that's helpful. |
Terminate and fail the metamorphic test if a nondeterministic single delete is observed. The generator is responsible for generating sequences of operations that ensure determinism across all operations, including single deletes. Informs cockroachdb#4267.
The single delete op 288 is invalid because we 'Merge'd the key once in op 261 and once on the first external object ingestion in op 270. Not sure yet where the key manager went wrong. |
Oof, this is a result of the way we discretize range deletions:
Adding a range deletion to a batch can cause it to add a tracked key to represent the discretized delete. If later a real point key that sorts after the discretized key is added with the same prefix and then the batch is converted to an external object, we'll incorrectly record the discretized key as the key defined in the object. At runtime when actually building the external object, we'll create the object with the real point key instead. Maybe time to address this TODO: pebble/metamorphic/key_manager.go Lines 604 to 612 in 02e24de
|
When constructing an external object, only the first point key with each unique prefix is added to the sstable. The key manager strives to maintain consistency with this behavior to ensure that the it maintains correct key histories after an ingestion of an external object. The key manager however also will discretize range deletions, sometimes creating keyMetas for keys that do not exist as point keys on the associated writer. The presence of these was confusing the key manager's calculation of which keys would end up in the external object. This commit updates the external object calculation to account for the existence of the range deletions. Future work may refactor the tracking of range deletions to track range deletions separately from point keys and as continuous spans. Fix cockroachdb#4267.
When constructing an external object, only the first point key with each unique prefix is added to the sstable. The key manager strives to maintain consistency with this behavior to ensure that the it maintains correct key histories after an ingestion of an external object. The key manager however also will discretize range deletions, sometimes creating keyMetas for keys that do not exist as point keys on the associated writer. The presence of these was confusing the key manager's calculation of which keys would end up in the external object. This commit updates the external object calculation to account for the existence of the range deletions. Future work may refactor the tracking of range deletions to track range deletions separately from point keys and as continuous spans. Fix cockroachdb#4267.
When constructing an external object, only the first point key with each unique prefix is added to the sstable. The key manager strives to maintain consistency with this behavior to ensure that the it maintains correct key histories after an ingestion of an external object. The key manager however also will discretize range deletions, sometimes creating keyMetas for keys that do not exist as point keys on the associated writer. The presence of these was confusing the key manager's calculation of which keys would end up in the external object. This commit updates the external object calculation to account for the existence of the range deletions. Future work may refactor the tracking of range deletions to track range deletions separately from point keys and as continuous spans. Fix cockroachdb#4267.
github.com/cockroachdb/pebble/internal/metamorphic.TestMeta failed with artifacts on refs/heads/master @ 7c863c9c3bd8:
Help
To reproduce, try:
This test on roachdash | Improve this report!
Jira issue: PEBBLE-323
The text was updated successfully, but these errors were encountered: