Keyless sharded does not guarantee that the data from a given kafka partition always goes to a given memsql partition.
What kind of performance impact are you seeing with multiple instances using the same partition at the same time? Because there are multiple partitions on each leaf, and MemSQL handles concurrent access well, partitioning data in this way usually doesn’t matter that much.
MemSQL doesn’t have a way to directly specify the partition to insert data into, but you could use the kafka partition id as the shard key to at least ensure that all data for a given kafka partition resides in the same memsql partition, although a memsql partition could contain the data for multiple kafka partitions. For a given number of memsql partitions, you could precompute a mapping of ids in the shard key that makes the partitions line up one-to-one, just by trying random ids and seeing what partition they get mapped to. It is also possible to have your application access the leaf partitions directly to input/output data, but this is not generally recommended.