Recent posts
- Coral8 5.5: Snapshot Queries with Live Updates
- Cool Demo: Coral8 for Homeland Security
- What's a CEP engine, anyway?
- Webinar: Third Generation Algorithmic Trading & Execution with Complex Event Processing
- On Streaming SQL Standards
- Webinar: Real Time Risk, Profit & Loss Applications
- Webinar: Real Time Risk, Profit & Loss Applications
- Is CEP Mature? Or a Curious Case of Information Asymmetry
- What Makes a Programming Language Successful?
- Complexity Scorecard
Syndication
On Streaming SQL Standards
Given that this paper is published by Coral8's competitors, you may be surprised to hear that there is a lot in this paper that I very much agree with. First of all, I certainly agree that we need a streaming SQL standard. We all have been talking about this for a while. Yet some folks in the industry have always made it sound like creating a streaming SQL standard was easy. The paper, for the first time, shows why this is not so, even though it covers a very small portion of the hypothetical language standard - the execution model. It does not talk about syntax, semantics, data types, built-in operators, integration with databases and other external systems, and a host of other relevant issues.
But let's look a what this paper is actually talking about:
As the industry matures, there is a need for a single standard language. It is tempting to say that such a language is simply an agreement over simple syntactic differences. About a year ago, Oracle and Streambase embarked on a project to create a convergence language in which these simple differences would be resolved. What emerged was a realization that there were fundamental differences in the basic model that made convergence difficult. From both sides, there were things that one model could do that the other model could not do. What was needed was a new model that spanned the original two.
To really understand the two execution models you'll have to read the paper, but to give you a flavor of what we are talking about here, I'll just say that the Oracle model is time-driven, and it treats tuples with the same timestamp as happening simultaneously and being a part of a batch. The Streambase model is tuple-driven, and tuples are always considered ordered. There are no batches.
The differences in the two models give rise to very different behaviors, so the authors of the paper come up with a unified model, which combines the benefits of the two models. Do I like the new model? Of course I like it, because this model is very close to the model that Coral8 has been using for the past few years! Our execution model is also batch-driven, and the order of tuples is preserved. You'll have to read the paper for more details, though.
Now, while I think this paper is quite useful, I'd like to call for a more open standards process. Right now there are multiple cliques of companies trying to come up with a standard, and the work is not progressing very fast. It's a hard problem, as this paper demonstrates! Maybe we'd save the esteemed authors of this paper some time if we told them about our execution model. At the very least, we'd have pointed out that their understanding of how CCL works (from the Related Work section) is quite wrong! :)
Mark Tsimelzon, President & CTO, Coral8
- Mark's blog
- Login or register to post comments

REGARDING SQL STANDARDS