Releases: ospaarmann/exdgraph
Version 0.2.0-beta.3
This release implements the ping
and disconnect
callbacks for DBConnection
. It also removes gun as a dependency (since it is available as an Erlang module). And it improves error handling.
Fixes this issue: #15
Version 0.2.0-beta.2
Most important fix in this version is that we now set the GRPC deadline and DBConnection
timeout. Both are set to timeout
in the config. Why is this important? Before we didn't pass the timeout
value to DBConnection
and never set a GRPC deadline (which should always be done). As an example let's take a query that takes 29 seconds. Our timeout
is set to 60 seconds. Here is what happens:
Call #1 -> Fails after 15 seconds due to default timeout value of DBConnection we never set
Retry #1 -> Fails after 15 seconds due to default timeout value of DBConnection we never set
------- @ 29 seconds, one of the first 2 queries finished on Dgraph in the background because we never set a GRPC deadline so it kept running
Retry #2 -> Succeeds immediately because the result was cached in Dgraph
A reason the dgraph servers were getting wrecked was because of the retry strategy and the fact that we were not actually setting the DBConnection timeout but rather just running the query over and over again up until the timeout set in our own code and waiting for Dgraph to cache one of the results since we also never set the GRPC deadline. Thanks @emhagman for finding out about this.
Changelog
Fixed
- Set the GRPC deadline and
DBConnection
checkout timeout to use:timeout
(contribution by @emhagman). - Update dependency
uuid
toelixir_uuid
(contribution by @emhagman). - Some smaller tweaks (contribution by @optikfluffel).
Changed
- Downgrade poison to
v3.1.0
. - Test against Dgraph
v1.0.13
- Update the docs.
Next steps
- Support transactions.
- Support per-call GRPC deadlines