Nexus Mods dealing with degraded performance due to demand spikes related to sudden Fallout popularity. Can Storj be their solution?

It has nothing common with an S3 implementation. ANY link will be a one thread download, because your browser is capable only one thread download any time, thus the reason why the downloaders are exists. Try it with GetRight (or any other normal downloader, which could download regions of the big file simultaneously, unlike any browser), you will be surprised.

1 Like

This thing still exists? Wow, I used it >20 years ago. Haven’t heard the name for a decade at least.

1 Like

i liked FlashGet more.
saying that, i also got full 1Gbit/s download speed with that link with FireFox browser.
even now as we speak, must be something on your site

1 Like

Yeah, let’s be realistic, this is a pretty big limitation for data distribution in browsers. Download managers have gone out of fashion for over a decade now, barely anyone uses them anymore. The gateway could easily be tuned to support this by just doing the downloading of different segments simultaneously on that end.

That said, perhaps actual current customers haven’t yet requested this feature enough to prioritize this. But a site like nexus mods would almost certainly not be satisfied with the current state of single thread performance.

1 Like

Actually not so easy. You may try it with a GatewayST with actual Storj network or GetwayMT in the GitHub - storj/up: Docker-compose files for running full Storj network locally.
You cannot tune the concurrency on the server side, because it’s basically unlimited. It should be tuned on a client side unfortunately.
Maybe only tune a linksharing service somehow, since it’s a client for the GatewayMT before the browser :thinking:

When I tried the last time I wasn’t succeed, nothing helps on the server side, until one of the customers didn’t find a working solution for their site - they wrote a JS code on their site to request a multipart downloads in several threads (but here the browser has a limit). So, I wonder is it possible to implement this on a linksharing service too?

1 Like

Perhaps I shouldn’t have implied it was easy. But I don’t think the single thread transfer from the gateway to the browser is the issue, as I’m sure the Gateway MT is hosted on infra that can easily support 1gbit single transfers (and probably much more). Most likely the issue is that the gateway currently functions as just a transparent request translator, doing nothing more than replicating the number of threads requested by the client. But why wouldn’t it be possible to adjust that behavior in such a way that the gateway uses multiple threads to pull data quicker from the storage nodes and then send it out over a single thread? It would probably require code changes and perhaps more resources to hold more segments (in memory most likely or fast storage) while reconstructing them into a single thread, but if as you say customers have already bumped into this limitation, it might be worth it.

2 Likes

Yeah, I wasn’t saying that. I agreed with you that single threaded S3 should be able to saturate a 1gbit connection. However, I think it’s way more likely for the bottleneck to be single threaded fetching of segments by the gateway from the storj network, than the connection between the gateway and the client being the bottleneck.

1 Like

It’s not the gateway > client speed, or the gateway > nodes speed. It’s the nodes > gateway speed.

A client’s download speed = aggregate upload speed of nodes. The vast majority of nodes are being run on residential connections (which are asymmetric, ie more down than up). Unless I missed something in math class, it should take 100 nodes of 10Mbps up to saturate a client’s 1Gbps download.

or 3 like me with 300Mbps,
srsly, who got 10Mbp Up those days. give them at least a credit of a 50Mbps! lol

Most of cable internet customers in the US. Over a hundred million people. DOCSIS is still developing and now shifting to higher upstreams, but most people have 20Mbps upstream, and if you really pay a lot – 30. Comcast is deploying next gen networking in waves, but even then you will only get 200Mbps upstream on the most expensive plan.

I get 1200Mbps/25Mbps connection for $60/month (this includes unlimited traffic, on a promo deal for 2 years. I cancel every 2 years and create a new account to get another 2 promo years. It’s ridiculously dumb). Yes, some places are lucky to get google or AT&T fiber, but not me. Only one of my nodes is on a gigabit symmetric fiber connection. The rest have minimum required upstream.

1 Like

yea but USA is the oldest internet infrastructure, they invented it!
Fiber from AT&T not widely accessible?
Or Verizon - they got as cheap fiber with huuuge upload, as mine here in Europe.

It’s spotty. There are plenty of providers, they focus on new markets, and I live is a relatively old neighborhood, and I guess they don’t ancitipate many customers or it’s really hard to get all the permits for infrastructure. I have a choice of symmetric 75Mbps DSL or 1200/25 asymmetric cable… Maybe I shall get both :slight_smile:

1 Like

Gateway in turn downloads from nodes. If the gateway gets the data slow, it can’t send it out fast either.

That said, there is long tail cancellation and many faster nodes than 10-25mbps. I’m pretty sure most downloads are served by 29 nodes with 50+mbps connections. But there is also communication with the satellites causing time to first byte for each segment to have a significant impact. If the gateway fetched multiple segments simultaneously, it would easily be able to saturate a 1gbit connection.

3 Likes

I wasn’t under any wrong impression. My comment said exactly what @BrightSilence said: “t’s not the gateway > client speed, or the gateway > nodes speed. It’s the nodes > gateway speed.”

To be clear: A client downloading from the gateway depends on the nodes supplying data to the gateway, which is then passed on to the client. I doubt the gateways are hosted on DSL connections, so there isn’t any point in arguing about the gateway’s upload.

3 Likes

You and @BrightSilence are correct, the download speed of the one thread limited by the speed of nodes (their upstream), however, these pieces downloaded in parallel, so even if each of US nodes has

the total speed will be higher than 20Mbps, but of course it’s hard to reach 1Gbps if use only one thread from the Gateway in a such case. However, if you would downloads several segments of that file in parallel, the total speed can easily saturate 1Gbps, because each segment is stored on their own nodes, which likely not intersect with other nodes stores other segments of the same file.

1 Like

Is there any tuning that can be done on the gateway to pull pieces faster than the client can request them and cache them (assuming that the client is actually trying to download a full file ofcourse)? That should (in theory) saturate the client’s download even if the client doesn’t use parallelism on his/her/its side.

If the nodes are fast enough to saturate nodes > gateway, how can the bottleneck be (and I quote) “somewhere between gateway and node”?

The bottleneck is the client not asking for parallel downloads when downloading over the gateway. If the gateway anticipates that the client is trying to download the entire file, it can pull that file from the nodes fast (in parallel) and stream it to the client slower (since it’s the client asking for one piece of the file at a time). The nodes send data to the gateway as fast as they can, the gateway sends data to the client as fast as the client is requesting it.

1 Like

We do what user @Mitsos said above (I wonder who he is?): Pull the entire file from the nodes, cache it on the gateway, stream it to the client as fast as the client is requesting it.

No idea, I’m just an SNO.