hycdong commented on issue #895:
URL: 
https://github.com/apache/incubator-pegasus/issues/895#issuecomment-1022783434


   Thanks for @acelyc111 reply, I got the point. The problem is that for 1 
replica table, meta server wouldn't know if the data lost. I think it is a 
enhancement for DDD case.
   
   > Even for the 3 replica factor table, we can check the consistency of 
decree/ballot on meta server/zk and the primary replica.
   
   Firstly, in any replica factor, ballot is only controlled by meta server, it 
is unnecessary to check its consistency.
   
   Secondly, in current implementation, meta server doesn't do any decree 
consistency check, the decree even not persistent on zk only in meta memory. In 
most our production environment, table has 3 replica, meta server as the 
cluster controller, only cares which replica has newer data, and meta server 
will compare decree only in DDD situation. If 3 replica factor only lost 
primary. meta server will not  decree compare, just upgrade one of it secondary.
   
   Back to your case, when your case happened, replica server would be willing 
to core but not meta server. Meta server collect decree information from 
replica servers, it can not compare the exact decree with the reported one. You 
can add a decree check when replica server receive the assign_primary request.
   
   Hoping my answer is helpful, expecting your reply~


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to