Friday, August 14, 2020

Linden Lab Announces Improvements on Sim Crossings

One of the pet peeves a number of residents have is sim crossings, or "region crossings" as Linden Lab calls them. Sometimes there's a short pause. Occasionally there's a longer pause. And sometimes there's the "walk of lag" that results in you going walking on and on until you either "rubberband" back to the sim crossing, or the viewer crashes and you get knocked offline.

Last year, crashing after teleporting and sim crossing was getting to be worse of a problem. Though after a while, things began to improve. So how are things now? Yesterday on the "Tools and Technology" Linden blog, April Linden, announced that the programing on how sim crossings/teleports was changed and the results were that they were easier and less glitchy than ever.

The process of crossing from one region to another when you’re riding in a vehicle is pretty involved. The region you’re leaving needs to be able to tell the region where you’re arriving  everything it knows about the vehicle, and has to do it really quickly. That includes all of the scripts in the vehicle, everything that’s attached to it, the direction and how fast it’s going, and lots of other stuff. 

To make this happen quickly, early on in Second Life’s history we made some assumptions about our network, including things like how big a packet can be. Those assumptions generally worked okay on our own network, but not outside it. 

When you crossed from one region to another, the regions were putting a lot of information into large packets and sending them across our network. This was usually okay because our network was purposefully built to run Second Life. Then, as soon we tried to do this on someone else’s network (in the cloud), things didn’t work quite right. The problem was most noticeable when crossing from a region in our data center to one in the cloud. 

The first thing our engineering teams tried was breaking those large packets up into smaller ones, but that actually made the problem worse. Rather than send one big packet and wait for the other side to say it received the data, with smaller packets, it had to repeat that bunch of times for each packet. (Send, get an acknowledgement, send another piece, get an acknowledgement, etc.) It was still mostly okay across our network, but way worse when a region in our network was talking to one in the cloud. We now knew this code would never work well, so we needed a different approach. 

Next, our engineering team decided to use another way to send the data across the network, using the same protocol and method we use for other types of data. Most importantly, it is faster and more reliable. That did the trick! We’re still collecting statistics on the impact this change has, but things are looking very positive. 

Once this new code was written, the performance when going  from region to region got a lot better, and it worked between our data center and the cloud! The improvement was so dramatic that we decided to not make our Residents wait for uplifted simulators, and rolled the changes out right away. That code is what rolled out to the grid this week.

"It’s really exciting that the cloud migration is helping us find really old bugs and make Second Life better as we go," the "gridbun" would conclude.

Luca decided to test things out for herself. This video she did shows her testing several vehicles. Although some took longer than others, she concluded all showed some improvement, a few making the crossing in less than a second.

Have you found sim crossing and teleports easier? What about vehicle crossings? Please leave comments below.

Source: Linden blog, Luca 
Hat tip: Cynthia Farshore, Liffento 

Bixyl Shuftan

No comments:

Post a Comment