[
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