This is how it looks for now:
~/tmp $ python get-opensim.py "OpenSim Test"
c3c06f80-474f-40b2-a1e4-1d194fa17a51
~/tmp $ python get-opensim.py "c3c06f80-474f-40b2-a1e4-1d194fa17a51"
simulator
127.0.0.1:9000
1000,1000
OpenSim Test
~/tmp $ python get-opensim.py "gridcoord:1000,1000"
c3c06f80-474f-40b2-a1e4-1d194fa17a51
~/tmp $
(update: reverted to store test url for now. This needs to be thought out more to avoid the easy DoS...)
The registration is done only once, with short TTL, so it dies rather fast.
Another issue, of course, is the "authenticity" - all these values should be signed, since bamboo allows multiple independent puts under the same key (one can imagine potential mess that can happen)
I think eventually the best thing is just to store the external URL for all three - and to have all the signed info stored at that URL (backreferencing the key, name, and coordinates as part of the region information). This way the "registration" with a grid would be a one-time event - that is, supplying the public key of the region to the grid.
The DHT can then serve minimal info, and most of the things would be pushed to the region itself, offloading the grid server.
Of course, eventually we'll need more than two servers for the DHT (I noticed that the opendht seems a bit iffy - some servers are not up) - ideally one server per sim - to spread the load.
If you feel like it and have some space/cpu/bandwidth to waste, create a new user "opendht", go to /home/opendht, grab and untar the file http://opensim.be/bamboo-opensim.tgz - and start "bamboo/planetlab/run-it" (it's a tweaked startup script from planetlab.
If we have a decent number of DHT servers, we might increase the minimum replica count (which is now set to 2, which is ridiculously low from redundancy perspective) - and see how it survives the "death" of some server, and how does the performance look like.
No comments:
Post a Comment