[
https://issues.apache.org/jira/browse/CASSANDRA-5791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14327399#comment-14327399
]
Branimir Lambov commented on CASSANDRA-5791:
--------------------------------------------
Looks mostly good, I have a few questions about things you don't currently
treat as failures and a couple of nits:
[Verifier.java
104|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-fa9585e54785eef42f1245aceda15806R104]:
Should we not mutateRepaired on missing digest?
[Verifier.java
130|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-fa9585e54785eef42f1245aceda15806R130]:
If the first position in the index is always supposed to be 0, doesn't a
different value signify an index corruption? Why assert instead of treating
this as a validation failure?
[Verifier.java
202|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-fa9585e54785eef42f1245aceda15806R202]
and
[168|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-fa9585e54785eef42f1245aceda15806R168]:
You only warn on invalid index entries, but still use
{{nextRowPositionFromIndex}} for walking the data-- shouldn't then an invalid
index be also treated as a validation failure?
[Verifier.java
196|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-fa9585e54785eef42f1245aceda15806R196]:
Is this a good nor bad row? Shouldn't order violation be a validation error?
[Verifier.java
227|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-fa9585e54785eef42f1245aceda15806R227]:
Is this code reachable? The only place that sets badRows also throws.
[StandaloneVerifier.java
128|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-85d9fb1ffe8c937029e4ec870f662f6fR128]:
Should we stop on the first error? If there are more problems with the data
wouldn't we want to mark all ranges as unrepaired?
[sstableverify.bat
23|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-05cb8af4cf28268cb3ca58e70e47da22R23]:
I'd remove the possibility to specify {{CASSANDRA_MAIN}} to avoid unexpected
behaviour for people who might have it set for other purposes. Put the class
name directly into the command as in {{nodetool.bat}}.
[DataIntegrityMetadata.java
130|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-be889b1991c498fde94c039b5e327269R130]:
Why not just use {{while (true)}} with {{break}} in the validate loop?
[Component.java
50|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-2292395ba109e6df9e1650745810d30aR50]:
Update comment too.
[NodeTool.java
1313|https://github.com/jeffjirsa/cassandra/commit/7367b2fd88fe025006c783d6e07c8a4890690f0a#diff-1c11f86cc8881893cd6d369ffc23a809R1313]:
Change the error message (flush->verification).
> A nodetool command to validate all sstables in a node
> -----------------------------------------------------
>
> Key: CASSANDRA-5791
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5791
> Project: Cassandra
> Issue Type: New Feature
> Components: Core
> Reporter: sankalp kohli
> Assignee: Jeff Jirsa
> Priority: Minor
> Attachments: cassandra-5791.patch-2
>
>
> CUrrently there is no nodetool command to validate all sstables on disk. The
> only way to do this is to run a repair and see if it succeeds. But we cannot
> repair the system keyspace.
> Also we can run upgrade sstables but that re writes all the sstables.
> This command should check the hash of all sstables and return whether all
> data is readable all not. This should NOT care about consistency.
> The compressed sstables do not have hash so not sure how it will work there.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)