And a final note, grouping like this is related to the "struct of arrays" vs "array of structs", not just for memory fragmentation optimizations but also for resource management. Imagine you have one Struct of Arrays this means "you are separating the attributes into distinct arrays, and you have to rely on index alignment to match them correctly. This is less intuitive and can introduce complexities and potential errors in querying."
You can't manage a bunch of warehouse's all over town, but you can manage a very large one with piped delivery services... it's a bit like a ring buffer if you think of it as a metaphor, they have the same purpose in terms of management and automatic allocations
@adamrushford