docs: List<Pair<Integer, Integer>> getKeyRangesPerThread(int numThreads, int keySlots, int numKeys)
      {
          List<Pair<Integer, Integer>> keyRangesPerThread = new LinkedList<>();
  
          int slotSize = numKeys / keySlots;
          int randomSlot = random.nextInt(keySlots);
  
          int startKey = randomSlot * slotSize;
          int endKey = startKey + slotSize;
  
          int numKeysToProcess = endKey - startKey;
  
          int numKeysPerThread = numKeysToProcess / numThreads;
  
          logger.info("Num keys (KEYSPACE): {}, Num threads: {}, Num slots: {}", numKeys, numThreads, keySlots);
          logger.info("MyNode: Num keys to be processed: {}, Num keys per thread: {}, My key slot: {}",
                      numKeysToProcess, numKeysPerThread, randomSlot);
          for (int i = 0; i < numThreads; i++)
          {
              int startKeyPerThread = startKey + (i * numKeysPerThread);
              int endKeyPerThread = startKeyPerThread + numKeysPerThread;
              keyRangesPerThread.add(Pair.of(startKeyPerThread, endKeyPerThread));
          }
          return keyRangesPerThread;
      }