Menu

Is withLocus() method really needed in MondrianOlap4jMember?

Xavier Cho
2012-11-13
2012-11-19
  • Xavier Cho

    Xavier Cho - 2012-11-13

    Hi,

    I happened to run a profiler for a slow query in Saiku, and found out MondrianOlap4jMember.getParentMember() consumes considerable CPU time :

    http://pastebin.com/raw.php?i=xyk0RrxX

    It seems it uses the 'locus' version of the SchemaReader (withLocus() call for every getParentMember() invocation) and incurrs such overhead.

    Isn't it possible to use the original SchemaReader instance instead? Or can it be further optimized to reduce overhead?

    Thanks!

    Xavier

     
  • Julian Hyde

    Julian Hyde - 2012-11-14

    Xavier,

    I have logged a jira case [ http://jira.pentaho.com/browse/MONDRIAN-1292 ] with an experimental patch. The patch was written against the lagunitas branch but will probably work against the master branch if you prefer.

    Please try out the patch, call the new bulk() method as described, and report whether performance is improved. Note that the patch is not a complete fix (it does not help other API calls). If the patch improves performance, let us know and we can implement a full fix. If you do not reply, we are unlikely to do any further work on this.

    Julian

     
  • Xavier Cho

    Xavier Cho - 2012-11-14

    I'll run the profiler again with the patch applied and post the result at the JIRA when it's done.

    Thanks for quick response!

    EDIT: I logged in at JIRA but I still can't see the attachment. Where I should download it?

     

    Last edit: Xavier Cho 2012-11-14
    • Julian Hyde

      Julian Hyde - 2012-11-14

      Remember to also change your code to use the bulk method. If you don't, performance will be the same.

       
      • Xavier Cho

        Xavier Cho - 2012-11-19

        How can I download the patch? I don't see any in issue report.

         

Log in to post a comment.