Seems we always use HTTP for inner cluster communication (e.g. TableSizeReader).
We should make peer download the default behavior. If the segment
download from deep storage failed, we should always try with the peer.
For the race condition issue, we can add CRC into the peer download
request (CRC can be obtained from the ZK metadata).

There are some parts not clear to me:
- Can we always obtain the deep storage address before successfully
uploading it?
- Should we try to at least upload once before committing the segment?
- If we put downloadUrl before successfully uploading the segment, how
to detect whether the upload is successful or not?
- When we find segment not uploaded to the deep storage, who is
responsible of uploading it, who is responsible of updating the
downloadUrl (controller or server)?

Jackie

On Mon, May 18, 2020 at 4:13 PM TING CHEN <tingc...@uber.com> wrote:
>
>
>
> ---------- Forwarded message ---------
> From: TING CHEN <tingc...@uber.com>
> Date: Tue, May 5, 2020 at 5:16 PM
> Subject: Adding a new field in SegmentsValidationAndRetentionConfig for peer 
> segment download
> To: <dev@pinot.apache.org>
>
>
>
> As part of the proposal to bypass deep store for segment completion, I plan 
> to add a new optional string field peerSegmentDownloadScheme to the 
> SegmentsValidationAndRetentionConfig in the TableConfig. The value can be 
> http or https.
>
> SplitSegmentCommitter  will check this value. If it exists, the segment 
> committer will be able to finish segment commit successfully even if the 
> upload to the segment store fails. The committer will report a special marker 
> to the controller about the segment is available in peer servers.
> When Pinot servers fail to download segments from the segment store, they can 
> also check this field's value. If it exists, it can download segments from 
> peer servers using either HTTP and HTTPS segment fetchers as configured. 
> (related PR in review for how to discover such servers.)
>
> Note this is a table level config. We will test the new download behavior in 
> realtime tables in incremental fashion. Once fully proven, this config can be 
> upgraded to server level config.
>
> Please let me know if you have any questions on this. Thanks @mcvsubbu for 
> coming up with the idea and offline discussions.
>
> Ting Chen
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pinot.apache.org
For additional commands, e-mail: dev-h...@pinot.apache.org

Reply via email to