Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7153711BE1 for ; Thu, 18 Sep 2014 21:31:35 +0000 (UTC) Received: (qmail 81028 invoked by uid 500); 18 Sep 2014 21:31:35 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 80998 invoked by uid 500); 18 Sep 2014 21:31:35 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 80986 invoked by uid 99); 18 Sep 2014 21:31:35 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Sep 2014 21:31:35 +0000 Date: Thu, 18 Sep 2014 21:31:35 +0000 (UTC) From: "Jason Brown (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-6125) Race condition in Gossip propagation MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-6125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14139550#comment-14139550 ] Jason Brown commented on CASSANDRA-6125: ---------------------------------------- +1 on the patch, and I agree with [~brandon.williams]'s thoughts on keeping the protocol simple. As long as versioned values are added to the endpointState in the order in which you assign versions (which this patch provides), there should be no problem. This should be a low bar to clear for anyone who really wants to muck around in gossip-land :). > Race condition in Gossip propagation > ------------------------------------ > > Key: CASSANDRA-6125 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6125 > Project: Cassandra > Issue Type: Bug > Reporter: Sergio Bossa > Assignee: Brandon Williams > Fix For: 2.0.11 > > Attachments: 6125.txt > > > Gossip propagation has a race when concurrent VersionedValues are created and submitted/propagated, causing some updates to be lost, even if happening on different ApplicationStatuses. > That's what happens basically: > 1) A new VersionedValue V1 is created with version X. > 2) A new VersionedValue V2 is created with version Y = X + 1. > 3) V2 is added to the endpoint state map and propagated. > 4) Nodes register Y as max version seen. > 5) At this point, V1 is added to the endpoint state map and propagated too. > 6) V1 version is X < Y, so nodes do not ask for his value after digests. > A possible solution would be to propagate/track per-ApplicationStatus versions, possibly encoding them to avoid network overhead. -- This message was sent by Atlassian JIRA (v6.3.4#6332)