It's funny how being forced to write about something forces you to actually see it. When I was asked to write about our new Jenia release just a couple weeks go, I procrastinated a bit, in part because it was hard to remember, given our pace, exactly what was in this release. Now that I've finally gotten around to it, we're already pushing toward our next release, Puck.
In my mind, Jenia was the beginning of the beginning of the end. A lot of behind-the-scenes groundwork went into this release, most notably our new optimizer. This one is pretty much a rewrite of what we had before, with an eye to consolidating what we've learned over the past few months into a more standardized, rules-based approach.
Speaking of rewrites, we have a totally new expressions framework that piggy-backs off of the new typing system we developed in the previous release, Kinu. With these new expressions, we can now easily and efficiently create scalar functions, aggregates and even some internal expressions that take advantage of our nested data format. For instance, you can create an expression that represents an order's priority times the customer's priority_multiplier, where the customer and order are unjoined rows in conceptually distinct streams.
At the same time that we've been rebuilding these internals, we've also been extending and hardening our overall functionality. We now support ORDER BY and query cancellation , and we've improved some internal locking mechanisms for a nice bump in performance. And then there's the usual bug fixes and various new, "smaller" features and optimization rules.
With Puck right around the corner, I'm particularly excited for a new feature that I've been involved with. We've had multi-table group indexes for a while now, but they've only support LEFT JOIN semantics (where the parent is always LEFT of its child). The upcoming release is going to include RIGHT JOIN group indexes, which we've already seen deliver about a 50x performance increase over MySQL in one of our real-world scenarios. This was on a potential customer's machine, at their site, using their data -- so we're pretty excited to get the finishing touches on it and move on to the next big thing.
See you at Puck!
