[prev in list] [next in list] [prev in thread] [next in thread]
List: cassandra-commits
Subject: [jira] [Created] (CASSANDRA-11694) sstabledump doesn't represent static columns correctly
From: "Wei Deng (JIRA)" <jira () apache ! org>
Date: 2016-04-29 23:03:12
Message-ID: JIRA.12964007.1461970990000.76103.1461970992803 () Atlassian ! JIRA
[Download RAW message or body]
Wei Deng created CASSANDRA-11694:
------------------------------------
Summary: 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
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)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic