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

Benedict commented on CASSANDRA-6974:
-------------------------------------

Hi Vijay,

It did actually matter for old counters, I think. Order probably doesn't matter 
now, but I can't say with certainty. That said, we do maintain it in all other 
situations, so I feel more comfortable maintaining if possible.

However, either way we mostly use the checksum to provide safety for the replay 
of logs under the normal (non-archived) scenario. Otherwise there's the risk 
(without zeroing the file) of randomly encountering a portion of the CL that is 
old directly proceeding the end of the latest set of log messages to be synced 
(admittedly this would also require some kind of process failure mid-write, but 
that still leaves me uncomfortable - the CL is supposed to be bullet proof). We 
could simply always encode a random ID at the start of the file and checksum 
based on that instead of the segment id, though - that should provide the same 
guarantees, so long as we zero it as soon as we're done (though I like the fact 
that it gets done for us by simply renaming the file as things stand).

> Replaying archived commitlogs isn't working
> -------------------------------------------
>
>                 Key: CASSANDRA-6974
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6974
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Ryan McGuire
>            Assignee: Benedict
>             Fix For: 2.1 beta2
>
>         Attachments: 2.0.system.log, 2.1.system.log
>
>
> I have a test for restoring archived commitlogs, which is not working in 2.1 
> HEAD.  My commitlogs consist of 30,000 inserts, but system.log indicates 
> there were only 2 mutations replayed:
> {code}
> INFO  [main] 2014-04-02 11:49:54,173 CommitLog.java:115 - Log replay 
> complete, 2 replayed mutations
> {code}
> There are several warnings in the logs about bad headers and invalid CRCs: 
> {code}
> WARN  [main] 2014-04-02 11:49:54,156 CommitLogReplayer.java:138 - Encountered 
> bad header at position 0 of commit log /tmp/dtest
> -mZIlPE/test/node1/commitlogs/CommitLog-4-1396453793570.log, with invalid 
> CRC. The end of segment marker should be zero.
> {code}
> compare that to the same test run on 2.0, where it replayed many more 
> mutations:
> {code}
>  INFO [main] 2014-04-02 11:49:04,673 CommitLog.java (line 132) Log replay 
> complete, 35960 replayed mutations
> {code}
> I'll attach the system logs for reference.
> [Here is the dtest to reproduce 
> this|https://github.com/riptano/cassandra-dtest/blob/master/snapshot_test.py#L75]
>  - (This currently relies on the fix for snapshots available in 
> CASSANDRA-6965.)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to