We are thinking about interleaving user-interactions with the user table, the only problem is that there are going to be tens of thousands of interactions per user, so 64MB of one key-value range will most likely seldom fit.
The CockroachDB docs state that:
If the amount of interleaved data stored for any Primary Key value of the root table is larger than a key-value range's maximum size (64MB by default), the interleaved optimizations will be diminished.
- So, how bad will the performance drop be?
- Should we even bother to interleave our tables?
The user and the interaction tables will be a little bigger, our current estimate will be around 5 to 10TB. There will be heavy aggregation queries that require joins between the interactions and the user table and then aggregating on some user columns.
Elasticsearch already failed us with it's awful parent-child join performance (and don't get me started on the forced filter-reordering...), so maybe someone has production experience with CockroachDB for such a scenario?