Feature Proposals/Improve Groups Service

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Alternatives)
(Alternatives)
Line 32: Line 32:
 
It may be possible to improve this by adding a new GridUserService call that accepts a list of UUIDs and only returns information for those which are logged in.  However, this would need to be called for each group IM, unless this was cached for short periods of time.
 
It may be possible to improve this by adding a new GridUserService call that accepts a list of UUIDs and only returns information for those which are logged in.  However, this would need to be called for each group IM, unless this was cached for short periods of time.
  
'''PROS''': Other services can also use this approach and doesn't require those services to do their own login caching.
+
'''PROS''': Services don't need to their own login caching. Other services can also use the same simulator-side code and data. 
  
 
'''CONS''': Every group IM still requires an extra network call to GridUser services, though possibly the results could be cached for a short period of time (e.g. 1 min).  Comparatively complex.
 
'''CONS''': Every group IM still requires an extra network call to GridUser services, though possibly the results could be cached for a short period of time (e.g. 1 min).  Comparatively complex.

Revision as of 14:36, 12 October 2012

Contents

Date

October 2012

Status (draft, in progress, done or abandoned)

In progress

Proposers

  • Michelle Argus
  • Justin Clark-Casey (justincc)

Introduction

This may encompass many improvements to groups, but the first is to cache login information in groups to improve group IM, such that an IM isn't sent to every single user, even those offline.

Proposal

Please see mailing-list e-mails [1] and [2]. The changes for OpenSimulator and XmlRpcGroups are in [3] and [4].

These changes send login status information and time to the groups service from the simulator. This allows an extra 'offline' parameter to be passed to GetGroupMembers to control whether all or only online members of a group are returned.

PROS: Only a single network call (which may be cached for a period) required on each group IM. Reasonably simple. May allow messaging across multiple OpenSimulator installations.

CONS: Extra calls to groups service on each login/logout. Groups service has to cache extra information. Cached information not reuseable by other services.

Alternatives

One alternative is for the simulator itself to call GridUserService.LoggedIn for each member of the group on each IM. However this has a very high overhead with large groups.

It may be possible to improve this by adding a new GridUserService call that accepts a list of UUIDs and only returns information for those which are logged in. However, this would need to be called for each group IM, unless this was cached for short periods of time.

PROS: Services don't need to their own login caching. Other services can also use the same simulator-side code and data.

CONS: Every group IM still requires an extra network call to GridUser services, though possibly the results could be cached for a short period of time (e.g. 1 min). Comparatively complex.

References

[1] http://lists.berlios.de/pipermail/opensim-dev/2012-October/011421.html

[2] http://lists.berlios.de/pipermail/opensim-dev/2012-October/011431.html

[3] https://github.com/MAReantals/opensim

[4] https://github.com/MAReantals/flotsam

Personal tools
General
About This Wiki