Description
Today in the server there are two places storing the leader partition info:
1) leaderPartitions list in the ReplicaManager.
2) leaderBrokerIdOpt in the Partition.
1) is used as the ground truth to decide if the server is the current leader for serving requests; 2) is used as the ground truth for reporting leader counts metrics, etc and for the background Shrinking-ISR thread to decide which partition to check. There is a risk that these two ground truth caches are not consistent, and we'd better only make one of them as the ground truth.