> We could introduce new syntax that properly appreciates there’s no
default index, perhaps CREATE LOCAL [type] INDEX? To also make clear that
these indexes involve a partition key or scatter gather

I think this is something we should handle in guardrails space on the query
side for all indexes. Specifically, we should have the ability to diallow
scatter/gather queries against indexes (and *all* indexes are local rn).
Mentioning this at the DDL level probably isn't necessary.

On Wed, May 10, 2023 at 2:59 AM Benedict <bened...@apache.org> wrote:

> I’m not convinced by the changing defaults argument here. The
> characteristics of the two index types are very different, and users with
> scripts that make indexes today shouldn’t have their behaviour change.
>
> We could introduce new syntax that properly appreciates there’s no default
> index, perhaps CREATE LOCAL [type] INDEX? To also make clear that these
> indexes involve a partition key or scatter gather
>
> On 10 May 2023, at 06:26, guo Maxwell <cclive1...@gmail.com> wrote:
>
> 
> +1 , as we must Improve the image of your own default indexing ability.
>
> and As for *CREATE CUSTOM INDEX *, should we just left as it is and we
> can disable the ability for create SAI through  *CREATE CUSTOM INDEX*  in
> some version after 5.0?
>
> for as I know there may be users using this as a plugin-index interface,
> like https://github.com/Stratio/cassandra-lucene-index (though these
> project may be inactive, But if someone wants to do something similar in
> the future, we don't have to stop).
>
>
>
> Jonathan Ellis <jbel...@gmail.com> 于2023年5月10日周三 10:01写道:
>
>> +1 for this, especially in the long term.  CREATE INDEX should do the
>> right thing for most people without requiring extra ceremony.
>>
>> On Tue, May 9, 2023 at 5:20 PM Jeremiah D Jordan <
>> jeremiah.jor...@gmail.com> wrote:
>>
>>> If the consensus is that SAI is the right default index, then we should
>>> just change CREATE INDEX to be SAI, and legacy 2i to be a CUSTOM INDEX.
>>>
>>>
>>> On May 9, 2023, at 4:44 PM, Caleb Rackliffe <calebrackli...@gmail.com>
>>> wrote:
>>>
>>> Earlier today, Mick started a thread on the future of our index creation
>>> DDL on Slack:
>>>
>>> https://the-asf.slack.com/archives/C018YGVCHMZ/p1683527794220019
>>>
>>> At the moment, there are two ways to create a secondary index.
>>>
>>> *1.) CREATE INDEX [IF NOT EXISTS] [name] ON <table> (<column>)*
>>>
>>> This creates an optionally named legacy 2i on the provided table and
>>> column.
>>>
>>>     ex. CREATE INDEX my_index ON kd.tbl(my_text_col)
>>>
>>> *2.) CREATE CUSTOM INDEX [IF NOT EXISTS] [name] ON <table> (<column>)
>>> USING <class|alias> [WITH OPTIONS = <options>]*
>>>
>>> This creates a secondary index on the provided table and column using
>>> the specified 2i implementation class and (optional) parameters.
>>>
>>>     ex. CREATE CUSTOM INDEX my_index ON ks.tbl(my_text_col) USING
>>> 'StorageAttachedIndex'
>>>
>>> (Note that the work on SAI added aliasing, so `StorageAttachedIndex` is
>>> shorthand for the fully-qualified class name, which is also valid.)
>>>
>>> So what is there to discuss?
>>>
>>> The concern Mick raised is...
>>>
>>> "...just folk continuing to use CREATE INDEX  because they think CREATE
>>> CUSTOM INDEX is advanced (or just don't know of it), and we leave users
>>> doing 2i (when they think they are, and/or we definitely want them to be,
>>> using SAI)"
>>>
>>> To paraphrase, we want people to use SAI once it's available where
>>> possible, and the default behavior of CREATE INDEX could be at odds w/
>>> that.
>>>
>>> The proposal we seem to have landed on is something like the following:
>>>
>>> For 5.0:
>>>
>>> 1.) Disable by default the creation of new legacy 2i via CREATE INDEX.
>>> 2.) Leave CREATE CUSTOM INDEX...USING... available by default.
>>>
>>> (Note: How this would interact w/ the existing secondary_indexes_enabled
>>> YAML options isn't clear yet.)
>>>
>>> Post-5.0:
>>>
>>> 1.) Deprecate and eventually remove SASI when SAI hits full feature
>>> parity w/ it.
>>> 2.) Replace both CREATE INDEX and CREATE CUSTOM INDEX w/ something of a
>>> hybrid between the two. For example, CREATE INDEX...USING...WITH. This
>>> would both be flexible enough to accommodate index implementation selection
>>> and prescriptive enough to force the user to make a decision (and wouldn't
>>> change the legacy behavior of the existing CREATE INDEX). In this
>>> world, creating a legacy 2i might look something like CREATE
>>> INDEX...USING `legacy`.
>>> 3.) Eventually deprecate CREATE CUSTOM INDEX...USING.
>>>
>>> Eventually we would have a single enabled DDL statement for index
>>> creation that would be minimal but also explicit/able to handle some
>>> evolution.
>>>
>>> What does everyone think?
>>>
>>>
>>>
>>
>> --
>> Jonathan Ellis
>> co-founder, http://www.datastax.com
>> @spyced
>>
>
>
> --
> you are the apple of my eye !
>
>

Reply via email to