If a user (vs Cassandra dev) perspective is welcome - I'd recommend
similarly identifying experimental features in the DESCRIBE / DESC cqlsh
output as well.

On Mon, Oct 2, 2017 at 4:21 PM, Jeremiah D Jordan <jerem...@datastax.com>
wrote:

> Blake,
> We are not saying to just put something in logs, we are talking about the
> warn actually showing up in cqlsh.
> When you issue a native protocol warn cqlsh will print it out on the
> console in front of you in the results of the query.
> https://issues.apache.org/jira/browse/CASSANDRA-8930 <
> https://issues.apache.org/jira/browse/CASSANDRA-8930>
>
> For example for SASI it would look something like:
>
>
> cqlsh:ks> CREATE CUSTOM INDEX ON sasi_table (c) USING
> 'org.apache.cassandra.index.sasi.SASIIndex';
>
> Warnings :
> A SASI index was enabled for ‘ks.sasi_table'. SASI is still experimental,
> take extra caution when using it in production.
>
> cqlsh:ks>
>
> -Jeremiah
>
> > On Oct 2, 2017, at 5:05 PM, Blake Eggleston <beggles...@apple.com>
> wrote:
> >
> > The message isn't materially different, but it will reach fewer people,
> later. People typically aren't as attentive to logs as they should be.
> Developers finding out about new warnings in the logs later than they could
> have, sometimes even after it's been deployed, is not uncommon. It's
> happened to me. Requiring a flag will reach everyone trying to use MVs as
> soon as they start developing against MVs. Logging a warning will reach a
> subset of users at some point, hopefully. The only downside I can think of
> for the flag is that it's not as polite.
> >
> > On October 2, 2017 at 1:16:10 PM, Josh McKenzie (jmcken...@apache.org)
> wrote:
> >
> > "Nobody is talking about removing MVs."
> > Not precisely true for this email thread:
> >
> > "but should there be some point in the
> > future where we consider removing them from the code base unless they
> have
> > gotten significant improvement as well?"
> >
> > IMO a .yaml change requirement isn't materially different than barfing a
> > warning on someone's screen during the dev process when they use the DDL
> > for MV's. At the end of the day, it's just a question of how forceful you
> > want that messaging to be. If the cqlsh client prints 'THIS FEATURE IS
> NOT
> > READY' in big bold letters, that's not going to miscommunicate to a user
> > that 'feature X is ready' when it's not.
> >
> > Much like w/SASI, this is something that's in the code-base that for
> > certain use-cases apparently works just fine. Might be worth considering
> > the approach of making boundaries around those use-cases more rigid
> instead
> > of throwing the baby out with the bathwater.
> >
> > On Mon, Oct 2, 2017 at 3:32 PM, DuyHai Doan <doanduy...@gmail.com>
> wrote:
> >
> >> Ok so IF there is a flag to enable MV (à-la UDA/UDF in cassandra.yaml)
> then
> >> I'm fine with it. I initially understood that we wanted to disable it
> >> definitively. Maybe we should then add an explicit error message when
> MV is
> >> disabled and someone tries to use it, something like:
> >>
> >> "MV has been disabled, to enable it, turn on the flag xxxx in
> >> cassandra.yaml" so users don't spend 3h searching around
> >>
> >>
> >> On Mon, Oct 2, 2017 at 9:07 PM, Jon Haddad <j...@jonhaddad.com> wrote:
> >>
> >>> There’s a big difference between removal of a protocol that every
> single
> >>> C* user had to use and disabling a feature which is objectively broken
> >> and
> >>> almost nobody is using. Nobody is talking about removing MVs. If you
> >> want
> >>> to use them you can enable them very trivially, but it should be an
> >>> explicit option because they really aren’t ready for general use.
> >>>
> >>> Claiming disabling by default == removal is not helpful to the
> >>> conversation and is very misleading.
> >>>
> >>> Let’s be practical here. The people that are most likely to put MVs in
> >>> production right now are people new to Cassandra that don’t know any
> >>> better. The people that *should* be using MVs are the contributors to
> >> the
> >>> project. People that actually wrote Cassandra code that can do a patch
> >> and
> >>> push it into prod, and get it submitted upstream when they fix
> something.
> >>> Yes, a lot of this stuff requires production usage to shake out the
> bugs,
> >>> that’s fine, but we shouldn’t lie to people and say “feature X is
> ready”
> >>> when it’s not. That’s a great way to get a reputation as “unstable” or
> >>> “not fit for production."
> >>>
> >>> Jon
> >>>
> >>>
> >>>> On Oct 2, 2017, at 11:54 AM, DuyHai Doan <doanduy...@gmail.com>
> wrote:
> >>>>
> >>>> "I would (in a patch release) disable MV CREATE statements, and emit
> >>>> warnings for ALTER statements and on schema load if they’re not
> >>> explicitly
> >>>> enabled"
> >>>>
> >>>> --> I find this pretty extreme. Now we have an existing feature
> sitting
> >>>> there in the base code but forbidden from version xxx onward.
> >>>>
> >>>> Since when do we start removing feature in a patch release ?
> >> (forbidding
> >>> to
> >>>> create new MV == removing the feature, defacto)
> >>>>
> >>>> Even the Thrift protocol has gone through a long process of
> deprecation
> >>> and
> >>>> will be removed on 4.0
> >>>>
> >>>> And if we start opening the Pandora box like this, what's next ?
> >>> Forbidding
> >>>> to create SASI index too ? Removing Vnodes ?
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On Mon, Oct 2, 2017 at 8:16 PM, Jeremiah D Jordan <
> >>> jeremiah.jor...@gmail.com
> >>>>> wrote:
> >>>>
> >>>>>> Only emitting a warning really reduces visibility where we need it:
> >> in
> >>>>> the development process.
> >>>>>
> >>>>> How does emitting a native protocol warning reduce visibility during
> >> the
> >>>>> development process? If you run CREATE MV and cqlsh then prints out a
> >>>>> giant warning statement about how it is an experimental feature I
> >> think
> >>>>> that is pretty visible during development?
> >>>>>
> >>>>> I guess I can see just blocking new ones without a flag set, but we
> >> need
> >>>>> to be careful here. We need to make sure we don’t cause a problem for
> >>>>> someone that is using them currently, even with all the edge cases
> >>> issues
> >>>>> they have now.
> >>>>>
> >>>>> -Jeremiah
> >>>>>
> >>>>>
> >>>>>> On Oct 2, 2017, at 2:01 PM, Blake Eggleston <beggles...@apple.com>
> >>>>> wrote:
> >>>>>>
> >>>>>> Yeah, I'm not proposing that we disable MVs in existing clusters.
> >>>>>>
> >>>>>>
> >>>>>> On October 2, 2017 at 10:58:11 AM, Aleksey Yeshchenko (
> >>> alek...@apple.com)
> >>>>> wrote:
> >>>>>>
> >>>>>> The idea is to check the flag in CreateViewStatement, so creation of
> >>> new
> >>>>> MVs doesn’t succeed without that flag flipped.
> >>>>>>
> >>>>>> Obviously, just disabling existing MVs working in a minor would be
> >>> silly.
> >>>>>>
> >>>>>> As for the warning - yes, that should also be emitted.
> >> Unconditionally.
> >>>>>>
> >>>>>> —
> >>>>>> AY
> >>>>>>
> >>>>>> On 2 October 2017 at 18:18:52, Jeremiah D Jordan (
> >>>>> jeremiah.jor...@gmail.com) wrote:
> >>>>>>
> >>>>>> These things are live on clusters right now, and I would not want
> >>>>> someone to upgrade their cluster to a new *patch* release and
> suddenly
> >>>>> something that may have been working for them now does not function.
> >>>>> Anyway, we need to be careful about how this gets put into practice
> if
> >>> we
> >>>>> are going to do it retroactively.
> >>>>>
> >>>>>
> >>>>> ------------------------------------------------------------
> ---------
> >>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>>>
> >>>>>
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>
> >>>
> >>
>
>

Reply via email to