Bare in mind networking has never been i strongest topic. Understanding is that the closer something is stored to me the faster it would be to retrieve than from the other side of the world. So here is my question.
Is there any way to set the location i would like to retrieve data from to facilitate fast performance? Let's say i build an app then after a while i realize that most of the users are from within a specific region. Hence to improve performance of the app i would like to get all data retrievals to be done from storage close to the user thereby reducing response time of an app to such users.
Background am in Kenya where Internet connection is relatively slow in some regions. If the safe app am to build is to be used it would help if i am able to specify all data storage to be in Kenya or next location that would facilitate faster retrieval.
When the network grows quite big, it’s possible that a Chunk of data is stored in Japan, Germany, Kenya and the US. When you try to GET a Chunk in Kenya, it’s possible that the Vault in Japan replies first. After that it can go over 5 hops (maybe from Japan, to the Netherlands, to the UK, to another node in the UK and than to you in Kenya). It’s all based on XOR. Only when a Chunk is part of a popular file, it can be faster because nodes have it in cache. That way, the next one who’s asking the same Chunk as you (within a certain amount of time) will get it from the UK straight to his computer (withing 2 or 3 hops) due to caching.
The caching of nodes. Is there a way to emulate a constant retrieval in such a way that i will get a particular chunks in cache almost 50% percent of the time? Asking to gain more insight. I do know that one network call can go through numerous split paths
No that would allow people to alter the network, when they hold particular files in cache (it would kill SAFEnet’s neutrality so to speak). First of all you have no idea what’s in your Vault, so you don’t know the data inside any Chunk. When you ask for a Chunk, other nodes will retrieve it and give it to you. All these nodes cache these Chunks, they’ll cache all the Chunks that come by. When a Chunk isn’t requested again within a certain amount of time, it will be overwritten by a new Chunk. That’s what nodes do, they pass each other Chunks and cache them. If you have 100 Chunks in cache at max. and Chunks 101 comes by, Chunk nr. 1 will be removed and Chunk 101 will take it’s place. Only when a Chunks is ask for again, it will go up the list. It really is just like Ants. All nodes pass each other data all the time, even while it’s not in your Vault.