cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicolas DOUILLET (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-8058) local consistency level during boostrap (may cause a write timeout on each write request)
Date Mon, 06 Oct 2014 08:37:34 GMT


Nicolas DOUILLET commented on CASSANDRA-8058:

In the same topic, I think that something else is not consistent, on bootstrapping, concerning
the Unavailability. 

In {{org.apache.cassandra.db.ConsistencyLevel#assureSufficientLiveNodes}} we're using the
concatenation of the natural endpoints and the pending endpoints to determine whether there
is enough alive nodes. 
The number of required nodes, in that case, is only based on the table configuration and the
consistency level.

However, later, in order to validate a write request, the way we compute the number of required
nodes is slightly different because we're adding the number of pending nodes.

I think that, during a bootstrap, some requests may end with a timeout, while they could/would
had been detected as unavailable before.

> local consistency level during boostrap (may cause a write timeout on each write request)
> -----------------------------------------------------------------------------------------
>                 Key: CASSANDRA-8058
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Nicolas DOUILLET
>            Priority: Critical
>             Fix For: 1.2.19
>         Attachments: 0001-during-boostrap-block-only-for-local-pending-endpoin.patch.txt
> Hi, 
> During bootstrap, for {{LOCAL_QUORUM}} and {{LOCAL_ONE}} consistencies, the {{DatacenterWriteResponseHandler}}
were waiting for pending remote endpoints.
> I think that's a regression, because it seems that it has been correctly implemented
in CASSANDRA-833, but removed later.
> It was specifically annoying in the case of {{RF=2}} and {{cl=LOCAL_QUORUM}}, because
during a bootstrap of a remote node, all requests ended in {{WriteTimeout}}, because they
were waiting for a response that would never happen.

This message was sent by Atlassian JIRA

View raw message