Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change RedisBackedJobService to use a connection pool #439

Merged
merged 6 commits into from
Jan 21, 2020

Conversation

zhilingc
Copy link
Collaborator

What this PR does / why we need it:
Current implementation of connection to jobs redis is using a client that upon failure does not refresh its connection to the db - so if anything goes awry batch retrieval is unusable until the instance is restarted to manually establish a new connection with redis.

This PR changes RedisBackedJobService to use a connection pool instead.

Which issue(s) this PR fixes:

N/A

Does this PR introduce a user-facing change?:

NONE

@zhilingc zhilingc requested a review from pradithya as a code owner January 21, 2020 03:13
@zhilingc zhilingc changed the title Change job service connection to use a connection pool Change RedisBackedJobService to use a connection pool Jan 21, 2020
@zhilingc zhilingc requested a review from khorshuheng January 21, 2020 03:13
@khorshuheng
Copy link
Collaborator

/lgtm

@khorshuheng
Copy link
Collaborator

/approve

@feast-ci-bot feast-ci-bot merged commit 0a8987e into feast-dev:master Jan 21, 2020
@feast-ci-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: khorshuheng, zhilingc

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@brandon733
Copy link

brandon733 commented Jan 24, 2020

not sure if this is bc of this change, but to get minikube working w basic.ipynb, I had to do:

diff --git a/infra/charts/feast/values-demo.yaml b/infra/charts/feast/values-demo.yaml
index fad4bc0..eee063d 100644
--- a/infra/charts/feast/values-demo.yaml
+++ b/infra/charts/feast/values-demo.yaml
@@ -62,6 +62,9 @@ feast-serving-online:
   store.yaml:
     name: redis
     type: REDIS
+    redis_config:
+      host: feast.example.com
+      port: 32101
     subscriptions:
       - name: "*"
         project: "*"

o/w ingest() would fail w/ cannot conn to redis

@khorshuheng
Copy link
Collaborator

@b133t Which image version are you using?

@brandon733
Copy link

brandon733 commented Jan 27, 2020

0.4.3
minikube setup as detailed in https://docs.feast.dev/getting-started/installing-feast#minikube
then running basic.ipynb in source repo w/ jupyter (without batch)
fails on "7. Ingest data into Feast for a feature set", unless make change above (and s/feast.example.com/$(minikube ip)/ + rerun helm)

khorshuheng pushed a commit that referenced this pull request Feb 13, 2020
* Change job service connection to use a connection pool

* Close connection

* Remove isConnected condition

* Add simple test to test that pool recovers broken connections

* Catch JedisExceptions separately

* Catch only JedisConnectionException
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants