Skip to content

Curl multi check in - #1430

Merged
kyang2014 merged 18 commits into
masterfrom
curl-multi-check-in
Sep 17, 2026
Merged

kyang2014 merged 18 commits into
masterfrom
curl-multi-check-in

Conversation

@kyang2014

@kyang2014 kyang2014 commented Sep 9, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Reference ticket: HYRAX-2265

Use curl-multi APIs to manage the parallel data transfer.

Tasks

  • Ticket exists and is linked in title

@kyang2014
kyang2014 marked this pull request as draft September 9, 2026 17:33
@kyang2014
kyang2014 marked this pull request as ready for review September 9, 2026 20:41

@jgallagher59701 jgallagher59701 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of my requests are for comments since this is such a complex and important part of the server, I think it needs to be a bit easier to understand.

Comment thread modules/dmrpp_module/CurlHandlePool.h
Comment thread modules/dmrpp_module/DmrppArray.cc Outdated
memcpy(target_buffer, source_buffer, the_one_chunk->get_size());
}

#if 0

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets remove this if it is not used. If we're saving it to use later with the compute threads, lets add a comment about that.

Comment thread modules/dmrpp_module/DmrppArray.cc
Comment thread modules/dmrpp_module/DmrppArray.cc
Comment thread modules/dmrpp_module/DmrppArray.cc
Comment thread modules/dmrpp_module/DmrppArray.cc Outdated
}
#endif

struct CurlMultiTransfer {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I realized this is pretty complicated - when I was reading the code it took me a while to understand that 'CurlMultiTransfer' is ours and not libcurl's! Anyway, I think I see how this is used, but I think some explanation is needed. The 'super_chunk' is transferred by the 'dmrpp_easy_handle.' The dmrpp_easy_handle unique_ptr has a custom deleter (that's worth pointing out).

The 'super_chunk_internal' is there to actually read the data.

Also, I think 're_try' should be 'retry.'

Comment thread modules/dmrpp_module/DmrppArray.cc
Comment thread modules/dmrpp_module/DmrppArray.cc
Comment thread modules/dmrpp_module/SuperChunk.h
Comment thread modules/dmrpp_module/ThreadCount.h
@sonarqubecloud

Copy link
Copy Markdown

@sonarqubecloud

Copy link
Copy Markdown

@sonarqubecloud

Copy link
Copy Markdown

@jgallagher59701 jgallagher59701 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thanks!

@kyang2014
kyang2014 merged commit d7d43b3 into master Sep 17, 2026
5 of 6 checks passed
@kyang2014
kyang2014 deleted the curl-multi-check-in branch September 17, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants