https://medium.com/double-pointer/partitioning-for-system-design-interview-3-secondary-indexes-824371913a6