You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "hongbin ma (JIRA)" <ji...@apache.org> on 2016/11/16 06:40:58 UTC

[jira] [Created] (KYLIN-2198) Add a framework to allow major changes in DimensionEncoding

hongbin ma created KYLIN-2198:
---------------------------------

             Summary: Add a framework to allow major changes in DimensionEncoding
                 Key: KYLIN-2198
                 URL: https://issues.apache.org/jira/browse/KYLIN-2198
             Project: Kylin
          Issue Type: Improvement
            Reporter: hongbin ma
            Assignee: hongbin ma


Recently a fatal error is found in one of the DimensionEncoding called IntegerDimEnc(KYLIN-2191). The bug fix will cause cube content differs after applying the bug fix. Such result will confuse users.

Since major changes on DimensionEncoding is always possible, either due to optimization purpose or bug fix purpose. A framework that takes into consideration of "DimensionEncoding version" is necessary. By default all DimensionEncoding has version number 1. Whenever a major change is applied on a DimensionEncoding subclass (for example IntegerDimEnc), instead of applying the change directly on the DimensionEncoding subclass (for example IntegerDimEnc), we fork a new subclass of DimensionEncoding (for example IntegerDimEncV2), which increases the original class's version number. The "encode name" remains same(for example "integer")

After a DimensionEncoding with newer version is published in a new Kylin release, legacy cubes can still use the older DimensionEncoding. However they have take the risky of using the old DimensionEncoding.

The web GUI will only prompt users with the latest version of DimensionEncodings. For legacy cubes, a label of "deprecated" will be shown for out-dated DimensionEncodings.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)