[
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: [email protected]
For additional commands, e-mail: [email protected]