cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicholas Telford (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-2045) Simplify HH to decrease read load when nodes come back
Date Wed, 29 Jun 2011 18:54:28 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-2045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13057398#comment-13057398
] 

Nicholas Telford commented on CASSANDRA-2045:
---------------------------------------------

bq. It looks like we do a query per hint to look up its version on replay? I think we can
avoid that (one of the benefits of the new approach is we should be able to just do seq reads
of a hint row on replay). Why not just add version in as another subcolumn of the hint entry?

I don't quite follow this. The new schema for hints doesn't really allow sequential reads
of the row. Here's what I currently have:

{noformat}

Old
-----
Hints: {                    // cf
  <dest ip>: {              // key
    <key>: {                // super-column
      <table>-<cf>: null    // column
    }
  }
}

New
------
Hints: {                    // cf
  <dest ip>: {              // key
    <key>: {                // super-column
      <table>-<cf>: <id>    // column
    }
  }
}

HintedMutations: {          // cf
  <dest ip>: {              // key
    <id>: {                 // super-column
      <version>: <mutation> // column
    }
  }
}
{noformat}

The point was to retain backwards compatability with the old Hints (so we don't have to expunge
old ones on upgrade), but if we feel that we gain more by breaking this compatibility I'm
open to it. As has been previously mentioned, losing hints during upgrade isn't the end of
the world as they're little more than an optimization.

> Simplify HH to decrease read load when nodes come back
> ------------------------------------------------------
>
>                 Key: CASSANDRA-2045
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2045
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Chris Goffinet
>            Assignee: Nicholas Telford
>             Fix For: 1.0
>
>         Attachments: 0001-Changed-storage-of-Hints-to-store-a-serialized-RowMu.patch,
0002-Refactored-HintedHandoffManager.sendRow-to-reduce-co.patch, 0003-Fixed-some-coding-style-issues.patch,
0004-Fixed-direct-usage-of-Gossiper.getEndpointStateForEn.patch, 0005-Removed-duplicate-failure-detection-conditionals.-It.patch,
0006-Removed-handling-of-old-style-hints.patch, 2045-v3.txt, CASSANDRA-2045-simplify-hinted-handoff-001.diff,
CASSANDRA-2045-simplify-hinted-handoff-002.diff
>
>
> Currently when HH is enabled, hints are stored, and when a node comes back, we begin
sending that node data. We do a lookup on the local node for the row to send. To help reduce
read load (if a node is offline for long period of time) we should store the data we want
forward the node locally instead. We wouldn't have to do any lookups, just take byte[] and
send to the destination.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message