[ENH] Add reqeust metadata to query and get vectors
Description of changes
Summarize the changes made by this PR.
- Improvements & Bug fixes
- This PR changes the proto definition to include collection_version and log_position as request metadata.
- New functionality
- ...
Test plan
How are these changes tested?
- [ ] Tests pass locally with
pytestfor python,yarn testfor js,cargo testfor rust
Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?
This stack of pull requests is managed by Graphite. Learn more about stacking.
Join @Ishiihara and the rest of your teammates on
Graphite
Reviewer Checklist
Please leverage this checklist to ensure your code review is thorough before approving
Testing, Bugs, Errors, Logs, Documentation
- [ ] Can you think of any use case in which the code does not behave as intended? Have they been tested?
- [ ] Can you think of any inputs or external events that could break the code? Is user input validated and safe? Have they been tested?
- [ ] If appropriate, are there adequate property based tests?
- [ ] If appropriate, are there adequate unit tests?
- [ ] Should any logging, debugging, tracing information be added or removed?
- [ ] Are error messages user-friendly?
- [ ] Have all documentation changes needed been made?
- [ ] Have all non-obvious changes been commented?
System Compatibility
- [ ] Are there any potential impacts on other parts of the system or backward compatibility?
- [ ] Does this change intersect with any items on our roadmap, and if so, is there a plan for fitting them together?
Quality
- [ ] Is this code of a unexpectedly high quality (Readability, Modularity, Intuitiveness)
Closing this in favor of the stack
https://github.com/chroma-core/chroma/pull/2843 https://github.com/chroma-core/chroma/pull/2842 https://github.com/chroma-core/chroma/pull/2839 https://github.com/chroma-core/chroma/pull/2831 https://github.com/chroma-core/chroma/pull/2827 https://github.com/chroma-core/chroma/pull/2826
This implementation was improved in several ways:
- Added testing
- Added custom error type for maintainability
- Put the version context everywhere it was needed (ALL segment queries need this)
- Implemented deferred critical work (log offset passed in is used to pull)
- Don't make non-optional arguments optional.