[
https://issues.apache.org/jira/browse/CASSANDRA-11694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15264930#comment-15264930
]
Joel Knighton commented on CASSANDRA-11694:
-------------------------------------------
I don't think the negative timestamp output in "-d" is incorrect - this
indicates the empty LivenessInfo on the static row, which I would prefer to see
in debug output.
> sstabledump doesn't represent static columns correctly
> ------------------------------------------------------
>
> Key: CASSANDRA-11694
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11694
> Project: Cassandra
> Issue Type: Bug
> Components: Tools
> Reporter: Wei Deng
> Assignee: Chris Lohfink
>
> It appears that the latest trunk code (after fixing CASSANDRA-11654,
> CASSANDRA-11655 and CASSANDRA-11656) of sstabledump still doesn't handle
> static columns correctly.
> Take a look at the following example:
> {noformat}
> root@node0:/mnt/ephemeral/cassandra/data/testks/test_static_column-ab5ce7c20b8411e695aeebb3bfdd5790#
> ~/cassandra-trunk/tools/bin/sstabledump ma-1-big-Data.db -t
> [
> {
> "partition" : {
> "key" : [ "1" ],
> "position" : 0
> },
> "rows" : [
> {
> "type" : "static_block",
> "position" : 40,
> "cells" : [
> { "name" : "static0_int", "value" : "3000", "tstamp" :
> "1461657675565767" },
> { "name" : "static1_int", "value" : "4000", "tstamp" :
> "1461657675565767" }
> ]
> },
> {
> "type" : "row",
> "position" : 40,
> "clustering" : [ "c1" ],
> "liveness_info" : { "tstamp" : "1461657663393419" },
> "cells" : [
> { "name" : "val0_int", "value" : "100" },
> { "name" : "val1_set_of_int", "deletion_info" : { "marked_deleted"
> : "1461657663393418", "local_delete_time" : "1461657663" } },
> { "name" : "val1_set_of_int", "path" : [ "1" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "2" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "3" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "4" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "5" ], "value" : "" }
> ]
> },
> {
> "type" : "row",
> "position" : 92,
> "clustering" : [ "c2" ],
> "liveness_info" : { "tstamp" : "1461657675565767" },
> "cells" : [
> { "name" : "val0_int", "value" : "200" },
> { "name" : "val1_set_of_int", "deletion_info" : { "marked_deleted"
> : "1461657675565766", "local_delete_time" : "1461657675" } },
> { "name" : "val1_set_of_int", "path" : [ "1" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "2" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "3" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "4" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "5" ], "value" : "" }
> ]
> },
> {
> "type" : "row",
> "position" : 144,
> "clustering" : [ "c3" ],
> "liveness_info" : { "tstamp" : "1461657634639043" },
> "cells" : [
> { "name" : "val0_int", "value" : "300" },
> { "name" : "val1_set_of_int", "deletion_info" : { "marked_deleted"
> : "1461657634639042", "local_delete_time" : "1461657634" } },
> { "name" : "val1_set_of_int", "path" : [ "1" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "2" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "3" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "4" ], "value" : "" },
> { "name" : "val1_set_of_int", "path" : [ "5" ], "value" : "" }
> ]
> }
> ]
> }
> ]
> {noformat}
> Note the "position" for the "static_block" and the first "row" are the same
> (40), which should be incorrect.
> If you print out in debug mode, you will see the following:
> {noformat}
> root@node0:/mnt/ephemeral/cassandra/data/testks/test_static_column-ab5ce7c20b8411e695aeebb3bfdd5790#
> ~/cassandra-trunk/tools/bin/sstabledump ma-1-big-Data.db -t -d
> [1]@0 Row[info=[ts=-9223372036854775808] ]: STATIC | [static0_int=3000
> ts=1461657675565767], [static1_int=4000 ts=1461657675565767]
> [1]@0 Row[info=[ts=1461657663393419] ]: c1 | [val0_int=100
> ts=1461657663393419], del(val1_set_of_int)=deletedAt=1461657663393418,
> localDeletion=1461657663, [val1_set_of_int[1]= ts=1461657663393419],
> [val1_set_of_int[2]= ts=1461657663393419], [val1_set_of_int[3]=
> ts=1461657663393419], [val1_set_of_int[4]= ts=1461657663393419],
> [val1_set_of_int[5]= ts=1461657663393419]
> [1]@92 Row[info=[ts=1461657675565767] ]: c2 | [val0_int=200
> ts=1461657675565767], del(val1_set_of_int)=deletedAt=1461657675565766,
> localDeletion=1461657675, [val1_set_of_int[1]= ts=1461657675565767],
> [val1_set_of_int[2]= ts=1461657675565767], [val1_set_of_int[3]=
> ts=1461657675565767], [val1_set_of_int[4]= ts=1461657675565767],
> [val1_set_of_int[5]= ts=1461657675565767]
> [1]@144 Row[info=[ts=1461657634639043] ]: c3 | [val0_int=300
> ts=1461657634639043], del(val1_set_of_int)=deletedAt=1461657634639042,
> localDeletion=1461657634, [val1_set_of_int[1]= ts=1461657634639043],
> [val1_set_of_int[2]= ts=1461657634639043], [val1_set_of_int[3]=
> ts=1461657634639043], [val1_set_of_int[4]= ts=1461657634639043],
> [val1_set_of_int[5]= ts=1461657634639043]
> {noformat}
> There are three problems in this "-d" output:
> 1. It printed an invalid timestamp "ts=-9223372036854775808".
> 2. It printed "@0" twice at the beginning, which should be impossible.
> 3. It doesn't print "CellPath" component for the collection, which is
> important, collection type like "set" will only put its element in the Cell
> Path so if you don't print that you're missing some information in the output.
> So there are a total of four issues we need to fix when dealing with static
> columns.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)