Conversation
| use crate::qdrant_client::{Qdrant, QdrantResult}; | ||
|
|
||
| /// Max amount of points that should be upserted in a single request/chunk. | ||
| const TOO_MANY_POINTS: usize = 50_000; |
There was a problem hiding this comment.
This feels a bit arbitrary.
I mean, the request object can basically be infinitely large no matter the number of points.
Do you know if it's possible to render a proper error message instead on the tonic side of things when we surpass limits?
There was a problem hiding this comment.
The limit for gRPC we set in Qdrant is usize::MAX (~2.3 Exabytes) and the error we get on too large requests is not a limit exceeded or similar error.
The one I was facing when uploading 500k points was
gRPC /qdrant.Points/Upsert unexpectedly failed with Internal error "Missing request message."
Which I can't find in tonics documentation.
To not risk throwing wrong errors, I'd prefer not to map this error to some RequestTooLarge error.
In order to get a limit exceeded error (assuming this exists and gets thrown reliably), we'd need to set a lower limit in the gRPC API, which is arguably a breaking change.
I thought getting some warning is always better than a non descriptive tonic error and a timeout in the client.
If you feel 50k points to be too random, feel free to suggest a better limit.
There was a problem hiding this comment.
Do you know if it's possible to render a proper error message instead on the tonic side of things when we surpass limits?
gRPC /qdrant.Points/Upsert unexpectedly failed with Internal error "Missing request message."
Could it be improved with hyperium/tonic#1682?
It's landed in tonic 0.12, but Qdrant still uses 0.11.
Throw a warning if someone tries to upsert too many points in a single request.
Tonic server doesn't throw a meaningful error if the max message size gets exceeded and a huge upsertion request may result in a timeout without further information.