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)