Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allowing segment upload to deepstore via minions rather than controller APIs #12775

Open
tibrewalpratik17 opened this issue Apr 2, 2024 · 1 comment

Comments

@tibrewalpratik17
Copy link
Contributor

Currently, when a minion node processes a segment it calls uploadSegmentAsMultiPart API of controller. The controller processes and uploads the segment to deepstore and then issues a refresh call to the respective servers.

Raising this issue to gather the following context:

  • Why didn't we allow the minion nodes to upload the files to deepstore (just like servers do)? And then use uploadtype as URI to refresh data from deepstore to servers via controllers?

  • Do we expect the controllers under heavy load if we continue the present behaviour? We are trying to use UpsertCompaction at scale in Uber and are a bit skeptical that if we enable it for a lot of tables with the present config, the controllers might be under heavy resource utilization. We run our clusters with very minimal controller nodes currently.

One of the ideas to resolve this:

  • Can we allow minion-nodes to re-upload segments to deepstore post processing? Maybe behind a config initially - allowDeepstoreUpload? Or is this considered like any anti-pattern? At present, minion nodes do interact with deepstore to download the segment file before processing.

cc @ankitsultana

@wirybeaver
Copy link
Contributor

@tibrewalpratik17 Actually all controller regular jobs should have be placed in minion. I also have a requirement to place the job of deleting tmp deep store files in minion for better scaling up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants