code: private long updateBufferChronologically() {
  		long minTimestamp = Long.MAX_VALUE;
  		long timestamp = 0;
  
  		// Mark the internal timestamp buffer as done, when we have reached the end of that time series
  		for (int i = current; i < iterators.length; i++) {
  			if (timestamps[i] != 0L && timestamps[i + iterators.length] == MARK_END_TIME_SERIES) {
  				timestamps[i] = 0L;
  			}
  		}
  
  		current = -1;
  		boolean isMultipleSeriesWithMinimum = false;
  		for (int i = 0; i < iterators.length; i++) {
  			timestamp = timestamps[iterators.length + i];
  			if (timestamp < minTimestamp) {
  				minTimestamp = timestamp;
  				current = i;
  				isMultipleSeriesWithMinimum = false;
  			} else if (timestamp == minTimestamp) {
  				isMultipleSeriesWithMinimum = true;
  			}
  		}
  
  		updateCurrentAndNextSectionOfBuffer(current);
  		if (isMultipleSeriesWithMinimum) {
  			for (int i = current + 1; i < iterators.length; i++) {
  				timestamp = timestamps[iterators.length + i];
  				if (timestamp == minTimestamp) {
  					updateCurrentAndNextSectionOfBuffer(i);
  				}
  			}
  		}
  
  		return minTimestamp;
  	}
docs: Choose smallest timestamp timeseries from the next section, and update the current and next section of that time series