I was not aware of such limitations. Thank you for your answer. Sébastien
Le dim. 30 mai 2021 à 18:52, Bowen Song <bo...@bso.ng> a écrit : > This sounds like a really bad idea. > > In Cassandra 4.0 RC1, when you have more than 150 tables or 40 keyspaces (code > reference > <https://github.com/apache/cassandra/blob/3282f5ecf187ecbb56b8d73ab9a9110c010898b0/src/java/org/apache/cassandra/config/Config.java#L562>), > Cassandra will warn you about it: > > *Cluster already contains %d tables in %d keyspaces. Having a large number > of tables will significantly slow down schema dependent cluster operations.* > > The warning exists for a good reason. You really need to reconsider you > data model. > > > On 30/05/2021 10:12, Sébastien Rebecchi wrote: > > Hello, > > I have a more general question about that, I cannot find clear answer. > > In my use case I have many tables (around 10k new tables created per > months) and they are created from many clients and only dynamically, with > several clients creating same tables simulteanously. > > What is the recommended way of creating tables dynamically? If I am doing > "if not exists" queries + wait for schema aggreement before and after each > create statement, will it work correctly for Cassandra? > > Sébastien. > > Le ven. 28 mai 2021 à 20:45, Sébastien Rebecchi <srebec...@kameleoon.com> > a écrit : > >> Thank you for your answer. >> >> If I send all my create operations still from many clients but to 1 >> coordinator node, always the same, would it prevent schema mismatch? >> >> Sébastien. >> >> >> Le ven. 28 mai 2021 à 01:14, Kane Wilson <k...@raft.so> <k...@raft.so> a >> écrit : >> >>> Which client operations could trigger schema change at node level? Do >>>> you mean that for ex creating a new table trigger a schema change globally, >>>> not only at KS/table single level? >>>> >>> Yes, any DDL statement (creating tables, altering, dropping, etc) >>> triggers a schema change across the cluster (globally). All nodes need to >>> be told of this schema change. >>> >>> >>>> I don't have schema changes, except keyspaces and tables creations. But >>>> they are done from multiple sources indeed. With a "create if not exists" >>>> statement, on demand. Thanks you for your answer, I will try to see if I >>>> could precreate them then. >>>> >>> Yep, definitely do that. You don't want to be issuing simultaneous >>> create statements from different clients. IF NOT EXISTS won't necessarily >>> catch all cases. >>> >>> >>>> As for the schema mismatch, what is the best way of fixing that issue? >>>> Could Cassandra recover from that on its own or is there a nodetool command >>>> to force schema agreement? I have heard that we have to restart the nodes 1 >>>> by 1, but it seems a very heavy procedure for that. >>>> >>> A rolling restart is usually enough to fix the issue. You might want to >>> repair afterwards, and check that data didn't make it to different versions >>> of the table on different nodes (in which case some more intervention may >>> be necessary to save that data). >>> >>> -- >>> raft.so - Cassandra consulting, support, and managed services >>> >>