Skip to content

Add Support for Redis Cluster#502

Merged
feast-ci-bot merged 1 commit intofeast-dev:masterfrom
lavkesh:RedisClusterStore
Apr 27, 2020
Merged

Add Support for Redis Cluster#502
feast-ci-bot merged 1 commit intofeast-dev:masterfrom
lavkesh:RedisClusterStore

Conversation

@lavkesh
Copy link
Copy Markdown
Contributor

@lavkesh lavkesh commented Feb 27, 2020

This pull request adds REDIS_CLUSTER as a store.

Fixes #478

@lavkesh lavkesh changed the title Redis cluster store [WIP] Redis cluster store Feb 27, 2020
@lavkesh lavkesh changed the title [WIP] Redis cluster store Redis cluster store Feb 28, 2020
@lavkesh
Copy link
Copy Markdown
Contributor Author

lavkesh commented Mar 4, 2020

To test locally Create a dockerfile

Dockerfile
FROM maven:3.6-jdk-11
Add . /
CMD ./.prow/scripts/test-end-to-end-redis-cluster.sh
Build the project

mvn clean install -Dgpg.skip -DskipTests

Comment out these lines in the test-end-to-end-redis-cluster.sh
#.prow/scripts/download-maven-cache.sh \
#    --archive-uri gs://feast-templocation-kf-feast/.m2.2019-10-24.tar \
#    --output-dir /root/

# Build jars for Feast
#mvn --quiet --batch-mode --define skipTests=true clean package

Run

docker build -t end-to-end-redis-cluster  . 
docker run -it end-to-end-redis-cluster:latest

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there code missing here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. It just falls through.
we call RedisCustomIO.write(getStore() for both the stores.

@lavkesh
Copy link
Copy Markdown
Contributor Author

lavkesh commented Mar 9, 2020

/retest

@woop woop mentioned this pull request Mar 9, 2020
@woop woop added this to the v0.5.0 milestone Mar 10, 2020
@woop woop changed the title Redis cluster store Add Support for Redis Cluster Mar 10, 2020
@khorshuheng
Copy link
Copy Markdown
Collaborator

/test test-end-to-end-batch

@khorshuheng
Copy link
Copy Markdown
Collaborator

https://github.com/gojek/feast/blob/2d45e9bce4c4f12486acd2ef74781e5028620456/ingestion/src/main/java/feast/ingestion/ImportJob.java#L119

This part needs to be changed as well, to include Redis Cluster as a valid store.

@khorshuheng
Copy link
Copy Markdown
Collaborator

/hold

@khorshuheng
Copy link
Copy Markdown
Collaborator

khorshuheng commented Apr 14, 2020

Resolved the merge conflict due to changes in storage API. Will be manually testing this.

Co-authored-by: Khor Shu Heng <khor.heng@gojek.com>
Co-authored-by: Lavkesh Lahngir <lavkesh51@gmail.com>
@khorshuheng
Copy link
Copy Markdown
Collaborator

/unhold

featureSetRequest.getFeatureReferences().asList());
featureRows.add(featureRowsForFeatureSet);
} catch (InvalidProtocolBufferException | ExecutionException e) {
throw Status.INTERNAL
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering if we should be throwing gRPC exceptions so deep within the code base. Perhaps this should be left to higher layers?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While i agree that this should be left to higher layers, it is better to implemented that in a separate PR, as RedisOnlineRetriever will also be affected by the change.

featureRows.forEach(row -> context.output(successfulInsertsTag, row));
featureRows.clear();
} catch (Exception e) {
featureRows.forEach(
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be logging to console or to statsd here if we have failures? or does that happen downstream?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@feast-ci-bot
Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: lavkesh, woop

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

The pull request process is described here

Details 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

@woop
Copy link
Copy Markdown
Member

woop commented Apr 27, 2020

/lgtm

@woop
Copy link
Copy Markdown
Member

woop commented Apr 27, 2020

Thank you @lavkesh and @khorshuheng

@feast-ci-bot feast-ci-bot merged commit 11151e8 into feast-dev:master Apr 27, 2020
@feast-ci-bot
Copy link
Copy Markdown
Collaborator

@lavkesh: Updated the config configmap in namespace default at cluster default using the following files:

  • key config.yaml using file .prow/config.yaml
Details

In response to this:

This pull request adds REDIS_CLUSTER as a store.

Fixes #478

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@terryyylim terryyylim mentioned this pull request Apr 28, 2020
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.

Redis High Availability

4 participants