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]
