Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-10570

State grows unbounded when "within" constraint not applied

    Details

      Description

      We have been running some failure monitoring using the CEP library. Simple stuff that should probably have been implemented with a window, rather than CEP, but we had already set the project up to use CEP elsewhere and it was trivial to add this.

      We ran the following pattern (on 1.4.2):

      begin(PURCHASE_SEQUENCE, AfterMatchSkipStrategy.skipPastLastEvent())
              .subtype(PurchaseEvent.class)
              .times(100)
      

      and then flat selected the responses if the failure ratio was over a certain threshold.

      With 1.6.1, the state size of the CEP operator for this pattern grows unbounded, and eventually destroys the job with an OOM exception. We have many CEP operators in this job but all the rest use a "within" call.

      In 1.4.2, it seems events would be discarded once they were no longer in the 100 most recent, now it seems they are held onto indefinitely.

      We have a workaround (we're just going to add a "within" call to force the CEP operator to discard old events), but it would be useful if we could have the old behaviour back.

      Please let me know if I can provide any more information.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                dawidwys Dawid Wysakowicz
                Reporter:
                Jamalarm Thomas Wozniakowski
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: