5.0 and trunk patches are up in CASSANDRA-19809 <https://issues.apache.org/jira/browse/CASSANDRA-19809> if anyone is interested in reviewing.
On Wed, Jul 31, 2024 at 1:55 PM Jeff Jirsa <jji...@gmail.com> wrote: > Would also vote to remove when TCM is available/stable. > > More words on the create, drop, re-create, in case it’s not familiar to > people: > > - Create assigns an ID > - Drop removes definition and data > - Create assigns an ID > > If non-deterministic, we had races where an ID was assigned concurrently > in two processes, and then we’d see CFID mismatches (and in some cases, > data loss) where different nodes had different opinions of table ID, which > really only got resolved after a full cluster bounce (the state could be > inconsistent in memory and on disk, so directory would change on reboot in > some horrible cases). > > If the ID is deterministic, two threads making the same table at the same > time are guaranteed to think the table is the same, but if you have a node > offline, drop the table, create the table again, node comes online, the > offline node had situations where it would handle that “poorly” > > (TCM is the right fix in both cases and fixes the first problem instantly, > so once it’s here, let’s just get rid of the remaining problem of > deterministic IDs masking a drop during partitions) > > > > > On Jul 31, 2024, at 11:47 AM, David Capwell <dcapw...@apple.com> wrote: > > what’s the motivation for removal? > > > One thing that also makes it better to remove is that this adds the ABA > problem into our tables, where as removing it fixes that… > > If you create a table “foo”, drop it, then recreate “foo”, the 2 “foo” > tables share the same tableId, which can trick things to think they are the > same… > > When the table ID was random and could conflict on different nodes, this > feature was useful to make sure to avoid such an issue, but with TCM that > problem is solved, so this just adds more complexity as the “real” ID of a > table is (TableId, Epoch)… and that… is annoying... > > On Jul 30, 2024, at 3:47 PM, Jordan West <jorda...@gmail.com> wrote: > > Understood. Nits aside I have no objection to your plan. > > Jordan > > On Tue, Jul 30, 2024 at 15:42 Caleb Rackliffe <calebrackli...@gmail.com> > wrote: > >> I think the main motivation for ignoring the YAML option and removing >> down the line is that we probably never would have created it if TCM >> existed at that point of creation. I'd liken it to what we did w/ some >> no-longer-relevant options for the batch commit log. >> >> On Tue, Jul 30, 2024 at 5:19 PM Jordan West <jorda...@gmail.com> wrote: >> >>> Generally no disagreement but more of a curiosity: what’s the motivation >>> for removal? Just that it’s not needed? Otherwise it’s relatively cheap and >>> DDL aren’t high throughput (or at least shouldn’t be since we can only deal >>> with so many tables) >>> >>> Jordan >>> >>> On Tue, Jul 30, 2024 at 15:04 Caleb Rackliffe <calebrackli...@gmail.com> >>> wrote: >>> >>>> To summarize all this noise I've created, the plan would be... >>>> >>>> 1.) Leave CQL WITH id intact. >>>> 2.) Deprecate and WARN on *use_deterministic_table_id *in 5.0.x. >>>> 3.) Ignore and WARN on *use_deterministic_table_id *in 5.1. >>>> 4.) Profit >>>> >>>> On Tue, Jul 30, 2024 at 4:46 PM Caleb Rackliffe < >>>> calebrackli...@gmail.com> wrote: >>>> >>>>> No intention of touching WITH id in CQL >>>>> >>>>> On Tue, Jul 30, 2024 at 4:10 PM Caleb Rackliffe < >>>>> calebrackli...@gmail.com> wrote: >>>>> >>>>>> To clarify, my plan was to deprecate in Config/JMX and ignore it, not >>>>>> remove it entirely so it breaks existing YAMLs and JMX clients. >>>>>> >>>>>> This should be fine, if I'm reading the upgrade notes correctly, as >>>>>> no table or view creation operations will be allowed on 5.1 nodes until >>>>>> upgrade is complete and the CMS has been initialized. >>>>>> >>>>>> On Tue, Jul 30, 2024 at 3:54 PM J. D. Jordan < >>>>>> jeremiah.jor...@gmail.com> wrote: >>>>>> >>>>>>> +1 to deprecate it. What does removing it buy us? >>>>>>> >>>>>>> On Jul 30, 2024, at 3:52 PM, David Capwell <dcapw...@apple.com> >>>>>>> wrote: >>>>>>> >>>>>>> Users can provide ids and TCM can manage to make them safe, so >>>>>>> agree we don’t really need the feature anymore. I am fine with >>>>>>> deprecating >>>>>>> the feature, but removing would be a breaking change for anyone that had >>>>>>> that config in place, so not a fan of breaking the config interface. >>>>>>> >>>>>>> On Jul 30, 2024, at 1:38 PM, Caleb Rackliffe < >>>>>>> calebrackli...@gmail.com> wrote: >>>>>>> >>>>>>> I'd like to propose removing deterministic table IDs for new *user* >>>>>>> tables and views in trunk. With TCM in place, it looks like the reason >>>>>>> we >>>>>>> added *use_deterministic_table_id*, concurrent table creations, is >>>>>>> no longer a concern. >>>>>>> >>>>>>> Thoughts? Objections? >>>>>>> >>>>>>> >>>>>>> > >