Pentaho Analysis - Mondrian
  1. Pentaho Analysis - Mondrian
  2. MONDRIAN-1076

Add CacheControl API to flush members from dimension cache

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Unknown Unknown
    • Resolution: Fixed
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.
    • QA Validation Status:
      Not Yet Validated

      Description

      Add a method to allow members to be flushed from the cache.

      Dimension cache control -- see MONDRIAN-428 -- allows you to add, move, update, and delete members in cache but it doesn't allow members to be flushed. This feature would provide flush. The next time you reference that member, Mondrian would re-query the database.

      The cache is a map from member to a list of its children. So, if you flush '[Stores].[USA].[CA]' it would remove the children of [CA], e.g. [San Francisco], [Fresno], but not the [CA] member itself. If you want to flush [CA], you need to call the method on its parent [USA]. That would flush [CA] but also siblings such as [USA].[OR] and [USA].[WA].

      If you call flushMemberDescendants on the 'all' member, it effectively flushes the whole hierarchy. The 'all' member is immutable, and not read from the database, so it cannot be flushed.

      Calling flush on the hierarchy's null member (see Hierarchy.getNullMember) also flushes all members in the hierarchy. (Useful if the hierarchy has no 'all' member.)

        Activity

        Hide
        Julian Hyde added a comment -
        Changing description; was ("Add method CacheControl.flushMemberDescendants"). Turns out that the existing method "CacheControl.flush(MemberSet)" was perfect for the job; it just wasn't doing it.
        Show
        Julian Hyde added a comment - Changing description; was ("Add method CacheControl.flushMemberDescendants"). Turns out that the existing method "CacheControl.flush(MemberSet)" was perfect for the job; it just wasn't doing it.
        Hide
        Julian Hyde added a comment -
        Fixed in change 14968.
        Show
        Julian Hyde added a comment - Fixed in change 14968.

          People

          • Assignee:
            Unassigned User
            Reporter:
            Julian Hyde
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: