Approaches to partitioning data