Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
If there're many backend kylin instances, kylin instances will broadcast metadata change asynchronously. In this case, when user try to create a cube by program, whose normal process is to
- load tables
- create model
- create cube
Since this process is not atomic and the related three requests will be sent to backend instances randomly, it probably causes exceptions due to the metadata update delay.
For example, if there're two kylin instances, K1 & K2. User sends "load tables" request to K1, then sends "create model" request to K2. If K2 is not notified with metadata update in time, it will fail to initialize the model and throw exceptions.
To deal with this issue, it's better to create a fat API to create cube & delete cube, which will make it possible to send all the step request to one server.