[Opensim-dev] Improving object update performance

Dirk Krause dirk.krause at pixelpark.com
Fri Feb 20 09:23:13 UTC 2009


It would be great if this patch would make it into libopenmetaverse, so that client developers who chose it as a foundation benefit from Mikkos work.

Having said that, I think it makes sense to do some stress test on this, which might involve some people setting up (scripted?) test clients from some broadband network connection (Amazon EC2?) to hammer on some OpenSim instance with the patch applied. Needless to say, I'd be in for this game.

-----Ursprüngliche Nachricht-----
Von: opensim-dev-bounces at lists.berlios.de im Auftrag von Mikko Pallari
Gesendet: Fr 20.02.2009 09:41
An: opensim-dev at lists.berlios.de
Betreff: Re: [Opensim-dev] Improving object update performance
 
Hi,

I don't have resent statistic about which packets are sent most in simulators currenly, but I would suspect that the most traffic comes from avatar movement not object updates. This however depends from how many scripts are in use etc.

I have already made a patch [1], which combines multiple AvatarTerseUpdates in to one packet, like should also be done with the ImprovedTerseObjectUpdate packets as John descripes in the first point.

Cheers,
Mikko

[1]: http://opensimulator.org/mantis/view.php?id=3136


-----Original Message-----
From: opensim-dev-bounces at lists.berlios.de [mailto:opensim-dev-bounces at lists.berlios.de] On Behalf Of Hurliman, John
Sent: 18. helmikuuta 2009 3:19
To: opensim-dev at lists.berlios.de
Subject: [Opensim-dev] Improving object update performance

Continuing a phone conversation on the mailing list, this is my current understanding of the status of object updates in OpenSim:

1) Each object update is a single packet. No aggregation is done by combining multiple ObjectUpdate.ObjectData blocks into a single packet, or combining ImprovedTerseObjectUpdate.ObjectData blocks
2) Object updates are sent in the same order to all clients, with no prioritization (using distance from camera/avatar, frustum culling, etc)
3) OpenSim uses two packet types for sending object updates, ObjectUpdate and ImprovedTerseObjectUpdate. Different code paths arrive at each of these packets being sent, and no logic is used to determine the smallest object update packet possible to carry the modified data. This excludes the ObjectUpdateCompressed packet from being used
4) Full scene information is streamed to each client as it connects. ObjectUpdateCached packets are not used in cases where the simulator might suspect a cache hit


None of these are trivial to implement, but #1 would require the least amount of work and would be the least invasive change. #2, #3, and #4 require a stronger concept of an interest list in OpenSim, and a careful balance between cpu load, memory usage from state management, and network load.

John
_______________________________________________
Opensim-dev mailing list
Opensim-dev at lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
Opensim-dev at lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 4274 bytes
Desc: not available
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20090220/1d280845/attachment-0001.bin>


More information about the Opensim-dev mailing list