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

Sylvain Lebresne commented on CASSANDRA-16048:
----------------------------------------------

bq. Regarding the DENSE flag, this is the same as if "DROP COMPACT STORAGE" was 
run, and the behavior prior to this patch is that the database would fail to 
start, so I'm not sure there will be much surprise to the user or that its of 
much concern.

This patch silently drop compact storage on (some) user tables. And as 
mentionned, this _has_ user visible consequences (no more "WITH COMPACT 
STORAGE" mention when using {{DESCRIBED}} and removed {{DENSE}} flag), even if 
they can arguably be considered minor.

The user surprise I'm talking about is a user noticing one of those 
consequences some time post 4.0 upgrade, and having no clue why this happened 
(since again, the drop is automatic and basically silent\[1\]). I mean, in 
general, silent changes tends to be surprising.

Without this patch, users are obligated to _manually_ run {{DROP COMPACT 
STORAGE}} on all tables, so no risk of surprise exists. Which is kind of a 
feature in that case imo.

I suppose the opinion I'm pushing here is that it might be better to ask a few 
power users to run more manual {{DROP COMPACT STORAGE}} (it's not like it can't 
be scripted externally easily if you know what you're doing), than risking to 
confuse some users, even slightly, around something already kind of confusing 
like compact tables. Obviously, I don't know how many and how much users might 
get confused by this. And probably not a lot. Is the risk worth the upside for 
users in general? I lean "no" as of now, but definitively a very weakly held 
position.

bq. As an aside, I am also concerned about the current behavior that we halt 
the database from starting when we detect compact storage tables

This may or may not be what you meant here, but fwiw, I created CASSANDRA-16063 
which is relevant (long story short, I think the general behavior is sensible 
but I don't think it's implemented right; if you're concerned by the general 
behavior and have alternative to propose, feel free to hijack that ticket for 
that purpose).


\[1\]: on that "silent" subject: I think that if we do end up doing this, we 
should at least clearly log when we automatically migrating a table, which the 
current patch don't do, so it's not completely silent. Tbc, doing so wouldn't 
entirely assuage my concerns because I don't think everyone reads their log 
carefully.


> Safely Ignore Compact Storage Tables Where Users Have Defined Clustering and 
> Value Columns
> ------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-16048
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16048
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Legacy/CQL
>            Reporter: Jordan West
>            Assignee: Jordan West
>            Priority: Normal
>             Fix For: 4.0-beta
>
>
> Some compact storage tables, specifically those where the user has defined 
> both at least one clustering and the value column, can be safely handled in 
> 4.0 because besides the DENSE flag they are not materially different post 3.0 
> and there is no visible change to the user facing schema after dropping 
> compact storage. We can detect this case and allow these tables to silently 
> drop the DENSE flag while still throwing a start-up error for COMPACT STORAGE 
> tables that don’t meet the criteria. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to