Hi again Ken,

This is the PR https://github.com/apache/flink/pull/5922 
<https://github.com/apache/flink/pull/5922> I promised.

You can build the docs by going in the docs directory of the Flink repo and 
executing
        ./build_docs.sh -p

After it finishes, you will be able to see all the documentation at 
localhost:4000 and
the Broadcast State one at:

       http://localhost:4000/dev/stream/state/broadcast_state.html 
<http://localhost:4000/dev/stream/state/broadcast_state.html>

Any feedback is welcomed!

Cheers,
Kostas

> On Apr 26, 2018, at 11:09 AM, Kostas Kloudas <k.klou...@data-artisans.com> 
> wrote:
> 
> Hi Ken,
> 
> It is true that there is not reason for not having access to the timerService 
> from the processElement of 
> the keyed side. On the other side (the non-keyed side) you cannot set timers 
> because timers are bound 
> to a specific key. 
> 
> Now, if one stream is broadcasted and the other is keyed, then FLINK-1.5 also 
> has BroadcastState which 
> does exactly what you are describing. 
> 
> Unfortunately the documentation is being prepared but I will open a Pull 
> Request today and I can send 
> you the link so that you can have a look.
> 
> Kostas
> 
>> On Apr 26, 2018, at 2:37 AM, Ken Krugler <kkrugler_li...@transpac.com> wrote:
>> 
>> Hi devs,
>> 
>> I’m using Flink 1.5-SNAPSHOT, and I’ve got a connected stream that I’m using 
>> with a CoProcessFunction.
>> 
>> One of the streams is keyed, and the other is broadcast.
>> 
>> As per the documentation 
>> (https://ci.apache.org/projects/flink/flink-docs-release-1.4/api/java/org/apache/flink/streaming/api/functions/co/CoProcessFunction.html
>>  
>> <https://ci.apache.org/projects/flink/flink-docs-release-1.4/api/java/org/apache/flink/streaming/api/functions/co/CoProcessFunction.html>),
>>  I tried to set a timer, but that fails with:
>> 
>> java.lang.UnsupportedOperationException: Setting timers is only supported on 
>> a keyed streams.
>>      at 
>> org.apache.flink.streaming.api.operators.co.CoProcessOperator$ContextImpl.registerProcessingTimeTimer(CoProcessOperator.java:123)
>> 
>> CoProcessOperator.java has:
>> 
>>              @Override
>>              public void registerProcessingTimeTimer(long time) {
>>                      throw new UnsupportedOperationException("Setting timers 
>> is only supported on a keyed streams.");
>>              }
>> 
>>              @Override
>>              public void registerEventTimeTimer(long time) {
>>                      throw new UnsupportedOperationException("Setting timers 
>> is only supported on a keyed streams.");
>>              }
>> 
>> So it seems like the documentation is wrong, and you currently can’t use 
>> timers with CoProcessFunction.
>> 
>> If that’s true, I’m curious why. Is it just an implementation detail, or is 
>> there a fundamental architectural problem?
>> 
>> I can see some challenges with needing two onTimerX() methods, and thus 
>> different timer services for each method, etc.
>> 
>> Thanks,
>> 
>> — Ken
>> 
>> --------------------------------------------
>> http://about.me/kkrugler
>> +1 530-210-6378
>> 
> 

Reply via email to