private boolean putAndSplitSegmentIfNeeded(HashMapSegmentLayout segment,
                                             int key,
                                             int value) throws IOException {
    boolean wasReallyPut = hashMapAlgo.put(segment, key, value);

    if (wasReallyPut) {
      markModified();
    }

    if (hashMapAlgo.needsSplit(segment)) {
      splitAndRearrangeEntries(segment);
    }
    return wasReallyPut;
  }
private boolean putAndSplitSegmentIfNeeded(HashMapSegmentLayout segment,
                                             int key,
                                             int value)