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

State grows unbounded when "within" constraint not applied

    XMLWordPrintableJSON

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

              dwysakowicz Dawid Wysakowicz
              Jamalarm Thomas Wozniakowski
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: