Skip to content

Releases: ospaarmann/exdgraph

Version 0.2.0-beta.3

31 Jul 20:52
Compare
Choose a tag to compare

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

28 Mar 12:22
1e14a3b
Compare
Choose a tag to compare

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 to elixir_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