Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005512opensim[REGION] OpenSim Corepublic2011-06-01 16:052011-07-12 05:20
ReporterBo Iwu 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityhave not tried
StatusclosedResolutionno change required 
PlatformOSOS Version
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0005512: More stable Opensim architecture
Description-subdivide Opensim into more almost independent services - executables
-make them communicate together via sockets, WCF or something similar
-add a main monitor executable which would start and monitor the services and restart them in case of crash. This monitor program should be very simple to reduce amount of of bugs. It would also take care about startup and shutdown procedure of the sim. If done well it is not expected to crash.
Additional InformationCurrent state
- any more serious exception starts slow degradation/crash of the whole simulator
- chance to recover from critic exception are low
- simulator is oversensitive on any instability especially on the chain input>process/cache>send data to viewer

Expected improvement
- much better stability
- better ability to survive failures in the input
- ability to recover from partial crash
- ability watch own performance and do partial automatic reboot in case of need
- better utilization of multiple CPU cores
- higher expected uptime
- ability post automatic bug-reports to a specialized grid service
- lower probability that new code can affect negatively whole simulator.
- easier testing and development of new features/modules
- and much much more. Just a new horizon;-)

Implementation costs
- i see first reaction is that it is NOT possible. But please try to look on the code you know for years using "new eyes". Anything has more solutions and within the sim it may work in alternative ways.
- i know that accepting this would mean temporal froze of the other development
- i know that it is boring to rewrite/clean up working stuff

Anyway i hope that natural advantages of the advantage will win over the implentation costs.

Thanks for reading
TagsNo tags attached.
Git Revision or version numberany
Run Mode Grid (Multiple Regions per Sim)
Physics EngineBasicPhysics
Mono VersionNone
Attached Files

- Relationships

-  Notes
Diva (administrator)
2011-06-07 20:27

Patches welcome.
Bo Iwu (reporter)
2011-06-08 00:52
edited on: 2011-06-08 03:17

Dear Diva,
even if the sim would be in Java(my "native" programming language) i don't think that it is a single developer task.

It is more likely a task for the whole team. On the other side the challenge may stick the dev team together and make it again very attractive to participate on Opensim...

Diva (administrator)
2011-06-08 08:14

Are you suggesting that the opensim core devs stop working on the current implementation and start a new project from scratch? That is a completely unreasonable suggestion. I think you need to read a thing or two about how open source projects like OpenSim actually come and stay together. Even in corporate environments, dropping a project and starting something else from scratch is not something people do very often.

In any case, I personally like to see other server implementations, be it forks of OpenSim like Aurora or entirely new systems written from scratch. But it's completely unreasonable to suggest that this team drops the current implementation and starts something else -- that's a job for other people/teams. Good luck!
Bo Iwu (reporter)
2011-06-08 08:20

Dear Diva,
first i would like to say thank you for the response.

The suggestion is NOT "start from scratch", but rather explore the code and see whose parts can be separated into the standalone services.

The business logic is not affected by this proposal.

I self have experiences with J2EE services being reworked in more effective way. And i know that every developer has it's favorite part of code he knows best. Therefore the team is always better for that than individual who would have to learn all the classes from scratch.

Yours in respect Bo
Diva (administrator)
2011-06-08 08:33

Thanks for the general suggestions.

We don't usually do profound refactorings, as it destabilizes the project and the community. We prefer incremental improvements. But profound refactorings have happened before. If you have a concrete refactoring you want to suggest, please do so. Otherwise, I don't see a direct link between your general textbook suggestions and the stated expected improvements, as most of the instability in OpenSim is implementation deficiencies, not architecture -- exceptions not being caught, null pointers not being checked, etc. The architecture is actually quite good, and it already has a lot of what you suggest in general terms -- separation of concerns into independent services that can run in a variety of deployment configurations, including independent exe's. The monitoring part is not "core"; that is a separate project. Perhaps you should focus on that yourself -- that would be a good contribution. (Although I suspect that the serious players have their own solutions for that)
BlueWall (administrator)
2011-06-08 08:52

We already have enough status reporting to provide external tools with the information it needs to monitor and control the instances. I built a system in python to monitor and control mine. We could use some polish/consolidation in the things we have. But, I think the monitoring and control belongs outside.
Bo Iwu (reporter)
2011-06-08 08:56
edited on: 2011-06-09 01:25

You are welcome

You are also right that i have no actual problems with stability. I run it on a strong server with bold line and have it well monitored by Monit. Actually it is exactly the environment the current architecture is made for.

But well. Deployments like this aren't the only on the Osgrid. Actually the servers hosted on home computers with ADSL connection are the ones who would benefit from this change best. Those users just want start it and have it running without taking care.

My suggestion is aimed generally to improve stability of Osgrid like grids. Of course you devs are those supposed to know best if the markedly improved stability in unstable environment is worth of the effort.

I really admire the work you did on the Opensim. I didn't posted this Mantis to tell that you are doing it wrong. I posted it to inspire you how to utilize the work(i admire) a lil bit better*wink

Best wishes, Bo

PS: What about the better utilization of multiple CPU cores on heavy load sim installations?

Reason of edit:slightly improved stability should be :markedly improved stability

makopoppo (manager)
2011-07-12 05:20

closing since the reporter has been satisfied with the replies

- Issue History
Date Modified Username Field Change
2011-06-01 16:05 Bo Iwu New Issue
2011-06-01 16:05 Bo Iwu Git Revision => any
2011-06-01 16:05 Bo Iwu SVN Revision => 0
2011-06-01 16:05 Bo Iwu Run Mode => Grid (Multiple Regions per Sim)
2011-06-01 16:05 Bo Iwu Physics Engine => BasicPhysics
2011-06-01 16:05 Bo Iwu Environment => Unknown
2011-06-01 16:05 Bo Iwu Mono Version => None
2011-06-07 20:27 Diva Note Added: 0018595
2011-06-08 00:52 Bo Iwu Note Added: 0018602
2011-06-08 00:54 Bo Iwu Note Edited: 0018602
2011-06-08 03:17 Bo Iwu Note Edited: 0018602
2011-06-08 08:14 Diva Note Added: 0018607
2011-06-08 08:20 Bo Iwu Note Added: 0018609
2011-06-08 08:33 Diva Note Added: 0018610
2011-06-08 08:52 BlueWall Note Added: 0018612
2011-06-08 08:56 Bo Iwu Note Added: 0018613
2011-06-08 08:59 Bo Iwu Note Edited: 0018613
2011-06-09 01:25 Bo Iwu Note Edited: 0018613
2011-07-12 05:20 makopoppo Note Added: 0018815
2011-07-12 05:20 makopoppo Status new => closed
2011-07-12 05:20 makopoppo Resolution open => no change required

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker