Friday, 9 October 2009

Concurrency



Second Life
A defining moment for me while I was a resident of Second Life, came with my first public event, after acquiring my first Class 5 sim. The sim was a rental sim, named Hoini, themed on the 1001 Arabian Nights, and one of my  tenants had asked if she could have a marrriage ceremony/party in the sim. I agreed, and she and her partner made their plans, and drew up their guest list.

On the arranged day, at the arranged time, the guests started to arrive. When we got to around 10 avatars in the sim, I started to notice some lag creeping into avatar movements. This got progressively worse as more guests arrived, and when we arrived at 20 avatars in the sim it was like wading in mud. At 30 avatars, movement was impossible, and we never got to 40, as the sim crashed. Of course, this ruined the day for the happy couple and their guests.

I must admit, I had been a little naive. The Second Life website had said (and it still says today), that a full private island region had a concurrent avatar limit of 100. I thought the guest list of 50 would be handled without any problem.

OpenSim
I also saw in today's Opensim-dev mailing list all the excitement caused by a test in which over 50 avatars managed to get into a single region:

In case you are missing all the excitement, this morning we were able to pile 52 people-driven avies in OSGrid's Wright Plaza under 600M of RAM, and after that sim had been up for 10 hours, with a previous peak presence of 36. This sim is running on average hardware, nothing fancy. It eventually crashed, likely due to an overly conservative lock still present somewhere. But I think we just turned an important corner on the way to 1.0

They did not report if avatar movements were laggy as a result of this load test, but nonetheless, it is an important milestone. If they can fix the cause of the crash, all the better.


Blue Mars
What first really caught my eye (apart from the amazing graphics) of Blue Mars, was the claim from Avatar Reality that a single city could support thousands of avatars. This claim was backed up by Richard Childers of VSE who witnessed load tests there, who said:

We did load tests inside Blue Mars in the Avatar Reality labs, and getting 10,000 avatars into a single city was just awesome. It was impressive stuff.

Concurrency has always been a hot topic in Virtual Worlds, so how does Blue Mars succeed where others have failed? The answer is in the way that data is presented to the client (the viewer). In Second Life and OpenSim all the data concerning the current scene (and beyond), i.e. the terrain, the objects, the avatars, and all their textures, etc. are held on central servers and is streamed to the client.

In Blue Mars almost all the scene data is stored on the hard-drive of the user, and so does not need to be streamed. Only dynamic data (vehicle movements, new objects being introduced, and things like avatar movements) need to be streamed. This allows their servers to deliver streamed data for several thousand avatars, concurrently, in one City.

In fact, Glenn Sanders, Community Director for Avatar Reality, enthused that due to some re-engineering work by one of their intrepid developers, the actual number of avatars that they thought could be streamed had been seriously underestimated!

Implications
Of course, the greatest implication is for City and Block developers in Blue Mars who wish to develop venues such as crowded nightclubs, concert halls, sports stadiums, convention and conference centres, and all manner of attractions that could attract a large spectator base.

And Next
Blue Mars have instigated a whole series of Meet and Greet gatherings (I reported on the 1st of these previously), on a weekly basis, to continue these get-to-know-you sessions, and double as load tests (using real avatars rather than the ai test bots during lab testing) to thoroughly test the concurrency figures.

I shall report the results as they come in.

Rock