public void cancel() {
            cancelled = true;
        }
Search the message offset in the remote storage based on timestamp and offset.
<p>
This method returns an option of TimestampOffset. The returned value is determined using the following ordered list of rules:
<p>
- If there are no messages in the remote storage, return Empty
- If all the messages in the remote storage have smaller offsets, return Empty
- If all the messages in the remote storage have smaller timestamps, return Empty
- Otherwise, return an option of TimestampOffset. The offset is the offset of the first message whose timestamp
is greater than or equals to the target timestamp and whose offset is greater than or equals to the startingOffset.

@param tp               topic partition in which the offset to be found.
@param timestamp        The timestamp to search for.
@param startingOffset   The starting offset to search.
@param leaderEpochCache LeaderEpochFileCache of the topic partition.
@return the timestamp and offset of the first message that meets the requirements. Empty will be returned if there
is no such message.
core/src/main/java/kafka/log/remote/RemoteLogManager.java