Liu created FLINK-10949:
---------------------------

             Summary: When use flink-1.6.2's intervalJoin funtion, the thread 
is stucked in rockdb's seek for too long time
                 Key: FLINK-10949
                 URL: https://issues.apache.org/jira/browse/FLINK-10949
             Project: Flink
          Issue Type: Bug
          Components: State Backends, Checkpointing
    Affects Versions: 1.6.2
         Environment: flink1.6.2, linux
            Reporter: Liu


0down vote 
[favorite|https://stackoverflow.com/questions/53393775/when-use-flink-1-6-2s-intervaljoin-funtion-the-thread-is-stucked-in-seek-for-t]
 
I am using IntervalJoin function to join two streams within 10 minutes. As 
below:

 
{{labelStream.intervalJoin(adLogStream)}}
{{           .between(Time.milliseconds(0), Time.milliseconds(600000)) }}
{{           .process(new processFunction())}}
{{           .sink(kafkaProducer)}}
labelStream and adLogStream are proto-buf class that are keyed by Long id.

Our two input-streams are huge. After running about 30minutes, the output to 
kafka go down slowly, like this: 

!https://i.stack.imgur.com/UW4V1.png!

When data output begins going down, I use jstack and pstack sevaral times to 
get these: 

!https://i.stack.imgur.com/uxOZn.png!

!https://i.stack.imgur.com/JTyIC.png!

It seems the program is stucked in rockdb's seek. And I find that some rockdb's 
srt file are accessed slowly by iteration. 
[!https://i.stack.imgur.com/Avdyo.png!|https://i.stack.imgur.com/Avdyo.png]

I have tried several ways:

{{1)Reduce the input amount to half. This works well.}}

{{ 2)Replace labelStream and adLogStream with simple Strings. This way, data 
amount will not change. This works well.}}

{{ 3)Use PredefinedOptions like SPINNING_DISK_OPTIMIZED and 
SPINNING_DISK_OPTIMIZED_HIGH_MEM. This still fails.}}

{{ 4)Use new versions of rocksdbjni. This still fails.}}

{{Can anyone give me some suggestions? Thank you very much.}}



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

Reply via email to