[ 
https://issues.apache.org/jira/browse/KYLIN-4231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17047620#comment-17047620
 ] 

Shao Feng Shi commented on KYLIN-4231:
--------------------------------------

If possible, only route all write to one Kylin instance, and query to others

> write conflict while add model by different query server parallelly
> -------------------------------------------------------------------
>
>                 Key: KYLIN-4231
>                 URL: https://issues.apache.org/jira/browse/KYLIN-4231
>             Project: Kylin
>          Issue Type: New Feature
>            Reporter: ZhouKang
>            Priority: Major
>
> a kylin cluster have more than 1 query server, all of them are the backend 
> server of nginx.
> when our user use RESTful API to create model in the *same* project 
> parallelly, there will be a problem.
> the server returns:
> {code:java}
> // code placeholder
> Overwriting conflict /project/learn_kylin.json, expect old TS 1572596034269, 
> but it is 1572596042929
> {code}
> BUT, the model '/model_desc/xxx.json' has already in metastore, so the next 
> time our user want
> to retry (create model), he will get:
> {code:java}
> // code placeholder
> Overwriting conflict /model_desc/test_945.json, expect old TS 0, but it is 
> 1572596193812
> {code}
> I think the problem is that:
> when server A receive PUT model, it will change the project info, but the 
> cache update broadcast cannot be processed by server B before server B 
> processing another model creation request.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to