Commit Graph

3618 Commits

Author SHA1 Message Date
dependabot[bot]
1508ce83be Bump criterion from 0.3.6 to 0.4.0 (#1004)
Bumps [criterion](https://github.com/bheisler/criterion.rs) from 0.3.6 to 0.4.0.
- [Release notes](https://github.com/bheisler/criterion.rs/releases)
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.3.6...0.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-13 10:18:56 +02:00
Andrey Vasnetsov
ba26e2f85e Faster filtered scroll (#1003)
* faster filtered scroll for low cardinality filters

* add test

* scroll strategy heuristics
2022-09-12 17:55:56 +02:00
Egor Ivkov
d8a36c5bbe Drop shard before deleting folder in ReplicaSet (#999) 2022-09-12 11:26:01 +03:00
Andrey Vasnetsov
4ae6552379 tiny-map + benchmark (#1001)
* tiny-map + benchmark

* are you happy clippy

* lower default capacity

* fmt

Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com>
2022-09-12 01:56:47 +02:00
Ivan Pleshkov
f6b2186193 [WIP] Many named vectors per point (#958)
* many named vectors per point (segment-level)

* operation result for dim function

* beautifulized vector name

* fix naming bug

* segment version migration

* fmt

* add segment tests

* are you happy clippy

* fix build

* [WIP] many named vectors per point (collection-level) (#975)

* config and search

* fix placeholders for proxy segment move

* remove VectorType from collection

* are you happy fmt

* vectors in grps messages

* create collections with vectors

* segment holder fixes

* are you happy fmt

* remove default vector name placeholders

* are you happy fmt

* are you happy clippy

* fix build

* fix web api

* are you happy clippy

* are you happy fmt

* record vector&vectors

* openapi update

* fix openapi integration tests

* segment builder fix todo

* vector names for update from segment

* remove unwrap

* backward compatibility

* upd openapi

* backward compatible PointStruct

* upd openapi

* fix record back-comp

* fmt

* vector configuration backward compatibility

* fix vetor storage size estimation

* fmt

* multi-vec segment test + index test

* fmt

* api integration tests

* [WIP] Named vectors struct (#1002)

* move to separate file

* named vectors as struct

* use cow

* fix build

* keys iterator

* avoid copy in PointStruct -> get_vectors

* avoid another copy

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2022-09-11 20:59:23 +02:00
Egor Ivkov
d1dda7e7f6 Adds replica info to consensus snapshots (#996)
* Adds replica info to consensus snapshots

* fix clippy

* Review fix: add debug_assert
2022-09-08 18:24:40 +03:00
Egor Ivkov
167774aade SetShardReplicaState operation (#986)
* `SetShardReplicaState` operation

* Review fix: assume RemotePeer manages several remote peers
2022-09-06 15:37:34 +03:00
Andrey Vasnetsov
24ac939b4a Sync Points API (#985)
* shard sync operation

* fnt

* tests

* fix test

* Update lib/collection/src/collection_manager/segments_updater.rs

Co-authored-by: Egor Ivkov <e.o.ivkov@gmail.com>

* Update lib/collection/src/collection_manager/segments_updater.rs

Co-authored-by: Egor Ivkov <e.o.ivkov@gmail.com>

* match payload after vector only

* Update lib/collection/src/collection_manager/segments_updater.rs

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>

Co-authored-by: Egor Ivkov <e.o.ivkov@gmail.com>
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2022-09-05 15:09:39 +02:00
dependabot[bot]
a261d4f25e Bump tokio from 1.20.1 to 1.21.0 (#983) 2022-09-05 09:31:21 +00:00
Egor Ivkov
517e6c7a0e Replica set (#982)
* Introduces ReplicaSet
2022-09-02 20:06:52 +03:00
Andrey Vasnetsov
c3bc5b3873 rename grpc fields + re-generate docs (#980) 2022-09-01 18:59:47 +02:00
Andrey Vasnetsov
b9eee55a9f Full text search (#963)
* allow additional params for payload field index

* fmt

* wip: full text index building

* fmt

* text search request

* text search request

* full text index persitance and loading

* fmt

* enable fts index in mapping

* clippy

* fix tests + add integration test

* review fixes: extend payload index test

* revert incedental change
2022-09-01 12:50:12 +02:00
Andrey Vasnetsov
be38254ee8 small refactoring (#746)
* small refactoring

* fix tests
2022-09-01 12:36:28 +02:00
Egor Ivkov
dc0314201e Add replication factor (#966)
* Add replication_factor config and ops to change it
2022-08-31 11:26:52 +03:00
Andrey Vasnetsov
e8216e9400 do not fail if cannot get file creation time (#973) 2022-08-30 23:33:56 +02:00
dependabot[bot]
3c96694bba Bump futures from 0.3.23 to 0.3.24 (#967)
Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.23 to 0.3.24.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.23...0.3.24)

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

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-30 09:57:02 +02:00
dependabot[bot]
4dd9d53b8d Bump geo from 0.22.1 to 0.23.0 (#964)
Bumps [geo](https://github.com/georust/geo) from 0.22.1 to 0.23.0.
- [Release notes](https://github.com/georust/geo/releases)
- [Changelog](https://github.com/georust/geo/blob/main/CHANGES.md)
- [Commits](https://github.com/georust/geo/compare/geo-0.22.1...geo-0.23.0)

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

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-29 12:13:32 +02:00
Arnaud Gourlay
dcdac093db recommend using recommend_batch with single batch (#957) 2022-08-23 09:09:51 +02:00
Arnaud Gourlay
95dcc333b0 properly format doc links for cargo doc (#956) 2022-08-23 09:09:34 +02:00
Arnaud Gourlay
03c10fc310 Batch recommendation API (#954) 2022-08-22 09:41:22 +02:00
Ivan Pleshkov
f9fb0777a0 Wrap rocksdb column usages (#951)
* wrap rocksdb column usages

* remove obsolete comments

* are you happy clippy
2022-08-22 09:41:08 +02:00
Andrey Vasnetsov
a2acca0345 Segment batch search (#813)
* batch search benchmark

* collect filter iterator in indexed search

* fmt

* fix

* fix

* fmt

* use new tempfile create

* auto batching

* Clippy fixes

* REST, gRPC and internal APIs

* fix bugs & less duplication

* two steps payload retrieval mechanism & fix duplication

* add proxy_segment implementation & tests

* add gRPC docs

* remove unused code (#950)

* only filter ids within a batch

* add more equivalence tests

* add integration test search vs batch

* assert more search options in tests

* cleanup assertions

* fix offset panic

* rename search batch API

* openapi spec

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2022-08-18 14:48:17 +02:00
dependabot[bot]
934502447c Bump futures from 0.3.21 to 0.3.23 (#944)
Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.21 to 0.3.23.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.21...0.3.23)

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

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-15 20:52:48 +02:00
Ivan Pleshkov
f357bd5d9b Allow to flush segment in separate thread (#927)
* allow to flush segment in separate thread

* flush as separate function (#928)

* flush as separate function

* review suggestion

* reduce locks during vector scoring

* fmt

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>

* don't run background flush twice

* Update lib/segment/src/segment.rs

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>

* increase flush interval

* Update lib/segment/src/segment.rs

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>

* are you happy fmt

* test background flush

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2022-08-15 13:47:52 +04:00
dependabot[bot]
4b6535e43d Bump anyhow from 1.0.60 to 1.0.61 (#942) 2022-08-12 09:21:46 +00:00
Arnaud Gourlay
38c8097fc8 Clippy next (#941)
* Clippy derive_partial_eq_without_eq

* Clippy  explicit_auto_deref

* Clippy single_match

* Clippy manual_find_map

* Clippy unnecessary_to_owned

* Clippy derive_partial_eq_without_eq

* Clippy get_first
2022-08-12 09:38:31 +02:00
Arnaud Gourlay
cb4f2b0fb1 Remove unecessary lifetime in toc (#940) 2022-08-11 12:24:55 +02:00
Andrey Vasnetsov
993e94eaef V0.9.1 (#939)
* minor fix + upd version to 0.9.1

* fmt

* fix clippy

* fix test
2022-08-10 21:15:40 +02:00
Arnaud Gourlay
eaf3f47faf Do not panich if config.optimizer_config.max_optimization_threads is 0 (#936) 2022-08-10 16:45:26 +02:00
Russ Cam
8e1f2ca353 Use tempfile (#922)
This commit replaces tempdir with tempfile.
tempdir is archived.

Closes #544
2022-08-10 09:39:21 +02:00
Egor Ivkov
a4e760af34 AddPeer in one consensus operation (#923)
* AddPeer in one consensus operation
2022-08-09 17:00:38 +03:00
Arnaud Gourlay
aa7f0df637 Improve WAL recovery progress bar (#926) 2022-08-09 12:56:35 +02:00
Arnaud Gourlay
935e9a21aa update v0.9.0 (#919)
* update v0.9.0

* update gRPC docs

* update abort transfer
2022-08-08 11:13:54 +02:00
dependabot[bot]
9713267358 Bump rocksdb from 0.18.0 to 0.19.0 (#920)
* Bump rocksdb from 0.18.0 to 0.19.0

Bumps [rocksdb](https://github.com/rust-rocksdb/rust-rocksdb) from 0.18.0 to 0.19.0.
- [Release notes](https://github.com/rust-rocksdb/rust-rocksdb/releases)
- [Changelog](https://github.com/rust-rocksdb/rust-rocksdb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-rocksdb/rust-rocksdb/compare/v0.18.0...v0.19.0)

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

Signed-off-by: dependabot[bot] <support@github.com>

* iterator_cf returns a Result

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2022-08-08 11:12:22 +02:00
Andrey Vasnetsov
abbd3bcbf1 Fix transfer abort on restart (#921)
* await for consensus leader before submitting transfer abort + api

* fmt
2022-08-06 14:53:35 +02:00
Egor Ivkov
540044f280 Raft snapshot logic for handling transfers (#918) 2022-08-05 17:49:18 +02:00
Andrey Vasnetsov
9f10a734fd a third attempt to implement peer removal + integration test (#917)
* a third attempt to implement peer removal + integration test

* fix test

* review updates
2022-08-05 16:17:33 +02:00
Andrey Vasnetsov
00e965fc96 Configuration change on peer removal (#914)
* propose configuration change along with removal of the peer

* fmt
2022-08-04 14:47:49 +02:00
Andrey Vasnetsov
8ede775079 Cancel transmission on bad arguments (#911)
* submit transmission abort if source peer does not have local shard

* fmt
2022-08-03 22:50:23 +02:00
dependabot[bot]
1872260a45 Bump semver from 1.0.12 to 1.0.13 (#910)
Bumps [semver](https://github.com/dtolnay/semver) from 1.0.12 to 1.0.13.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.12...1.0.13)

---
updated-dependencies:
- dependency-name: semver
  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>
2022-08-03 22:00:05 +02:00
Andrey Vasnetsov
178ed6fce6 Abort transfer on restart (#905)
* abort all outgoing transferts with the consensus on restart

* fmt
2022-08-03 18:57:52 +02:00
Andrey Vasnetsov
70317d1bbc check for segment integrity by checking the version, skip on failure (#904) 2022-08-03 17:39:13 +02:00
Andrey Vasnetsov
88c672475e Fix integration test (#903)
* fix integration test problems + overflow

* fmt
2022-08-03 16:45:34 +02:00
Andrey Vasnetsov
60c7131cc6 Indexed vectors in collection info (#879)
* include number of indexed points into the info api

* fmt

* await for a certain level of indexing progressing before promoting shard

* log before waiting

* await for index fixes

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2022-08-03 16:19:19 +02:00
Andrey Vasnetsov
cf7fcb937a upd wal (#902) 2022-08-03 16:17:44 +02:00
Arnaud Gourlay
e0d82d76ad remove default max optim. threads to enable switching off the optimizer (#901) 2022-08-03 11:44:27 +02:00
Andrey Vasnetsov
e911faf8b3 wait for leader election before submitting the consensus operation (#897) 2022-08-03 10:59:45 +02:00
Andrey Vasnetsov
72d39453d5 remove temporary snapshot files during full snapshot (#900) 2022-08-03 10:56:30 +02:00
Andrey Vasnetsov
826165cfcf fix enum conversion in gRPC (#898) 2022-08-03 09:48:30 +02:00
Andrey Vasnetsov
93ab03b4f1 Refactor main startup foo (#891)
* fmt

* clippy

* refactor consensus run

* Update src/startup.rs

Co-authored-by: Egor Ivkov <e.o.ivkov@gmail.com>

* review fix

Co-authored-by: Egor Ivkov <e.o.ivkov@gmail.com>
2022-08-02 15:35:03 +02:00