* submit an issue for unindexed field
solve unindexed field issue when an index is created for the field
also log a warning when issue is submitted
fmt
fix rebase problems
get collection name without panicking
better solving of issue
remove outdated TODO
add tests, fix GET /issues
review fixes
use `/` instead of `.` as separator
fmt
prepare extractor for time-based submission
smol rename
add check in search
hook unindexed field creation in search and search_batch of rest
update after rebase on `dev`
remove submit from `struct_payload_index`
solve issues inside of handlers, not in match router
post-process at Collection level
don't clone filters
remove from openapi spec
- Add hidden env variable to adjust slow search threshold
- Remove Solution::None
- Fix UnindexedField issue extractor
- Add endpoint to openapi, but without response body spec
- Move integration test to consensus_tests to set lower threshold
* event-based integration
* use typed Code
* remove payload_index_schema hack, get through collection info
* rename `notify` to `publish`
* update after rebase
* remove breakpoint
* update after rebase
* attach current payload schema to SlowQueryEvent
* collect filters refs lazily
* review fixes
* review fixes
* use regular config for setting the threshold, use 1.2 secs as default
* fix checking against current schema for all conditions
* REST API multivector for write and retrieve
* add test showing search is not supported
* use helper
* debug asserts
* better naming
* iterator style
* better naming
* add validation test for checking all inner vectors have the same size
* listen for issues events in main app
* don't setup subscribers if `issues` feature is disabled
* Revert "don't setup subscribers if `issues` feature is disabled"
This reverts commit 6754537dd51faa8ebc6f96d03f83b98f2c01c497.
* update issues crate from unindexed-field-issue-integration branch
* add EventBroker, update Dashboard::solve_by_filter
* Update outdated comment
* better example use
* use composite `Code` type to remove inverted index
* rename `EventBroker::notify` to `EventBroker::publish`
* remove `publish_async`
* review fixes
* rename `Code::from_issue` to `Code::of`
* Add shard transfer consensus method to restart shard transfer
* Arrange shard transfer fallback through consensus
* Properly handle stopping existing transfer, don't finish
* Use user specified shard transfer method as default when falling back
* Report correct fallback transfer method being used
* Always make WAL delta transfer fall back to stream records
* Remove unnecessary clones
* When doing shard transfer fallback, confirm consensus accepted it
* Confirm shard transfer restarts through consensus, rather than state
* Update WAL delta fallback test, assert we switch to stream_records
* Assert data alignment in `transmute_from_u8*` functions
* WIP: Switch `transmute_from_u8*` alignment asserts from `debug_assert` to `assert`...
...to make sure *all* tests running on CI will enforce the alignment
* Add descriptive message to alignment assertions
* Fix alignment in graph links file (#3807)
* fix alignment in graph links file
* fix alignment while reading
* Revert "fix alignment while reading"
This reverts commit e2d1cee890.
* Revert "Revert "fix alignment while reading""
This reverts commit 7a4fdc9aea.
* small refactor
* Switch `transmute_from_u8*` alignment asserts back to `debug_assert`
Additionally:
- Remove extra `0x` from slice address in assert messages
* Trim offsets padding bytes from the end of `links_mmap` slice
---------
Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com>
* Add peer metadata state to consensus, update on sync local state
* Minor formatting improvements
* Use Qdrant version from constant
* Initialize empty metadata if not present on disk
* Refactor old parameter name
* Logging improvements based on review feedback
* Assert that Qdrant version matches crate version
* Do not use a custom (de)serializer for peer metadata
* Use semver directly for handling Qdrant versions
* Rename is_outdated to is_different_version
* Assert Qdrant version in build.rs
* Disable updating peer metadata until Qdrant 1.9
We do this, because if a node is running 1.8, there may still be nodes
running 1.7. Those nodes do not support this operation.
* clippy
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* Get rid of Arc in SegmentOptimizer::get_telemetry_counter()
* Get rid of SegmentOptimizer::get_telemetry_data
* Prometheus histogram support
* Fixes, and sparse buckets
* Preallocate in convert_histogram, merge_histograms
* debug_assert to check boundaries are sorted
* Generate histograms when details_level >= 3 or in /metrics
* Pool larger memory batches for sparse vector search
* rework naming
* refine naming
* address great comments
* bump ADVANCE_BATCH_SIZE to use power of 2
* 16k performs bad - trying 8k
* 10k offers the best tradeoff
* add `truncate(true)` where unspecified
* remove unused `WriteGuard` wrapper
* Don't truncate if we explicitly set the size later
---------
Co-authored-by: timvisee <tim@visee.me>