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)

Reply via email to