Hi Raphael ‘kena’ Poss,
I’m confused about your answer. If I understand correctly for 100K limit to be applicable, all TABLES in a given schema must be in the same column family. Did you mean that all columns in a given table must be in the same table? Do UUIDs used for primary keys have to be unique across tables? If that is the case, are there plans (or configuration) to relax that constraint and require UUIDs to be unique only for a given column family/table PK?
I’m currently working on a project that will be recording data coming from devices and doing so in long batches for performance reasons. So the plan is to gather up 5 minutes worth of records and insert them in one batch. And, on top of that devices share data between each other and this is where I really need to insert many records at once, since I also need inserts in the many-to-many table between data records and device records.
My schema already has over 20 tables and that number will grow as I implement more features. Does this mean that if my schema has 50 tables, each one being its own column family (given that no table has one-to-one relation to another one), then I can only insert 2K records into my many-to-many table per second per node?
If that is the case and there is a core technical reason that would prevent UUIDs from being reused across tables (I just don’t know enough about this), then it would be a show stopper and force me to move to manually implement caching of big ints per inserting app node for primary keys (I don’t think that big ints unique per node per timestamp, which if I understand correctly is what your big serial implementation is, would give me enough range for my worst case scenario).
So, yet another question, is it possible to provide 64 bit integers that the are guaranteed to be unique (due to being allocated in blocks via a fake sequence block increment mechanism) as primary keys and not break the db? Would that successfully take place of the usual bigserial or would UUID be automatically inserted as the rowid in that case? If UUIDs would be inserted would they break anything (even if they are never used by the calling app)?
Thank you very much for your time and effort!