Why does Elasticsearch need to check if both lastAcceptedConfiguration and lastCommitedConfiguration are over the majority threshold when deciding whether to start an election? What is the reasoning behind this, and are there any related blogs or materials that explain this issue?
It's pretty much the same thing as joint consensus in Raft, see section 6 of https://raft.github.io/raft.pdf for more details.