Arnaud Gourlay
96413485b6
the gRPC bootstrap timeout needs to be higher than DEFAULT_META_OP_WAIT ( #678 )
2022-06-13 09:18:50 +02:00
Arnaud Gourlay
1d25b22f5f
add more error context for consenus init ( #677 )
2022-06-10 14:15:37 +02:00
Andrey Vasnetsov
fc2f579ec6
smarter default number of shards ( #668 )
...
* smarter default number of shards
* upd openapi
2022-06-07 16:59:10 +02:00
Andrey Vasnetsov
8e52c255ab
add consensus configuration + lower log level + fix flickering test
2022-06-06 21:44:03 +02:00
Egor Ivkov
9ddaa1c749
Add leader_id and role to cluster API ( #660 )
2022-06-03 22:37:50 +02:00
Egor Ivkov
88d14732ea
Wait for leader to be established ( #658 )
...
* Wait for leader to be established
* use condwar instead of channel (#659 )
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2022-06-03 15:58:07 +03:00
Andrey Vasnetsov
1b458780eb
On disk payload storage ( #634 )
...
* implement on-disk payload storage
* fmt + clippy
* config param for on-disk payload storage
* upd openapi definitions
* add integration test with on-disk payload
* fix clippy
* review fixes
* fmt
2022-06-01 17:23:34 +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
c286bde562
Cluster api ( #631 )
...
* cluster status API
* add cluster api to OpenAPI specification
2022-05-27 14:52:51 +02:00
Arnaud Gourlay
63a1552cb1
[sharding] Materialize remote shards ( #599 )
...
* materialize remote shards at collection creation and load
* code review naming
* use dedicated integration test
* introduce ChannelService
* introduce CreateCollectionDistributed
* fix test name
* create missing remote shards while applying the SnapshotData
2022-05-24 15:42:04 +02:00
Andrey Vasnetsov
5a4c67ce2c
fix cros headers - allow all requests ( #619 )
2022-05-23 15:55:35 +02:00
Andrey Vasnetsov
036c186e0d
Better error reporting in enums ( #587 )
...
* remove conflicting deprecated apis
* implement custom JsonSchema for the PointInsertOperations
* fmt
* clippy
* revert unnesessare changes
2022-05-23 13:28:17 +02:00
Andrey Vasnetsov
e3562493c2
add optional CORS headers ( #611 )
2022-05-19 17:56:17 +02:00
Egor Ivkov
0cf8c070f8
Log only h2 errors ( #608 )
2022-05-19 12:35:21 +03:00
Egor Ivkov
27440937bc
Add multipeer deployment test ( #590 )
...
* Add multipeer deployment test
And corresponding fixes for snapshot and wal logic to make test green
* Add CI for multipeer test
* Increase number of peers to 5
* Fix pytest installation
* Fix python version
* Install requests lib
2022-05-18 15:22:38 +03:00
Arnaud Gourlay
0a33e00647
Pool gRPC transport channels ( #584 )
...
* Pool gRPC transport channels
* code review: do not use an extra layer of Arc
* code review: better naming
2022-05-13 14:44:06 +02:00
Egor Ivkov
75f424a5ef
Raft configuration updates - add peer ( #578 )
...
* Raft configuration updates - add peer
* Review: clarify send error
* Review: move `first_peer` into `ConsensusEnabled`
* Fix consensus test
2022-05-11 17:10:18 +03:00
Andrey Vasnetsov
7ca14af967
default values for debug and info configuration params ( #577 )
2022-05-10 17:00:31 +02:00
Andrey Vasnetsov
5800319edb
refactor distances + add score_threshold + fix negative euclid distance ( #569 )
...
* refactor distances + add score_threshold + fix negative euclid distance
* generate docs
* fix clippy
* Update lib/segment/src/spaces/tools.rs
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
2022-05-09 17:32:48 +02:00
Arnaud Gourlay
c7396525f9
Switch consensus to a runtime configuration ( #565 )
...
* switch consensus to a runtime configuration
* propose_sender is always present
* better toggle switch with ConsensusEnabled
2022-05-06 17:56:00 +02:00
Arnaud Gourlay
841ba05850
[Sharding] Introduce cluster configuration ( #547 )
...
* cluster configuration
* default cluster configuration to not pollute config.yaml
* code review suggestions
* please clippy
2022-05-04 20:22:45 +02:00
Arnaud Gourlay
1f72ce6b1f
return a JSON body in case of JSON decoding error ( #556 )
2022-05-04 20:11:27 +02:00
Egor Ivkov
f3fc921e51
Derive this peer uri if not supplied ( #546 )
2022-05-03 16:17:06 +03:00
Egor Ivkov
40c4c1ec2c
Allows bootstrapping peer on addition ( #529 )
...
* Allows bootstrapping peer on addition
* Review: warn on address replacement
* Review: more detailed comments
2022-05-02 18:02:35 +03:00
Egor Ivkov
d4bb6e4f49
Send Raft messages with gRPC client ( #509 )
...
* Send Raft messages with gRPC client
* Review: more specific thread names
2022-04-27 13:01:41 +03:00
Egor Ivkov
fd1b8a457c
Adds this_peer_id generation as part of raft state ( #503 )
...
Also some raft state refactoring
2022-04-25 12:14:01 +03:00
Andrey Vasnetsov
61e6a1872c
ensure lib/api version is same as main package ( #504 )
2022-04-25 10:10:09 +02:00
Egor Ivkov
77b7e666be
Add gRPC RaftService ( #490 )
...
* Add gRPC `RaftService`
* Review: Back-pressure with bounded channel
2022-04-20 14:23:26 +03:00
Egor Ivkov
ca62c734e4
Save unapplied committed entries indexes ( #477 )
2022-04-14 11:05:20 +03:00
Arnaud Gourlay
ca82a80bd3
Internal gRPC API for get collection info ( #476 )
2022-04-13 19:45:34 +02:00
Arnaud Gourlay
62d4273ed2
[Sharding] internal API for shard-aware points retrieval ( #475 )
2022-04-13 14:10:15 +02:00
Arnaud Gourlay
367afa3866
[sharding] Add internal gRPC API for search recommend & scroll ( #463 )
...
* Add internal gRPC API for search recommend & scroll
* introduce BadShardSelection which translates into a client side error
* introduce Collection target_shards to decrease code duplication
* recommend uses a shard_selection aware retrieve
2022-04-13 13:16:53 +02:00
Arnaud Gourlay
74a1eb8294
p2p gRPC API is now internal ( #464 )
2022-04-12 11:53:02 +02:00
Arnaud Gourlay
b77482702a
add internal API for CollectionUpdateOperations ( #445 )
2022-04-11 11:27:44 +02:00
Egor Ivkov
ee4cd768ea
Allows specifying collection meta operation commit timeout in API ( #444 )
...
* Allows specifying collection meta operation commit timeout in API
Also restructures a part of gRPC collection API
* Review: link to dev docs
* Review: Timeout error description
Also committed generated protobuf code that somehow was left out
* Review: seconds in API and minor proto fixes
2022-04-08 14:42:38 +03:00
Egor Ivkov
aeea31dfa4
Wait for operation commit ( #436 )
...
* Wait for operation commit
* Review: Option with timeout, return execution err to API
* Review: Add comment about error forwarding in ???
2022-04-06 18:00:44 +03:00
Arnaud Gourlay
ded49e505c
[Sharding] Shard aware updates for internal API ( #427 )
...
* Shard aware updates for internal API
* code-review: remove general purpose collection update API
* code review: add clarification comment
2022-04-04 11:25:43 +02:00
Egor Ivkov
d3e0d7dcec
Integrate consensus into execution pipeline ( #410 )
...
* Integrate consensus into execution pipeline
* Review: Remove unnecessary config
2022-03-31 17:54:55 +03:00
Arnaud Gourlay
967e265900
[sharding] Extract grpc feature into sub-crate ( #412 )
...
* extract grpc feature into sub-crate
* move build.rs to api crate
* split proto files between services and objects
* update docs
2022-03-30 10:12:02 +02:00
Andrey Vasnetsov
8dcb900113
fix intergation test: freeze python deps on working versions
2022-03-28 23:56:08 +02:00
Arnaud Gourlay
a0e52e84aa
alias gRPC endpoint ( #408 )
2022-03-24 16:21:01 +01:00
Egor Ivkov
2343078ea1
Collection meta as global state ( #394 )
...
* Collection meta as global state
* Improve collection wal entry error handling
2022-03-22 18:27:03 +03:00
Arnaud Gourlay
de741b9c84
add untracked generated file google.protobuf.rs ( #396 )
2022-03-21 11:57:35 +01:00
Gabriel Velo
f69a7b740f
json as payload ( #306 )
...
add json as payload
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2022-03-21 07:09:10 -03:00
Egor Ivkov
dcfb44de6f
Consensus with Raft feature ( #385 )
...
Consensus will be used to synchronize global state which is:
- Collection meta
- Shard to Peer mapping
2022-03-17 15:15:06 +03:00
Egor Ivkov
a5bd04f446
Remove unused cli.rs ( #383 )
2022-03-14 18:47:47 +03:00
Egor Ivkov
960937b58b
Sharding related collection API changes ( #381 )
...
* NonZeroU32 shard number
* Inconsistent Failure option
* Generate docs and apis
2022-03-11 19:26:09 +03:00
Egor Ivkov
2bb52abc71
Multiple shards in collection ( #360 )
...
* Multiple shards in collection
* Collection and Shard async drop
* Generate APIs for shard_number param
2022-03-07 16:22:47 +03:00
Andrey Vasnetsov
5cf9a8c21b
[gRPC] recommendation method ( #364 )
...
* grpc: recommend points
* grpc:recommend docs
2022-03-03 20:39:07 +01:00
Arnaud Gourlay
c928217a8c
enable gRPC via a runtime config ( #352 )
...
* enable gRPC via a runtime config
* code review
* code review: rename rest_port to http_port
* Update config/config.yaml
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
* disable grpc by default
* enable gPRC in integration test
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2022-03-03 19:23:31 +01:00