[
https://issues.apache.org/jira/browse/CASSANDRA-6246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14207741#comment-14207741
]
sankalp kohli commented on CASSANDRA-6246:
------------------------------------------
"5) ExecutionSorter.getOrder(). Here if condition uncommitted.size() == 0 is
always true. Also loadedScc is empty as we don't insert into it.
ids are being put into uncommitted in the addInstance method, so it won’t
always equal 0, good catch on the loadedScc though. I’ll get that fixed."
We only call ExecutionSorter.getOrder() in the else of
executionSorter.uncommitted.size() > 0 in ExecuteTask.run(). So we can remove
the check.
"Missing instances are sent both ways. When a node responds to a preaccept
message, if it believes the leader is missing an instance, it will include it
in it's response. Once the leader has received all the responses, if it thinks
any of the replicas are missing instances, it will send them along."
I think there is not need to send them. Since we are sending all the
dependencies of the endpoint in the response to the leader, leader can do the
diff. There is no point sending duplicate information over the wire. So I think
in PreacceptVerbHandler, we don't need to calculate and send the missing
instances.
"Speaking of which, the default of not waiting for an fsync before considering
a write successful is a more serious problem for paxos/epaxos, since a paxos
node forgetting it's state can cause inconsistencies."
I agree we can tackle this later. But here it is more dangerous because once
an endpoint is out of sync, no further updates can be applied as condition
checks are local. In current paxos, if a machine is in this situation and could
not apply the commit. The next commit will still be applied as condition checks
are at quorum level.
> EPaxos
> ------
>
> Key: CASSANDRA-6246
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6246
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Jonathan Ellis
> Assignee: Blake Eggleston
> Priority: Minor
>
> One reason we haven't optimized our Paxos implementation with Multi-paxos is
> that Multi-paxos requires leader election and hence, a period of
> unavailability when the leader dies.
> EPaxos is a Paxos variant that requires (1) less messages than multi-paxos,
> (2) is particularly useful across multiple datacenters, and (3) allows any
> node to act as coordinator:
> http://sigops.org/sosp/sosp13/papers/p358-moraru.pdf
> However, there is substantial additional complexity involved if we choose to
> implement it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)