Skip to content

Conversation

zaidoon1
Copy link

@zaidoon1 zaidoon1 commented Sep 1, 2025

resolve #97

@zaidoon1
Copy link
Author

@marvin-j97 just want to make sure, did you want me to address the linter failures? they seem to be related to existing code

@marvin-j97
Copy link
Contributor

marvin-j97 commented Sep 11, 2025

@marvin-j97 just want to make sure, did you want me to address the linter failures? they seem to be related to existing code

Linting seems to work now on the 3.0.0 branch, if you resolve the merge conflicts and pull, it should be fine.

@zaidoon1
Copy link
Author

hmm: help: use'_for type paths | 298 | pub(crate) fn get_binary_index_reader(&self) -> BinaryIndexReader<'_> { | ++++

hmm clippy is still not happy but i haven't changed this stuff? am i basing this off the right branch?

@marvin-j97
Copy link
Contributor

hmm: help: use'_for type paths | 298 | pub(crate) fn get_binary_index_reader(&self) -> BinaryIndexReader<'_> { | ++++

hmm clippy is still not happy but i haven't changed this stuff? am i basing this off the right branch?

That's just a warning though, right? I haven't really gotten to running clippy lints over the entire code base, so there are a lot of warnings as of now.

@zaidoon1
Copy link
Author

going to take a closer look, also noticed some api's have changed so my tests are failing now, i'll fix that and test locally before pushing

@zaidoon1 zaidoon1 force-pushed the prefix-bloom-3.0.0 branch 2 times, most recently from 5c502c3 to 7f70eeb Compare September 11, 2025 18:36
@zaidoon1
Copy link
Author

ok it was my fault, it was hidden with the other clippy warnings

@zaidoon1 zaidoon1 requested a review from marvin-j97 September 12, 2025 23:07
@zaidoon1 zaidoon1 force-pushed the prefix-bloom-3.0.0 branch 3 times, most recently from 9a4719b to 5e53adb Compare September 13, 2025 08:06
@zaidoon1 zaidoon1 force-pushed the prefix-bloom-3.0.0 branch 2 times, most recently from 18921a8 to 768055f Compare September 13, 2025 18:38
@zaidoon1
Copy link
Author

did i break the build and test lsm example build or some other isssue?

@marvin-j97
Copy link
Contributor

marvin-j97 commented Sep 14, 2025

did i break the build and test lsm example build or some other isssue?

The CI examples script does not support raw .rs files in the examples/ folder, so it crashes.

@zaidoon1
Copy link
Author

did i break the build and test lsm example build or some other isssue?

The CI examples script does not support raw .rs files in the examples/ folder, so it crashes.

should be fixed now, thanks!

Comment on lines +67 to +68
/// Returns a unique name for this prefix extractor.
fn name(&self) -> &str;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking how to make use of this.
I guess this should be stored in each keyspace's config (in fjall) to check that the given prefix extractor matches the one that was initially configured.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, I may need to do more work but in rocksdb, if you want to change your prefix extractor then you need to use a different name which would cause rocksdb to ignore the old bloom that was used for the existing files

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then maybe the prefix extractor name also needs to be stored in every table's properties.

Copy link
Author

@zaidoon1 zaidoon1 Sep 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've pushed a commit to do this and match rocksdb's behaviour:

"If prefix extractor changes when DB restarts, some SST files may contain prefix bloom filters generated using different prefix extractor than the one in current options. When opening those files, RocksDB will compare prefix extractor name stored in the properties of the SST files. If the name is different from the prefix extractor provided in the options, the prefix bloom filter is not used for this file"

one thing is how does fjall handle options that can be dynamically changeable vs can't be changed without a db restart? I don't think we would want a user to be able to change a prefix extractor on the fly

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently the configuration cannot be changed during runtime. However I don't think it would be a problem, because tables that use the old prefix extractor would continue using that, and otherwise the filter is skipped. But that's probably an edge case and just shouldn't be allowed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok cool, so then what I have here should be good.

@marvin-j97 marvin-j97 mentioned this pull request Oct 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants