[Mondrian] Mondrian Orchestrator SPI
Pedro Alves
pmgalves at gmail.com
Fri Nov 18 20:46:11 EST 2011
Alright - long flight home and I'd like to look into this.
Initial questions. Reading through that documentation it calls for a
pentaho-analysis-config.xml . Mondrian 3.3 doesn't have that.
If I want to start implementing my backend, how do I register it into
mondrian? Any tips on the best way to start? I can dig the code, but any
help will be useful.
Any existing test case that I could use to test my changes?
Cheers
-pedro
On 30-09-11 12:16 AM, Luc Boudreau wrote:
> Pedro,
>
> Let's take that conversation to the public mailing list, shall we?
>
> Since you'll be writing a hazelcast implementation of the SegmentCache
> SPI, we might throw into the deal a new SPI for Mondrian so we can
> leverage hazelcast's task distribution capabilities.
>
> Hazelcast can return a java.util.concurrent.ExecutorService. For
> Mondrian, this means that it would simply have a new SPI which would
> provide that service to the RolapResultShepherd. The default
> implementation will run the tasks on the local machine, while allowing
> the community to build their own executor service and customize how
> and where the queries are executed by a cluster of Mondrian nodes.
>
> Better yet, we can isolate Mondrian further and create a simpler SPI,
> something along the lines of:
>
> public interface Orchestrator {
>
> public<T> Future<T>execute(FutureTask<T> delta, Type type) throws
> MondrianException;
>
> public enum Task {
>
> /** Task related to the execution of a MDX query coming from
> the user thread. Low priority. **/
> MDX_USER_QUERY(0),
>
> /** Task related to the execution of a sub query. High priority. **/
> MDX_SUB_QUERY(10);
>
> private final int priority;
>
> private Task(int priority) {
> this.priority = priority;
> }
>
> /** Returns the priority of this type of task, relative to other types,
> on a scale of Integer.MIN_VALUE to Integer.MAX_VALUE.
> A reference priority of 0 is given to MDX queries sent by a
> user on a user thread. **/
> public int getPriority(int priority) {
> return this.priority;
> }
> };
> }
>
> I'd like some review from other users of Mondrian on that API, if
> possible. If someone has a better idea, please share.
>
> If you want some more documentation on the SegmentCache SPI, here is a
> list of some resources.
>
> Here is the actual API.
> http://perforce.eigenbase.org:8080/@md=d&cd=//open/mondrian/src/main/mondrian/spi/&cdf=//open/mondrian/src/main/mondrian/spi/SegmentCache.java&rc=s&sr=14276&c=sbY@//open/mondrian/src/main/mondrian/spi/SegmentCache.java
>
> Some explanations on the SPI.
> http://devdonkey.blogspot.com/2011/02/mondrian-spi-segmentcache.html
>
> Here is some more functional documentation explaining how the segment
> cache interacts with Mondrian.
> http://wiki.pentaho.com/display/analysis/Pentaho+Analysis+EE#PentahoAnalysisEE-ArchitectureofaMondriannode
>
>
> Luc
More information about the Mondrian
mailing list