You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bahir.apache.org by "Ton van Bart (JIRA)" <ji...@apache.org> on 2019/07/01 20:32:00 UTC

[jira] [Commented] (BAHIR-85) Redis Sink Connector should allow update of command without reinstatiation

    [ https://issues.apache.org/jira/browse/BAHIR-85?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876476#comment-16876476 ] 

Ton van Bart commented on BAHIR-85:
-----------------------------------

I think calling {{getCommandDescription()}} on every call to {{invoke()}} would be wrong, as this would mean that also the Redis command to use could change on every call, instead of only the additional key. 
 My suggestion would be to enhance the RedisMapper with an extra method {{getAdditionalKey(T data)}} which returns {{Optional<String>}} and give the interface a {{default}} implementation which returns {{Optional.empty()}}. This way the interface remains backwards compatible with existing implementations of it.

In {{RedisSink}} the only change would be to change {{this.additionalKey}} with {{optAdditionalKey.orElse(this.additionalKey)}} for the applicable methods; this also will give backwards compatibility with any existing code that uses this class.

I tested this change on my fork and all the tests still pass.

> Redis Sink Connector should allow update of command without reinstatiation 
> ---------------------------------------------------------------------------
>
>                 Key: BAHIR-85
>                 URL: https://issues.apache.org/jira/browse/BAHIR-85
>             Project: Bahir
>          Issue Type: Improvement
>          Components: Flink Streaming Connectors
>            Reporter: Atharva Inamdar
>            Priority: Major
>
> ref: FLINK-5478
> `getCommandDescription()` gets called when RedisSink is instantiated. This happens only once and thus doesn't allow the command to be updated during run time.
> Use Case:
> As a dev I want to store some data by day. So each key will have some date specified. this will change over course of time. for example: `counts_for_1484265600000` for 2017-01-13. This is not limited to any particular command.
> connector: https://github.com/apache/bahir-flink/blob/master/flink-connector-redis/src/main/java/org/apache/flink/streaming/connectors/redis/RedisSink.java#L114
> I wish `getCommandDescription()` could be called in `invoke()` so that the key can be updated without having to restart.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)