How Gracefull Exit work(Design)?

We see here lot of posts than GE is very slow, so i started to discover how is work.

I found only 1 document that discribe this thing.

And there is only 2-3 row how Node Upload data to other nodes.
This queue is responsible for communicating with the exiting node and telling it what piece to send to what node
If we follow this sentence it looks like Sattelite give Node only 1 address where to send this piece?
But what to do if this Node is on fare side of the world and link between us is very slow?

If we follow this post


More than 1 person have problem to upload piece to same IP.

why it wont work like Uplink, Satelite give you list of nodes, and you thow pieces to them, who is first win the race, get the piece. Then it just sender speed and setup question, how fast it will work.

Also can be that I not know or understand something?

Well, the difference is that an uplink is trying to upload an entire segment. It has to upload any 80 pieces, but starts more transfers so it can cancel the slowest ones. Last I heard this number was 130, but that may have changed. Either way, there is not that much overhead as a result of this, because 80 out of 130 will be successful.

Nodes only have one piece for each segment. Those pieces need to end up at another node. If you give nodes a list of say 10 other nodes, only 1 out of those 10 pieces will be a useful transfer (the fastest one) and the rest would just be wasted bandwidth. Even if you would just start 2 transfers at the same time, this would nearly double the bandwidth usage of graceful exit. It would be very inefficient. Better to just time out and then retry on another node.

1 Like

Today as tests show speed and mandwidth is not very relevent, as it work very slow.
and try over and over transfer piece to same node.
@BrightSilence understand your point also. then it shold be list of nodes where to send and if first faild then just take Next node from list, and as was written on other post by littleskunk faild uploads has penalties.

Then your node will be disqualified very fast - with one piece. 10% of failed and end of story

Why node shold ge dq if ressiving side giving error? I meant that take other node from list where to send this same piece, not take next piece.

Today problem seems to be that satelite choose slow nodes some time, when sending address to node that makes GE.

We should stop somewhere to prevent abuse. At the moment it’s 10% of transfer is failed (each by 5 attempts).

but it can be a fault of nodes that sattelite give for GE. Satellite not know how good or fast node is, that it gives to Node making GE. So if satelite will give for each piece a list of nodes or give a list of piecese and list of nodes and GE node will choose itself where it send what piece, it will try first, second, third, and fastest nodes will get more pieces. For decentrolized storage system, sattelite regulate sending of GE in very centrolized way.

Why it can not be 5 attempt to send same piece to 5 different nodes?
I guess it already works this way and Vadim question not relevant already? And current low speed of GE caused by other reasons like pieces queue is too short and client can not initiate enough transfers in parallel.
But clear explanation would be nice.