[ 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