Lyqyd, on 21 May 2012 - 12:00 AM, said:
2nd EDIT: Do you mean problems on chunk loading? If so, consider:
-on 1st startup, e.g., block placement or program start, computers/turtles/routers (in the context of a more dynamic network, I would prefer the categories router/non-router) would update their routeTable: non-routers by waiting for a router to communicate, routers as usual
-then all save the routeTable to disk;
-on following startups, they reload the routeTable from disk;
-on normal operation after startup, this system is compatible with the static network that is implemented. For a new dynamic implementation, it needs behaviour that for each failed communication (failed as non-responding target during time-out) updates the routeTable and saves the new version. I suppose that's what the github issue talks about, so I would better get back to reading the API!
3rd EDIT: I thought about the problem of a computer starting up on a unknown location, and then provoking a huge network traffic as each router to which the HA packet got to had to send an update of the routerTable to everyone else (is that right?). I suggest having the new computer itself broadcast an HA, receiving the routerTable's from each reachable router, merging them somehow and sending an H(routerTable update) to each router and non-router; if the computer is a non-router it would have to distinguish between different groups of routers which aren't connected between them (maybe storing a network's members in the routerTable?).
Also, how do you deal with concurrent updates to different?
In graph language, each new edge of the connections graph is sent to everyone on the network?
That was a mess. Long story short: I want to help to make this API capable of supporting dynamic networks. In graph language, in the current version you have two kind of nodes : routers and non-routers, which forcefully are end nodes, eg. nodes with only one edge. How would you describe the new node update procedure in this language, as soon as a node enters the graph? Is every new edge sent to every router?
In a more dynamic network approach, you seem (in the issue in github) to be describing a removal procedure, that is triggered by a timeout and then the same mechanism, sending to all routers a removal message?
This would help me get an idea of where to optimize. For instance, reformulating the way connections are stored, maybe transmit the full map in a update as the trade-off for reducing communications.
I like to read mathematical papers on graphs; I found this one about dynamic networks and I'm going to be reading it.
Where did you get your ideas, or where do you think I could get some?











