docs: private int estimateSegmentsBasedOnSize() {
          // the idea is that if values are huge, operations on them (and simply ser/deser)
          // could take long time, so we want more segment to minimize probablity that
          // two or more concurrent write ops will go to the same segment, and then all but one of
          // these threads will wait for long time.
          int segmentsForEntries = estimateSegmentsForEntries(entries());
          double averageValueSize = averageValueSize();
          return averageValueSize >= 1000000
                  ? segmentsForEntries * 16
                  : averageValueSize >= 100000
                  ? segmentsForEntries * 8
                  : averageValueSize >= 10000
                  ? segmentsForEntries * 4
                  : averageValueSize >= 1000
                  ? segmentsForEntries * 2
                  : segmentsForEntries;
      }