Andrey Vasnetsov
bd05a69a5f
Id mapper inconsistency ( #1302 )
...
* always flush wal
* always flush wal fix
* always flush wal fmt
* flush wal during background flush
* async wal flush
* use id-tracker internal id for next-id instead of vector storage
* add flush order and recovery comment
fix merge bug
* longer timeout in test
2022-12-25 22:36:31 +01:00
Andrey Vasnetsov
926a058c73
Fixing missed leader inconsistency ( #1286 )
...
* WIP: introduce local state
* WIP: sync local state with consensus in idle
* fmt
* rm extensive debug
* update triple replication test
* update triple replication test
* rm debug logs
* fix check for established leader + only sync local if no proposals
* remove unused file
* test compatible with python 3.8
* test compatible with python 3.8
* longer wait for consensus
* longer wait for consensus
* extra sleep in test
* remove extra sleep
* Fixing missed leader inconsistency - transfers (#1298 )
* explicit request timeout
* explicit request timeout
* explicit request timeout
* explicit request timeout
* explicit request timeout
* prevent double handelling of the transfer termination
* kill the process
* log on inconsistency
* log on inconsistency
* log on inconsistency
* debug
* revert debug in test
* forward updates to partial shards, abort transactions on dead node report
* fmt
* disable retry of transfer, if the transfer was cancelled + allow predictable ports in test
* fix import
2022-12-23 00:45:04 +01:00
Andrey Vasnetsov
38444d2cc7
Fix consensus freezes ( #1241 )
...
* do not await for replica deactivation if there is a logical error
* use async mutex in raft service + integration test for deadlock
* fmt
2022-11-24 15:36:03 +01:00
Andrey Vasnetsov
0e42672525
fix snapshot recovery - fix proper deactivation messages ( #1238 )
2022-11-23 13:47:14 +01:00
Arnaud Gourlay
6266d9bcdc
enable compression for gRPC ( #1186 )
...
* enable compression for gRPC
* add benchmarks
* fix grpc benchmark
* discardResponseBodies to reduce memory usage
* improve & split benchmarks
* do not use gzip for inter node communication as benchmarks are not conclusive
2022-11-18 13:34:49 +01:00
Andrey Vasnetsov and Arnaud Gourlay
772326f848
Recover distributed collection ( #1214 )
...
* WIP: shards recovering API: download snapshot
* fmt
* snapshot recovery API
* fmt
* snapshot recovery integration test + fixes
* review fixes
* review fixes 2
* Update lib/storage/src/content_manager/snapshots/recover.rs
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
2022-11-16 10:55:23 +01:00
Arnaud Gourlay
fc77e3e511
Use systematically assert_http_ok for better error reporting ( #1183 )
...
* Use systematically assert_http_ok for better error reporting
* extraction assertion to use it outside of pytest
2022-11-01 11:19:13 +01:00
286ca9f5e4
0.11.0 cherry picks ( #1174 )
...
* implement concern-factor, forbig disabling the last node, improve tes… (#1168 )
* implement concern-factor, forbig disabling the last node, improve test stability
* upd docs
* improve test_recover_dead_node
* rename to write_consistency_factor
* Fix bug: applied index higher than commit on restart (#1172 )
* create collection with default status = dead + await for activation on create_collecton_op_submit
* fmt
* fix unit tests
Co-authored-by: Egor Ivkov <e.o.ivkov@gmail.com >
* upd integration tests
* fix transaction handling
* upd protobuf
* upd to v0.11.0
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
Co-authored-by: Egor Ivkov <e.o.ivkov@gmail.com >
2022-10-27 10:16:21 +02:00
Andrey Vasnetsov
21754ef2ef
report indexed payload points in info api + other fixes ( #1164 )
...
* report indexed payload points in info api + other fixes
* rollback debug changes
* clippy
* clippy
2022-10-24 09:43:02 +02:00
Andrey Vasnetsov
387b52d7fa
propagate peer url to consensus if specified uri is does not match a … ( #1156 )
...
* propagate peer url to consensus if specified uri is does not match a stored one + tests
* review fixes
2022-10-23 00:07:39 +02:00
Arnaud Gourlay
faa4008938
Enable replication in consensus test ( #1140 )
2022-10-20 11:36:22 +02:00
Andrey Vasnetsov
123ae1607d
Await for collection created for sure ( #1144 )
...
* run plunger operation after user request to ensure that the majority of the consensus actually applied previous operation
* fmt
* fix test
* ensure all operations are unique in consensus queue
* add extra timeout for CI tests
* fix timout param in delete peer + do not explicilty await on peer removal
* fmt
2022-10-19 17:59:16 +02:00
Andrey Vasnetsov
7f8c088711
Replication transfer fixes ( #1142 )
...
* fix validation and task assignment during replica transfer
* fmt
* upd openapi
* extend integration test
2022-10-19 11:38:26 +02:00
Andrey Vasnetsov
05ee1d76b8
replication integration test ( #1138 )
...
* replication integration test
* review fix
2022-10-18 17:01:34 +02:00
Arnaud Gourlay and Andrey Vasnetsov
9324be1d60
[Replication] Add replicas ( #1085 )
...
* Add replicas to ReplicaSet
* unproxify shard & miscs
* no exlusive write locking while adding replicas
* on_optimizer_config_update on Shard with async. recursion
* no exlusive write locking while removing replicas
* shortcut replica set propagation #1101
* remove unused field
* make RequestShardTransfer callback sync.
* promote local & remote to replica state
* fixes for replica sync api (#1123 )
* code review
* fix replica set update - fail only if all failed
* Add replica redesign (#1131 )
* refactor shard/mod.rs
* wip
* fmt
* it compiles
* temporary disable replica placemeant change on replication factor
* fmt
* finish todos
* small refactoring
* remove change::add
* replica-set -> shard-replica-set
* fmt
* upd openapi
* fix finish transfer logic
* fix existing integration tests
* shard transfer validation
* fmt
* review fixes
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2022-10-17 20:12:10 +02:00
Andrey Vasnetsov
35ae83f3fc
validate geo coordinate before adding it to the payload index ( #1125 )
...
* validate geo coordinate before adding it to the payload index
* revert changes in api test
2022-10-13 09:14:11 +02:00
Andrey Vasnetsov
7a39ad4967
ensure consequent entries in consensus wal ( #1108 )
...
* ensure consequent entries in consensus wal
* rollback consensus docker-compose
* rollback consensus docker-compose
* clippy
* add wal index debug assert
2022-10-08 20:31:21 +02:00
Arnaud Gourlay
75515f7c73
propagate proper error in case of partial update error across shards ( #1041 )
...
* propagate proper error in case of partial update error across shards
* add consensus test
* less duplication by leveraging existing error infra.
* no need for generic error handling
* fmt 1.66.0-nightly
2022-09-22 19:37:59 +02:00
Andrey Vasnetsov and Arnaud Gourlay
dc07b01e1f
remove deprecated fields from API ( #1030 )
...
* remove depricated fields from API
* fmt
* upd openapi and integration tests
* fix grpc test
* regenerate storage reference data
* improve docs
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
2022-09-19 13:51:03 +02:00
Ivan Pleshkov
4d3b4b132d
More multivector api updates ( #1025 )
...
* rest multivector api updates
* update openapi
* update grpc doc
2022-09-16 12:25:42 +04:00
Ivan Pleshkov
22fd3a3963
minor doc and api in tests updates ( #1022 )
2022-09-15 13:37:38 +04:00
Andrey Vasnetsov
be38254ee8
small refactoring ( #746 )
...
* small refactoring
* fix tests
2022-09-01 12:36:28 +02:00
Arnaud Gourlay
03c10fc310
Batch recommendation API ( #954 )
2022-08-22 09:41:22 +02:00
Andrey Vasnetsov and Arnaud Gourlay
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
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
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
88c672475e
Fix integration test ( #903 )
...
* fix integration test problems + overflow
* fmt
2022-08-03 16:45:34 +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
71a8bfbfdf
Shard transfer from ( #880 )
...
* explicitly specify the source of shard transfer
* fmt
* fix integration test
2022-08-01 20:40:23 +02:00
Arnaud Gourlay
672cde0fee
Storage compatibility for HNSW graph file ( #875 )
...
* Storage compatibility for HNSW graph file
* create collection with a lower indexing_threshold_kb to avoid manual config. change
2022-08-01 13:53:22 +02:00
Arnaud Gourlay
320b220b01
Move shard API ( #869 )
...
* Move shard API
* add missing collection_name to openapi spec
* add basic shard transfer info to collection cluster API
* improve testing
2022-07-28 20:14:15 +02:00
Arnaud Gourlay
7a8b04db6f
[Sharding] Temporary shards for receiving transfer ( #829 )
...
Temporary shards for receiving transfer
2022-07-21 10:53:32 +02:00
Arnaud Gourlay
9b8b5b6376
[sharding] Collection cluster info API ( #822 )
...
* Collection cluster info API
* better output format
* update openapi spec
* local shard info reports number of points
* rebase
2022-07-18 17:57:34 +02:00
Egor Ivkov
ef3c6c5e15
Fair hash ring ( #816 )
...
* Fair hash ring
* Python test processes removal fix
2022-07-14 19:27:53 +02:00
Arnaud Gourlay
28f4339ea1
Fix gRPC port for consensus tests ( #800 )
...
* Fix gRPC port for consensus tests
* python fmt
2022-07-12 10:11:40 +02:00
Egor Ivkov
75008d8d57
Kill qdrant processes after each python test ( #782 )
2022-07-05 15:01:17 +03:00
Egor Ivkov
8f8f55f993
Learners switch to voters test ( #753 )
2022-06-28 11:28:11 +02:00
Andrey Vasnetsov
83c21450c3
Pagination ( #743 )
...
* offset param for search and recomendation
* test and fix for pagination
* clippy + fmt
* upd schemas
* fix grpc requests in test
2022-06-27 13:22:02 +02:00
Arnaud Gourlay
6f8b145b5e
test many collections through consensus ( #731 )
2022-06-24 10:19:00 +02:00
Arnaud Gourlay
e8cf5937f1
refresh storage compat. data ( #734 )
2022-06-23 14:57:47 +02:00
Andrey Vasnetsov
b66fa3b39d
use indexes in basic api test ( #732 )
2022-06-23 14:04:24 +02:00
Egor Ivkov
17a6b25e29
Add new peers as learners ( #710 )
...
* Add new peers as learners
* Fix Storage impl
* test added
* Test fixes
2022-06-22 19:50:27 +03:00
Arnaud Gourlay
fa5a501e25
Remove last sleep consensus test ( #720 )
...
* remove sleep by polling peer addition
* cleanup
2022-06-21 17:59:59 +02:00
Arnaud Gourlay
81589c23c4
harden consensus test and debugging ( #704 )
2022-06-15 19:13:54 +02:00
Egor Ivkov
533fd208b6
Move out consensus logic from ToC ( #675 )
2022-06-15 16:18:26 +03:00
Arnaud Gourlay
beef4d0185
Consensus tests use cluster API instead of sleep ( #674 )
2022-06-09 20:49:41 +02:00
Egor Ivkov
1d36910b93
Test shards with restart and add volumes ( #654 )
2022-06-02 12:37:21 +03:00
Andrey Vasnetsov
2601c017de
Smarter defaults ( #637 )
...
* auto segments number
* auto segments number
* replace vector number limits with vector size limits
* fmt
2022-06-01 18:09:38 +02:00
Egor Ivkov
4b83464061
Skip consensus init on restart ( #638 )
...
* Skip consensus init on restart
* Added test
* CI
2022-06-01 11:38:23 +03:00
Andrey Vasnetsov
3d505f5ae5
gRPC int payload ( #564 )
...
* use custom message for json representation in gRPC
* fmt
2022-05-30 19:10:37 +02:00