Commit Graph

90 Commits

Author SHA1 Message Date
Tim Visée
81cd8f312b Bump dev version to 1.9.5-dev (#4345) 2024-05-28 16:29:37 +02:00
xhjkl
f8c586e962 Huge limit now does not crash (#4328)
* commentary

* FixedLengthPriorityQueue: clamp preallocated capacity
2024-05-27 09:34:48 +02:00
Arnaud Gourlay
cbcdefb310 Cleanup unused dependencies (#4306) 2024-05-23 10:06:44 +02:00
xzfc
93a42b4e2d Compressed posting lists (#4253) 2024-05-22 18:18:20 +00:00
dependabot[bot]
9b6da072fc --- (#4276)
updated-dependencies:
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:36:08 +02:00
dependabot[bot]
378f6af22b --- (#4275)
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 09:52:28 +02:00
xzfc
ccf7f1d24f InvertedIndexImmutableRam and index migrations (#4220)
* Move StorageVersion from segment crate to common/io

* Refine StorageVersion API

* Move methods from SparseVectorDataConfig to enum SparseIndexType

* Introduce InvertedIndexImmutableRam

* Add migrate

* Don't migrate
2024-05-16 06:47:47 +00:00
Luis Cossío
ceb25106aa make broker test independent of a global dashboard (#4240) 2024-05-15 13:22:58 +02:00
dependabot[bot]
fc8b9e6a16 Bump thiserror from 1.0.59 to 1.0.60 (#4229)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.59 to 1.0.60.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.59...1.0.60)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-13 21:44:57 +02:00
Tim Visée
ac2dd4da1b Bump dev version to 1.9.3-dev (#4208) 2024-05-10 11:28:12 +02:00
xzfc
4f3239f27c Misc fixes (#4212)
* SparseVectorIndex: replace pub with feature-gated getters

* Fixup dev-dependencies

* Fixup rust doc comments
2024-05-10 08:16:28 +00:00
Luis Cossío
a4308f5308 Issues API: Unindexed fields (#4139)
* 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
2024-05-09 09:39:01 -04:00
Arnaud Gourlay
b602cb7daa gRPC API multivector for write and retrieve (#4179)
* gRPC API multivector for write and retrieve

* improve naming

* validate multiv + sparse

* code review

* regen gRPC docs

* remove incorrect validation
2024-05-08 19:28:47 +02:00
xzfc
6f738ca95f Update sparse vector benchmarks (#4163) 2024-05-07 20:34:37 +00:00
xzfc
cb31c533bf Introduce Cargo feature "testing" (#4192) 2024-05-07 16:14:46 +00:00
Arnaud Gourlay
4f797c1bb4 REST API multivector for write and retrieve (#4117)
* 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
2024-05-03 10:55:17 +02:00
Tim Visée
e938958d24 Bump dev version to 1.9.2-dev (#4164) 2024-05-03 10:51:48 +02:00
Luis Cossío
c4294f1c4e Issues API: Listen for issues events in main app (#4123)
* 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.
2024-05-02 11:22:48 -04:00
Arnaud Gourlay
8ec87fde77 Remove outdated rustdoc for Issue module (#4141) 2024-04-30 09:24:56 +02:00
Arnaud Gourlay
ed25c388b1 Proactively fix lints for Clippy 1.78 (#4140) 2024-04-30 09:22:29 +02:00
dependabot[bot]
d0cf4e433d Bump serial_test from 3.1.0 to 3.1.1 (#4134)
Bumps [serial_test](https://github.com/palfrey/serial_test) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/palfrey/serial_test/releases)
- [Commits](https://github.com/palfrey/serial_test/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: serial_test
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 22:11:55 +02:00
dependabot[bot]
5cb835f679 Bump thread-priority from 1.0.0 to 1.1.0 (#4133)
Bumps [thread-priority](https://github.com/iddm/thread-priority) from 1.0.0 to 1.1.0.
- [Commits](https://github.com/iddm/thread-priority/commits)

---
updated-dependencies:
- dependency-name: thread-priority
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 22:11:25 +02:00
Luis Cossío
1970562dea Issues API: Event-driven issue framework (#4086)
* 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`
2024-04-29 15:06:06 -04:00
dependabot[bot]
1b78c482de Bump thread-priority from 0.16.0 to 1.0.0 (#4091)
Bumps [thread-priority](https://github.com/iddm/thread-priority) from 0.16.0 to 1.0.0.
- [Commits](https://github.com/iddm/thread-priority/commits)

---
updated-dependencies:
- dependency-name: thread-priority
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-23 09:19:12 +02:00
dependabot[bot]
ec3309a2b8 Bump serial_test from 3.0.0 to 3.1.0 (#4094)
Bumps [serial_test](https://github.com/palfrey/serial_test) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/palfrey/serial_test/releases)
- [Commits](https://github.com/palfrey/serial_test/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: serial_test
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-23 09:16:41 +02:00
dependabot[bot]
150dfb6977 Bump thiserror from 1.0.58 to 1.0.59 (#4090)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.58 to 1.0.59.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.58...1.0.59)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-23 09:14:27 +02:00
Tim Visée
2de50f9b2a Bump dev version to 1.9.1-dev (#4085) 2024-04-22 14:15:51 +02:00
Arnaud Gourlay
abcd2af537 Median based TopK for sparse vectors scoring (#4037)
* Median based TopK for sparse vectors scoring

* add test with identical scores
2024-04-19 13:27:21 +02:00
Arnaud Gourlay
4ff2fb855b promote Validator to workspace (#4013) 2024-04-11 12:01:27 +02:00
Ricardo Pallas
265bfa253c Removes method from abort shard transfer operation (#3803)
* Removes method from abort shard transfer operation

* Updates consensus test message assertion

* updates validation message
2024-03-26 14:27:33 +01:00
Tim Visée
a3abcef0f1 Change dev version to 1.9.0-dev (#3881) 2024-03-20 14:54:34 +01:00
Tim Visée
88fba0c964 Define Qdrant semver version as string (#3877) 2024-03-20 13:52:34 +01:00
Tim Visée
2724ab6506 Make shard diff transfer fallback to different method through consensus for 1.9 (#3798)
* 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
2024-03-19 15:14:11 +01:00
dependabot[bot]
e9a59584a6 Bump thiserror from 1.0.57 to 1.0.58 (#3858)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.57 to 1.0.58.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.57...1.0.58)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 20:53:24 +01:00
Anush
19c7273864 refactor: Update to Chrono 0.4.35 (#3827)
* refactor: Chrono 0.4.35

* Move chrono dependency to workspace

* Update lib/segment/src/common/anonymize.rs

Co-authored-by: Tim Visée <tim+github@visee.me>

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: Tim Visée <tim+github@visee.me>
2024-03-18 13:44:41 +01:00
Roman Titov
1445ab29bf Fix GraphLinksConverter::serialize_to data alignment issues (#3806)
* 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>
2024-03-13 21:09:56 +01:00
dependabot[bot]
2429a819a7 Bump thread-priority from 0.15.1 to 0.16.0 (#3766)
Bumps [thread-priority](https://github.com/iddm/thread-priority) from 0.15.1 to 0.16.0.
- [Commits](https://github.com/iddm/thread-priority/commits)

---
updated-dependencies:
- dependency-name: thread-priority
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 10:37:29 +01:00
Tim Visée
4e234d2110 Add peer metadata to consensus, tracking Qdrant versions (#3702)
* 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>
2024-03-04 16:48:44 +01:00
xzfc
78cc43361b Don't produce histograms in /telemetry JSON response (#3708) 2024-02-27 23:21:10 +00:00
xzfc
ca2cd46f29 Drop unused Deserialize (#3680) 2024-02-24 00:33:21 +01:00
xzfc
ff9e3a6ab9 Prometheus histogram support (#3552)
* 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
2024-02-22 10:39:33 +00:00
xzfc
b087df7270 Refactor: introduce details level enum (#3612) 2024-02-20 14:55:57 +00:00
Luis Cossío
29c914de71 Issues API: Interface: get issues (#3502)
* add `/issues` endpoint

* generate openapi spec

* fmt

* fix read only patterns test

* list under beta tag, update tags descriptions.
2024-02-16 11:54:14 -03:00
dependabot[bot]
f580033370 Bump thiserror from 1.0.56 to 1.0.57 (#3602)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.56 to 1.0.57.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.56...1.0.57)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-13 09:49:11 +01:00
dependabot[bot]
787b87ba28 Bump chrono from 0.4.33 to 0.4.34 (#3601)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.33 to 0.4.34.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.33...v0.4.34)

---
updated-dependencies:
- dependency-name: chrono
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-13 08:44:24 +01:00
Luis Cossío
44a0265dca refactor test to remove thread::sleep (#3587) 2024-02-12 11:25:24 -03:00
Arnaud Gourlay
d7d5c9bb43 Pool larger memory batches for sparse vector search (#3560)
* 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
2024-02-12 14:58:03 +01:00
Luis Cossío
e35901c2f9 Issues API: internal crate (#3375) 2024-02-08 12:37:46 -03:00
Luis Cossío
6b7fa54cf8 Fix clippy 1.77 lints: explicitly set truncate flag on file creation (#3561)
* 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>
2024-02-08 11:24:47 +01:00
Tim Visée
56171c6087 Dynamic CPU saturation integration (#3115)
* Integrate dynamic CPU saturation with public API changes

This reverts commit 08930fefa9.

* Call num_cpus only once
2024-02-05 14:08:02 +01:00