Hitachi Vantara Pentaho Community Forums
Results 1 to 4 of 4

Thread: [Mondrian] Flush(Cube) does not flush the Evaluated members like.Members and .Children

  1. #1
    Venkatesh U Guest

    Default [Mondrian] Flush(Cube) does not flush the Evaluated members like.Members and .Children

    Hi All,
    I have a situation, where after flushing a Cube through cache control API,
    the cube's data does get flushed. But the members of Evaluated functions
    like [Level].Members and [Level].Children does not get flushed. Please see
    the below log, I am able to get the value for the newly inserted dimension
    value [D1_4], when accessed through absolute reference, but [D1].Members
    does not include the newly added value [D1_4], though the cube is flushed.

    Attachment:Caching.zip contains simple java file I used for testing, log
    file output, Schema file, mondrian.properties and log4j properties

    The scenario is
    1. Dimension tables get added with new values.
    2. Flush the cube through flush(Cube) API

    Below is what happens

    1. Before Flushing:
    Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    {[D1].Members} on 1
    FROM [testCube]
    Value
    ======= ==== =======
    All D1s 264,600
    D1_1 10,800
    D1_2 243,000
    D1_3 10,800

    Inserted a row in TEST_DIM_1:sql:insert into TEST_DIM_1 values(4,'D1_4')
    Inserted a row in TEST_FACT sql:insert into TEST_FACT values(4,3,3,900)
    Commited the changed to DB

    2. After Flushing:
    Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    {[D1].Members} on 1
    FROM [testCube]
    Value
    ======= ==== =======
    All D1s 265,500
    D1_1 10,800
    D1_2 243,000
    D1_3 10,800

    3. After Flushing:
    Mdx QuerySELECT {[D1].[D1_4]} on 0
    FROM [testCube]
    mondrian.rolap.RolapAllCubeMember
    D1_4
    ====
    900

    _______________________________________________
    Mondrian mailing list
    Mondrian (AT) pentaho (DOT) org
    http://lists.pentaho.org/mailman/listinfo/mondrian

  2. #2
    Julian Hyde Guest

    Default RE: [Mondrian] Flush(Cube) does not flush the Evaluated memberslike.Members and .Children

    The cache control API only affects cells. That is by design.

    There are is some beta functionality to flush members of dimensions. See
    <http://mondrian.pentaho.com/api/mondrian/olap/CacheControl.html>
    http://mondrian.pentaho.com/api/mond...heControl.html, in
    particular methods involving MemberEditCommand and MemberSet.

    Julian




    _____

    From: mondrian-bounces (AT) pentaho (DOT) org [mailto:mondrian-bounces (AT) pentaho (DOT) org] On
    Behalf Of Venkatesh U
    Sent: Tuesday, April 05, 2011 3:06 AM
    To: Mondrian developer mailing list
    Subject: [Mondrian] Flush(Cube) does not flush the Evaluated members
    like.Members and .Children


    Hi All,
    I have a situation, where after flushing a Cube through cache control API,
    the cube's data does get flushed. But the members of Evaluated functions
    like [Level].Members and [Level].Children does not get flushed. Please see
    the below log, I am able to get the value for the newly inserted dimension
    value [D1_4], when accessed through absolute reference, but [D1].Members
    does not include the newly added value [D1_4], though the cube is flushed.

    Attachment:Caching.zip contains simple java file I used for testing, log
    file output, Schema file, mondrian.properties and log4j properties

    The scenario is
    1. Dimension tables get added with new values.
    2. Flush the cube through flush(Cube) API

    Below is what happens

    1. Before Flushing:
    Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    {[D1].Members} on 1
    FROM [testCube]
    Value
    ======= ==== =======
    All D1s 264,600
    D1_1 10,800
    D1_2 243,000
    D1_3 10,800

    Inserted a row in TEST_DIM_1:sql:insert into TEST_DIM_1 values(4,'D1_4')
    Inserted a row in TEST_FACT sql:insert into TEST_FACT values(4,3,3,900)
    Commited the changed to DB

    2. After Flushing:
    Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    {[D1].Members} on 1
    FROM [testCube]
    Value
    ======= ==== =======
    All D1s 265,500
    D1_1 10,800
    D1_2 243,000
    D1_3 10,800

    3. After Flushing:
    Mdx QuerySELECT {[D1].[D1_4]} on 0
    FROM [testCube]
    mondrian.rolap.RolapAllCubeMember
    D1_4
    ====
    900



    _______________________________________________
    Mondrian mailing list
    Mondrian (AT) pentaho (DOT) org
    http://lists.pentaho.org/mailman/listinfo/mondrian

  3. #3
    Venkatesh U Guest

    Default Re: [Mondrian] Flush(Cube) does not flush the Evaluated memberslike.Members and .Children

    Hi Julian,
    I tried setting the mondrian.properties configuration
    mondrian.rolap.EnableRolapCubeMemberCache<http://mondrian.pentaho.com/api/mondrian/olap/MondrianProperties.html#EnableRolapCubeMemberCache>
    to
    false and tried using the MemberEditCommand, I created a deletecommand and
    tried to execute it, it throws an NPE. It does not seem to work. Is there
    any test available which i can run to verify if this feature works?

    Thanks,
    Venki

    On Tue, Apr 5, 2011 at 9:35 PM, Julian Hyde <jhyde (AT) pentaho (DOT) com> wrote:

    > The cache control API only affects cells. That is by design.
    >
    > There are is some beta functionality to flush members of dimensions. See
    > http://mondrian.pentaho.com/api/mond...heControl.html, in
    > particular methods involving MemberEditCommand and MemberSet.
    >
    > Julian
    >
    >
    > ------------------------------
    > *From:* mondrian-bounces (AT) pentaho (DOT) org [mailto:mondrian-bounces (AT) pentaho (DOT) org]
    > *On Behalf Of *Venkatesh U
    > *Sent:* Tuesday, April 05, 2011 3:06 AM
    > *To:* Mondrian developer mailing list
    > *Subject:* [Mondrian] Flush(Cube) does not flush the Evaluated members
    > like.Members and .Children
    >
    > Hi All,
    > I have a situation, where after flushing a Cube through cache control
    > API, the cube's data does get flushed. But the members of Evaluated
    > functions like [Level].Members and [Level].Children does not get flushed.
    > Please see the below log, I am able to get the value for the newly inserted
    > dimension value [D1_4], when accessed through absolute reference, but
    > [D1].Members does not include the newly added value [D1_4], though the cube
    > is flushed.
    >
    > Attachment:Caching.zip contains simple java file I used for testing, log
    > file output, Schema file, mondrian.properties and log4j properties
    >
    > The scenario is
    > 1. Dimension tables get added with new values.
    > 2. Flush the cube through flush(Cube) API
    >
    > Below is what happens
    >
    > 1. Before Flushing:
    > Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    > {[D1].Members} on 1
    > FROM [testCube]
    > Value
    > ======= ==== =======
    > All D1s 264,600
    > D1_1 10,800
    > D1_2 243,000
    > D1_3 10,800
    >
    > Inserted a row in TEST_DIM_1:sql:insert into TEST_DIM_1 values(4,'D1_4')
    > Inserted a row in TEST_FACT sql:insert into TEST_FACT values(4,3,3,900)
    > Commited the changed to DB
    >
    > 2. After Flushing:
    > Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    > {[D1].Members} on 1
    > FROM [testCube]
    > Value
    > ======= ==== =======
    > All D1s 265,500
    > D1_1 10,800
    > D1_2 243,000
    > D1_3 10,800
    >
    > 3. After Flushing:
    > Mdx QuerySELECT {[D1].[D1_4]} on 0
    > FROM [testCube]
    > mondrian.rolap.RolapAllCubeMember
    > D1_4
    > ====
    > 900
    >
    >
    > _______________________________________________
    > Mondrian mailing list
    > Mondrian (AT) pentaho (DOT) org
    > http://lists.pentaho.org/mailman/listinfo/mondrian
    >
    >


    _______________________________________________
    Mondrian mailing list
    Mondrian (AT) pentaho (DOT) org
    http://lists.pentaho.org/mailman/listinfo/mondrian

  4. #4
    Julian Hyde Guest

    Default RE: [Mondrian] Flush(Cube) does not flush the Evaluated memberslike.Members and .Children

    See MemberCacheControlTest.


    _____

    From: Venkatesh U [mailto:venkatesh20 (AT) gmail (DOT) com]
    Sent: Tuesday, April 05, 2011 10:17 AM
    To: jhyde (AT) pentaho (DOT) com; Mondrian developer mailing list
    Subject: Re: [Mondrian] Flush(Cube) does not flush the Evaluated members
    like.Members and .Children


    Hi Julian,
    I tried setting the mondrian.properties configuration
    mondrian.rolap.EnableRolapCubeMemberCache
    <http://mondrian.pentaho.com/api/mond...ies.html#Enabl
    eRolapCubeMemberCache> to false and tried using the MemberEditCommand, I
    created a deletecommand and tried to execute it, it throws an NPE. It does
    not seem to work. Is there any test available which i can run to verify if
    this feature works?


    Thanks,
    Venki


    On Tue, Apr 5, 2011 at 9:35 PM, Julian Hyde <jhyde (AT) pentaho (DOT) com> wrote:


    The cache control API only affects cells. That is by design.

    There are is some beta functionality to flush members of dimensions. See
    <http://mondrian.pentaho.com/api/mondrian/olap/CacheControl.html>
    http://mondrian.pentaho.com/api/mond...heControl.html, in
    particular methods involving MemberEditCommand and MemberSet.

    Julian




    _____

    From: mondrian-bounces (AT) pentaho (DOT) org [mailto:mondrian-bounces (AT) pentaho (DOT) org] On
    Behalf Of Venkatesh U
    Sent: Tuesday, April 05, 2011 3:06 AM
    To: Mondrian developer mailing list
    Subject: [Mondrian] Flush(Cube) does not flush the Evaluated members
    like.Members and .Children


    Hi All,
    I have a situation, where after flushing a Cube through cache control API,
    the cube's data does get flushed. But the members of Evaluated functions
    like [Level].Members and [Level].Children does not get flushed. Please see
    the below log, I am able to get the value for the newly inserted dimension
    value [D1_4], when accessed through absolute reference, but [D1].Members
    does not include the newly added value [D1_4], though the cube is flushed.

    Attachment:Caching.zip contains simple java file I used for testing, log
    file output, Schema file, mondrian.properties and log4j properties

    The scenario is
    1. Dimension tables get added with new values.
    2. Flush the cube through flush(Cube) API

    Below is what happens

    1. Before Flushing:
    Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    {[D1].Members} on 1
    FROM [testCube]
    Value
    ======= ==== =======
    All D1s 264,600
    D1_1 10,800
    D1_2 243,000
    D1_3 10,800

    Inserted a row in TEST_DIM_1:sql:insert into TEST_DIM_1 values(4,'D1_4')
    Inserted a row in TEST_FACT sql:insert into TEST_FACT values(4,3,3,900)
    Commited the changed to DB

    2. After Flushing:
    Mdx QuerySELECT [Measures].[Value] ON COLUMNS,
    {[D1].Members} on 1
    FROM [testCube]
    Value
    ======= ==== =======
    All D1s 265,500
    D1_1 10,800
    D1_2 243,000
    D1_3 10,800

    3. After Flushing:
    Mdx QuerySELECT {[D1].[D1_4]} on 0
    FROM [testCube]
    mondrian.rolap.RolapAllCubeMember
    D1_4
    ====
    900



    _______________________________________________
    Mondrian mailing list
    Mondrian (AT) pentaho (DOT) org
    http://lists.pentaho.org/mailman/listinfo/mondrian





    _______________________________________________
    Mondrian mailing list
    Mondrian (AT) pentaho (DOT) org
    http://lists.pentaho.org/mailman/listinfo/mondrian

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.