[Mondrian] Actor-based cache manager
jhyde at pentaho.com
Mon Nov 14 14:04:22 EST 2011
We are re-architecting mondrian's cache management to use an actor model. This means that one thread will have sole access to the cache of global and external segments, and we can introduce other data structures such as a segment index. Other threads (in particular those executing MDX queries) will communicate by message-passing.
The goal is to improve performance, the degree of concurrency, and to reduce the complexity of our parallel code. Message-passing is a bit more expensive than direct method calls, but it allows us to radically reduce the amount of locking in the code, and the trick is to introduce message-passing at just the right "cut-point" in the architecture. (These are the usual benefits of the actor model.)
I have called the project "pacino" (a famous method actor, geddit?). We want to get the code back into the main line as soon as possible, then release probably as mondrian-3.3.1.
I have created a branch mondrian_dev_to_pacino, path //open/mondrian-release/pacino.
More information about the Mondrian