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

Get-BCArtifactUrl is very slow (mainly for Sandbox artifacts) #3268

Open
Koubek opened this issue Dec 8, 2023 · 8 comments
Open

Get-BCArtifactUrl is very slow (mainly for Sandbox artifacts) #3268

Koubek opened this issue Dec 8, 2023 · 8 comments
Assignees

Comments

@Koubek
Copy link
Contributor

Koubek commented Dec 8, 2023

PLEASE DO NOT INCLUDE ANY PASSWORDS OR TOKENS IN YOUR ISSUE!!!

Describe the issue
Command Get-BCArtifactUrl -Type Sandbox takes very long to process. It happens mainly with Sandbox artifacts. I assume it's because there is a huge list of the artifacts behind the scene. Or maybe not, I can't tell :) But if yes, the question is if all of them are needed.

Scripts used to create container and cause the issue

Get-BCArtifactUrl -Type Sandbox
Get-BCArtifactUrl -Type Sandbox -select Current
# ... and similar ...

Additional context
I think the time needed to process the request grows over time but I haven't made any serious measurements.
I assume some cleanup could help probably to make the query perform faster ;)

@freddydk
Copy link
Contributor

freddydk commented Dec 8, 2023

You are right - it is caused by the very large list of artifacts - we do cleanup the list occasionally - will see what I can do

@freddydk
Copy link
Contributor

freddydk commented Dec 8, 2023

The "real" for for this however is when we start using NuGet, Universal packages or like for artifacts instead of blob storage - that is on the horizon - but not anytime soon.

@Koubek
Copy link
Contributor Author

Koubek commented Dec 8, 2023

I know this might be off-topic, but have you already checked the performance on such a big volume of data e.g. with NuGet? Partially, it's just a curiosity and partially not - we use NuGet and have a good experience performance-wise so far but this might change over time so someone with a significant volume of the data would be a good example for us (positive and eventually also negative).

@freddydk
Copy link
Contributor

freddydk commented Dec 8, 2023

We have not yet started looking into this, so no.
But knowing what we know today (with the amount of artifacts), we obviously will test this thoroughly - or structure things in a way, which makes searching easier.

@tfenster
Copy link
Contributor

tfenster commented Dec 8, 2023

@Koubek if you don't mind a bit of caching in between, you could use https://bca-url-proxy.azurewebsites.net/bca-url/sandbox/de/?donotredirect=true to get the URL. It is as slow as bcch (which it uses behind the scenes) on the first request for a particular artifact, but then it is fast as it takes the result from a cache. After 1h for sandbox artifactss and 24h for onprem artifacts, the cache entry expires and fetches the URL through bcch again. So depending on your usage scenario, this might at least help :)

@Koubek
Copy link
Contributor Author

Koubek commented Dec 8, 2023

Thanks @tfenster, this is truly a nice option and I will share it with my colleagues ;) And really very good idea to implement the cache, I haven't been monitoring the response time for a while as we use some caching as well in the system I control, but not somewhere else I suppose.

@rdebath
Copy link

rdebath commented Feb 22, 2024

I notice that current versions of the BLOB storage can assign tags to the images.
These tags can be searched on and apparently changed without re-uploading the blob.

Tags like "country", "major_version" would be obvious filter candidates.
Ones like "latest", "previous","recent" could be attached to provide (hopefully) super quick searches for the related bcSelect values.

@freddydk
Copy link
Contributor

freddydk commented Feb 22, 2024

I have done a lot of investigations into this - and we will come up with a solution for this (both search and download speed) - we will share a design in a few weeks - hopefully

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

4 participants