cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-8458) Avoid streaming from tmplink files
Date Thu, 11 Dec 2014 17:45:13 GMT

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

Benedict edited comment on CASSANDRA-8458 at 12/11/14 5:45 PM:
---------------------------------------------------------------

We could also try and figure out how/why this happens, as it should be able to stream safely.

Does it only happen if streaming a range that wraps zero (i.e. from +X, to -Y)? 

edit: To elaborate, I suspect the broken bit is that our dfile/ifile objects don't actually
truncate the readable range - only our indexed decoratedkey range is truncated. In sstable.getPositionsForRanges
we just return the end of the file if the range goes past the range of the file; in this case
we could stream partially written data. If so, we could fix by simply making sstable.getPositionsForRanges()
lookup the start position of the last key in the file, and always ensure we leave a key's
overlap between the dropped sstables and the replacement.


was (Author: benedict):
We could also try and figure out how/why this happens, as it should be able to stream safely.

Does it only happen if streaming a range that wraps zero (i.e. from +X, to -Y)?

> Avoid streaming from tmplink files
> ----------------------------------
>
>                 Key: CASSANDRA-8458
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8458
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Marcus Eriksson
>            Assignee: Marcus Eriksson
>             Fix For: 2.1.3
>
>
> Looks like we include tmplink sstables in streams in 2.1+, and when we do, sometimes
we get this error message on the receiving side: {{java.io.IOException: Corrupt input data,
block did not start with 2 byte signature ('ZV') followed by type byte, 2-byte length)}}.
I've only seen this happen when a tmplink sstable is included in the stream.
> We can not just exclude the tmplink files when starting the stream - we need to include
the original file, which we might miss since we check if the requested stream range intersects
the sstable range.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message