-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
[ENH] Min compaction size #2346
Conversation
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
43e1841
to
a65c626
Compare
@@ -1,7 +1,7 @@ | |||
// Code generated by protoc-gen-go. DO NOT EDIT. | |||
// versions: | |||
// protoc-gen-go v1.34.2 | |||
// protoc v5.26.1 | |||
// protoc-gen-go v1.33.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to use the same version of protoc and proto-gen-go?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the version in our go.mod - https:/chroma-core/chroma/blob/main/go/go.mod#L24. Would you prefer I update the version? These files were previously incorrect according to this relationship.
## Description of changes *Summarize the changes made by this PR.* - Improvements & Bug fixes - I overhauled the property tests for the log service. There were bugs and also it was underspecc'ed - The main bug was the the len() being used was over collectionData not of the collectionData[C] in question. - I added invariants using rapids "" action, which is the way to add invariants. - The invariants check the log is as we expect and also the the collections we expect get returned - I actually use the enumerationoffset in the model now - The model will _actually_ purge the log it has. - The prop test will check the fields of its records for equality - New functionality - This PR introduces the "Min compaction size" argument on GetCollectionsToCompact, making it so that the compactors can skip logs with only a handful of entries. - This min compaction size is config for the compactor - I updated the rust in memory log to respect the min size. - The property test is extended to check that min_compaction_size works. Other notes: - The log service types all use int where they should be uint. I added a cleanup task to go convert the incorrect types. The new type I introduce is correct. ## Test plan *How are these changes tested?* - [x] Tests pass locally with `pytest` for python, `yarn test` for js, `cargo test` for rust ## Documentation Changes None
Description of changes
Summarize the changes made by this PR.
Other notes:
Test plan
How are these changes tested?
pytest
for python,yarn test
for js,cargo test
for rustDocumentation Changes
None