Skip to content

Version 0.2.0-beta.2

Choose a tag to compare

@ospaarmann ospaarmann released this 28 Mar 12:22
· 9 commits to master since this release
1e14a3b

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