InterestManagement

From OpenSimulator

Jump to: navigation, search

InterestManagement is a subsystem in OpenSimulator (OpenSim) that manages the prioritization and control of updates for Avatars and objects between the server and client. It is primarily configured via the [InterestManagement] section and serves to efficiently distribute bandwidth and CPU load.

Contents

Configuration

InterestManagement settings are located in the OpenSim.ini or OpenSimDefaults.ini file. The following parameters are available in the [InterestManagement] section:

Parameter Description Values / Notes
UpdatePrioritizationScheme Sets the scheme for prioritizing updates. Possible values:
  • BestAvatarResponsiveness
  • SimpleAngularDistance (more CPU intensive)
ReprioritizationEnabled Enables regular re-prioritization of update priorities. true or false
ReprioritizationInterval Time interval (in milliseconds) between re-prioritization runs. Number (in ms)
RootReprioritizationDistance Distance threshold for re-prioritizing root (main) avatars. Number (distance)
ObjectsCullingByDistance If enabled, object updates outside the view distance are not sent to the client. true or false – Saves bandwidth but increases CPU load.
RootTerseUpdatePeriod Only every nth compact ("terse") update is sent for avatars within the same region. Number (0 = always send)
ChildTerseUpdatePeriod Only every nth compact ("terse") update is sent for avatars in other regions (e.g., neighboring regions). Number (0 = always send)

These options allow fine-tuning of how often and under what conditions clients are informed about state changes of objects and avatars.

Implementation in Scene.cs

The core code for InterestManagement is located in the Scene.cs file. However, it does not evaluate the complete list of parameters documented in the INI file.

The following settings are actually read and used in Scene.cs:

  • UpdatePrioritizationScheme
  • ReprioritizationEnabled
  • ReprioritizationInterval
  • RootReprioritizationDistance
  • ObjectsCullingByDistance

The following parameters, documented in the configuration file, are not evaluated in Scene.cs and have no direct effect there:

  • ChildReprioritizationDistance
  • RootTerseUpdatePeriod
  • ChildTerseUpdatePeriod

Their influence on the system only exists if they are processed elsewhere in the OpenSimulator source code.

Purpose and Function

The InterestManagement system filters and prioritizes data sent to clients. Its goal is to minimize network load and optimize server performance without significantly degrading the subjective user experience (e.g., avatar responsiveness). For example, ObjectsCullingByDistance ensures that invisible objects do not generate updates, while prioritization schemes determine which objects or avatars are updated first.

See also

Personal tools
General
About This Wiki