Concepts in Streaming SQL
SQLstream's marketing head Rick Saletta just wrote a layman's guide to streaming SQL. It's short, sweet, entirely buzzword-free, and a good introduction to streaming queries. So I thought I'd share the...
View ArticleNumbers everyone should know
Jeffrey Dean recently gave a talk "Building Software Systems at Google and Lessons Learned" at Stanford (video). One of his slides was the following list of numbers:L1 cache reference0.5nsBranch...
View ArticleArchitectural shuffling in mondrian's XMLA and olap4j servers
As a software architect, some of my most interesting work doesn't deliver any additional functionality to end-users, but reorganizes the architecture to make great things possible in future. Since...
View ArticleAn experiment with the Linux scheduler
I was curious to see how the Linux scheduler would manifest from a program's perspective, so today I did an experiment.I wrote a single-threaded program running a simple loop. All the loop does is to...
View Article"Just another big pile of data"
Jeff Jonas writes about the challenges of managing data privacy when the data concerned is Big Data. He advocates taking a real-time approach to auditing user behavior:Real-time active audits. It is...
View ArticleOracle, Hudson and Jenkins
I've been following the furore about the Hudson open source project with some interest and amusement. Oracle owns the trademark on the name Hudson (because the original developer worked for Sun at the...
View ArticleScalable caching in Mondrian
Wouldn't it be great if Mondrian's cache could be shared between several Mondrian instances, use memory outside the JVM or even across several machines, and scale as the data size or computation effort...
View Articleolap4j version 1.0 released
Today we launched version 1.0 of olap4j, the open standard API for accessing analytic databases.It's worth mentioning that version 1.0 is a big deal for an open source project. The tag implies maturity...
View ArticleScripted plug-ins in LucidDB and Mondrian
I saw a demo last week of scripted user-defined functions in LucidDB, and was inspired this weekend to add them to Mondrian.Kevin Secretan of DynamoBI has just contributed some extensions to LucidDB to...
View ArticleRemoving Mondrian's 'high cardinality dimension' feature
I would like to remove the 'high cardinality dimension' feature in mondrian 4.0.To specify that a dimension is high-cardinality, you set the highCardinality attribute of the Dimension element to true....
View ArticleRoll your own high-performance Java collections classes
The Java collections framework is great. You can create maps, sets, lists with various element types, various performance characteristics (e.g. if you want O(1) insert, use a linked list), iterate over...
View ArticleYellowfin BI release 5.2 moves to olap4j
According to their press release, Yellowfin BI version 5.2 "includes a significant OLAP overhaul, with the introduction of OLAP4j and support for PALO, BW as well as enhanced connectivity for SQL...
View ArticleReal-Time Seismic Monitoring
Marc Berkowitz wrote a blog post describing an application of SQLstream to power a seismic monitoring project that is a collaboration between several leading research institutions.The project is...
View ArticleHow Mondrian names hierarchies
You may or may not be aware of the property mondrian.olap.SsasCompatibleNaming. It controls the naming of elements, in particular how Mondrian names hierarchies when there are multiple hierarchies in...
View ArticleChanges to Mondrian's caching architecture
I checked in some architectural changes to Mondrian's cache this week.First the executive summary:1. Mondrian should do the same thing as it did before, but scale up better to more concurrent queries...
View Articleolap4j releases version 1.0.1, switches to Apache license
I am pleased to announce the release of olap4j version 1.0.1.As the version number implies, this is basically a maintenance release. It is backwards compatible with version 1.0.0, meaning that any...
View ArticleAuto-generated date dimension tables
It seems that whenever I have a cross-continent flight, Mondrian gets a new feature. This particular flight was from Florida back home to California, and this particular feature is a time-dimension...
View ArticleHow should Mondrian get table and column statistics?
When evaluating queries, Mondrian sometimes needs to make decisions about how to proceed, and in particular, what SQL to generate. One decision is which aggregate table to use for a query (or whether...
View Article"Big Data" is dead... long live Big Data Architecture
Now that just about every data-management and business intelligence product claims that it handles "Big Data", the term is approaching zero information content.So, I'm shorting the term "Big Data". In...
View ArticleData-oriented programming for the rest of us
I have been a fan of LINQ for several years (my Saffron project covered many of the same themes) but I've had difficulty explaining why it isn't just a better Hibernate. In his article “Why LINQ...
View Article