Monday, September 8, 2008

CEP standard, really?

The recently published paper by Oracle and StreamBase has triggered some deep echo in the CEP blogosphere.
The paper "Towards A Streaming SQL Standard" which was promoted in a StreamBase sponsored press release first appeared from the VLDB / Very Large Data Base Conference which took place on August 28, 2008 and is a joint work from Oracle, StreamBase and Stanford/Cornell universities (full paper).

Marc Adler from the user camp posted twice here and there on that matter, also asking Coral8 vendor to comment, which they did, and few days later, Apama also commented here although trying to move the debate "to mine (event processing language) is better than yours".

Overall, the comments are a mix of
  • "how that can be call standardization effort ?"
  • "how much an end user does care about the differences between X and Y engines as long as each engine documentation is clear about its behavior"
  • "how a new SPREAD operator would be more of a solution than an output clause" - a so called "big switch" approach that is available in Coral8, Esper, and likely others.
It all sounds like the title of the paper ("... standards") and its context (publication in a mostly academic conference (not a user conference)) got disconnected - on purpose or not.

There are some facts I would like to remind everyone:
  • Standards are not driven by having 2 actors work or study together (whatever there respective market caps or marketing loudness). Standards are driven by acceptance - which is in itself a de-jure or a de-facto acceptance. To date, neither StreamBase nor Oracle advertise a product that implements what they advocate.
  • This is an academic work ie mostly R&D from Oracle. This is not claimed as going toward product direction change for Oracle nor StreamBase. I think this is far from whatever road a company like Oracle would follow for a standardization effort and this is more close to StreamBase hooking on the elephant to issue a press release that ranks #4 on Google when searching "Oracle CEP".
  • Oracle itself has more than one event processing language and implementation. The one from WebLogic Event Server (which comes from BEA acquisition hence inherits from Esper capabilities given the relationship between EsperTech and BEA) does have the so called "big switch" approach that is illustrated in the paper. See docs from Oracle site about the Oracle Complex Event Processing 2.0 (ie rebranded WebLogic Event Server 2.0)
The Oracle product doc itself precisely illustrates this big switch like this:
SELECT * FROM StockTickEvent RETAIN 5 EVENTS OUTPUT EVERY 90 SECONDS
which in Esper would be
select * from StockTickEvent.win:length(5) output every 1.5 minutes

A better title in that regards would have been "Unifying tuple based and time based processing in event streaming engines" (far less attractive), or simply the one used by complexevents.com to announce the paper "StreamBase and Oracle team on CEP research" (although not a suitable title for an academic publication) - nothing more, nothing less - and blogosphere should take some wisdom reacting to such an initiative. Collaboration is always a good thing, and obviously always starts with 2 actors.

No comments: